| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- 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;
- /// <summary>
- /// 软件类别 0 为集团版 1 为单店版
- /// </summary>
- public int SoftwareCategory
- {
- get { return softwareCategory; }
- set { softwareCategory = value; }
- }
- RegisterKey.SoftwareServerType serverType = RegisterKey.SoftwareServerType.EmptyStore;
- /// <summary>
- /// 软件服务器类型
- /// </summary>
- public RegisterKey.SoftwareServerType ServerType
- {
- get { return serverType; }
- set { serverType = value; }
- }
- string _ServerGlobalIDKey = "";
- /// <summary>
- /// 服务器全局ID
- /// </summary>
- public string ServerGlobalIDKey
- {
- get { return _ServerGlobalIDKey.Trim(); }
- set { _ServerGlobalIDKey = value; }
- }
- /// <summary>
- /// 注册信息是否完整
- /// </summary>
- public bool IsRegisteredIntact {
- get {
- bool bl = true;
- if (SoftwareCategory == 0)
- {
- if (ServerType == RegisterKey.SoftwareServerType.EmptyStore)
- {
- bl = false;
- }
- }
- if (SoftwareCategory < 0) {
- bl = false;
- }
- return bl;
- }
- }
- /// <summary>
- /// 注册软件
- /// </summary>
- 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;
- }
- /// <summary>
- /// 获取软件服务器注册类型
- /// </summary>
- /// <param name="SoftwareCategory">软件类别 0 为集团版 1 为单店版</param>
- /// <param name="sType"></param>
- /// <param name="isUseCloudServer"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 获取软件注册类型对应相关值
- /// </summary>
- /// <param name="myType"></param>
- /// <param name="SoftwareCategory">软件类别 0 为集团版 1 为单店版</param>
- /// <param name="sType"></param>
- /// <param name="isUseCloudServer"></param>
- 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;
- }
- }
- }
- }
|