using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LYFZ.WindowsServiceHandling
{
public class SoftwareRegisterInfo
{
public SoftwareRegisterInfo() {
LYFZ.RegistryActions.Register wReg = new LYFZ.RegistryActions.Register();
wReg.SubKey = RegisterKey.SubKey_Server;
object oKeySoftwareCategory = wReg.ReadRegeditKey(RegisterKey.RegeditKeyName.SoftwareCategory.ToString());
int number = -1;
if (oKeySoftwareCategory != null)
{
if (int.TryParse(oKeySoftwareCategory.ToString(), out number))
{
this.SoftwareCategory = number;
}
}
object oKeyServerType = wReg.ReadRegeditKey(RegisterKey.RegeditKeyName.ServerType.ToString());
if (oKeyServerType != null)
{
try
{
this.ServerType = (RegisterKey.SoftwareServerType)Enum.Parse(typeof(RegisterKey.SoftwareServerType), oKeyServerType.ToString());
}
catch { this.ServerType = RegisterKey.SoftwareServerType.EmptyStore; }
}
object oKeyGlobalIDKey = wReg.ReadRegeditKey(RegisterKey.RegeditKeyName.GlobalIDKey.ToString());
if (oKeyGlobalIDKey != null)
{
this.ServerGlobalIDKey = oKeyGlobalIDKey.ToString();
}
}
int softwareCategory = -1;
///
/// 软件类别 0 为集团版 1 为单店版
///
public int SoftwareCategory
{
get { return softwareCategory; }
set { softwareCategory = value; }
}
RegisterKey.SoftwareServerType serverType = RegisterKey.SoftwareServerType.EmptyStore;
///
/// 软件服务器类型
///
public RegisterKey.SoftwareServerType ServerType
{
get { return serverType; }
set { serverType = value; }
}
string _ServerGlobalIDKey = "";
///
/// 服务器全局ID
///
public string ServerGlobalIDKey
{
get { return _ServerGlobalIDKey.Trim(); }
set { _ServerGlobalIDKey = value; }
}
///
/// 注册信息是否完整
///
public bool IsRegisteredIntact {
get {
bool bl = true;
if (SoftwareCategory == 0)
{
if (ServerType == RegisterKey.SoftwareServerType.EmptyStore)
{
bl = false;
}
}
if (SoftwareCategory < 0) {
bl = false;
}
return bl;
}
}
///
/// 注册软件
///
public bool RegisteredSoftware()
{
bool bl = false;
int softwareCategory = SoftwareCategory;
string serverType = ServerType.ToString();//MainStore/BranchStore
LYFZ.RegistryActions.Register wReg = new LYFZ.RegistryActions.Register();
wReg.CreateSubKey(LYFZ.WindowsServiceHandling.RegisterKey.SubKey_Server);
wReg.SubKey = LYFZ.WindowsServiceHandling.RegisterKey.SubKey_Server;
bl = wReg.WriteRegeditKey(LYFZ.WindowsServiceHandling.RegisterKey.RegeditKeyName.SoftwareCategory.ToString(), softwareCategory.ToString(), LYFZ.RegistryActions.RegValueKind.String);
if (!bl) { return bl; }
bl = wReg.WriteRegeditKey(LYFZ.WindowsServiceHandling.RegisterKey.RegeditKeyName.ServerType.ToString(), serverType, LYFZ.RegistryActions.RegValueKind.String);
if (!bl) { return bl; }
bl = wReg.WriteRegeditKey(LYFZ.WindowsServiceHandling.RegisterKey.RegeditKeyName.GlobalIDKey.ToString(), ServerGlobalIDKey, LYFZ.RegistryActions.RegValueKind.String);
return bl;
}
///
/// 获取软件服务器注册类型
///
/// 软件类别 0 为集团版 1 为单店版
///
///
///
public static LYFZ.WindowsServiceHandling.RegisterKey.MyServerType GetSoftwareCategory(int SoftwareCategory, WindowsServiceHandling.RegisterKey.SoftwareServerType sType, bool isUseCloudServer)
{
LYFZ.WindowsServiceHandling.RegisterKey.MyServerType myType = WindowsServiceHandling.RegisterKey.MyServerType.单店版;
if (SoftwareCategory == 0)
{
//集团版
if (isUseCloudServer)
{
//使用云服务器版
if (sType == WindowsServiceHandling.RegisterKey.SoftwareServerType.MainStore)
{
myType = WindowsServiceHandling.RegisterKey.MyServerType.集团云版_总店;
}
else if (sType == WindowsServiceHandling.RegisterKey.SoftwareServerType.BranchStore)
{
myType = WindowsServiceHandling.RegisterKey.MyServerType.集团云版_分店;
}
}
else
{
//使用本地服务器版
if (sType == WindowsServiceHandling.RegisterKey.SoftwareServerType.MainStore)
{
myType = WindowsServiceHandling.RegisterKey.MyServerType.集团版_总店;
}
else if (sType == WindowsServiceHandling.RegisterKey.SoftwareServerType.BranchStore)
{
myType = WindowsServiceHandling.RegisterKey.MyServerType.集团版_分店;
}
}
}
else
{
//单店版
if (isUseCloudServer)
{
//使用云服务器版
myType = WindowsServiceHandling.RegisterKey.MyServerType.单店云版;
}
else
{
//使用本地服务器版
myType = WindowsServiceHandling.RegisterKey.MyServerType.单店版;
}
}
return myType;
}
///
/// 获取软件注册类型对应相关值
///
///
/// 软件类别 0 为集团版 1 为单店版
///
///
public static void RefSoftwareCategory(WindowsServiceHandling.RegisterKey.MyServerType myType, ref int SoftwareCategory, ref WindowsServiceHandling.RegisterKey.SoftwareServerType sType, ref bool isUseCloudServer)
{
switch (myType)
{
case WindowsServiceHandling.RegisterKey.MyServerType.集团云版_总店:
SoftwareCategory = 0;
isUseCloudServer = true;
sType = WindowsServiceHandling.RegisterKey.SoftwareServerType.MainStore;
break;
case WindowsServiceHandling.RegisterKey.MyServerType.集团云版_分店:
SoftwareCategory = 0;
isUseCloudServer = true;
sType = WindowsServiceHandling.RegisterKey.SoftwareServerType.BranchStore;
break;
case WindowsServiceHandling.RegisterKey.MyServerType.集团版_总店:
SoftwareCategory = 0;
isUseCloudServer = false;
sType = WindowsServiceHandling.RegisterKey.SoftwareServerType.MainStore;
break;
case WindowsServiceHandling.RegisterKey.MyServerType.集团版_分店:
SoftwareCategory = 0;
isUseCloudServer = false;
sType = WindowsServiceHandling.RegisterKey.SoftwareServerType.BranchStore;
break;
case WindowsServiceHandling.RegisterKey.MyServerType.单店云版:
SoftwareCategory = 1;
isUseCloudServer = true;
sType = WindowsServiceHandling.RegisterKey.SoftwareServerType.MainStore;
break;
case WindowsServiceHandling.RegisterKey.MyServerType.单店版:
SoftwareCategory = 1;
isUseCloudServer = false;
sType = WindowsServiceHandling.RegisterKey.SoftwareServerType.MainStore;
break;
}
}
}
}