示例#1
0
        /// <summary>
        /// 执行业务逻辑
        /// </summary>
        public void ExcuteAnalyse()
        {
            try
            {
                IHandshakeModule handshakeModule = Program.container.Resolve <IHandshakeModule>();
                SiteModel        site            = handshakeModule.Handshake(_socket);
                if (site == null)
                {
                    Console.WriteLine("握手失败!");
                    return;
                }

                ISiteModule siteModule = Program.container.Resolve <ISiteModule>();
                siteModule.GetSiteDetails(ref site);

                if (site.HasOaData)
                {
                    IDataOaModule dataOaModule = Program.container.Resolve <IDataOaModule>();
                    dataOaModule.GetDataOa(site, _socket);
                }

                if (site.HasTwData)
                {
                    //IDataTwModule dataTwModule = Program.container.Resolve<IDataTwModule>();
                    //dataTwModule.GetDataTw(site, _socket);

                    IExtractModule extractModule = Program.container.Resolve <IExtractModule>();
                    extractModule.InitConfig(site, _socket);
                }

                #region 配置更新
                if (site.IsUpdate > 0)
                {
                    ISiteService  siteService  = Program.container.Resolve <ISiteService>();
                    IConfigModule configModule = Program.container.Resolve <IConfigModule>();
                    configModule._site   = site;
                    configModule._sokect = _socket;
                    //更新配置
                    switch (site.IsUpdate)
                    {
                    case 1:     //更新时间
                        configModule.UpdateTime();
                        break;

                    case 2:     //更新配置
                        configModule.UpdateSiteConfig();
                        break;

                    case 3:     //更新 时间 配置
                        configModule.UpdateTime();
                        configModule.UpdateSiteConfig();
                        break;

                    case 4:     //更新 固件
                        configModule.UpdateSolid();
                        break;

                    case 5:     // 更新 时间 固件
                        configModule.UpdateTime();
                        configModule.UpdateSolid();
                        break;

                    case 6:     //更新 配置 固件
                        configModule.UpdateSiteConfig();
                        configModule.UpdateSolid();
                        break;

                    case 7:     //更新 时间 配置 固件
                        configModule.UpdateTime();
                        configModule.UpdateSiteConfig();
                        configModule.UpdateSolid();
                        break;

                    default:
                        break;
                    }
                    Site mySite = siteService.Query(s => s.SiteSN == site.Sn).FirstOrDefault();
                    mySite.SiteUpdateTag = 0;
                    siteService.UpdateEntity(mySite);
                }
                #endregion

                //断开连接
                if (_socket.Send(OrderHelper.SiteOff(site.Sn)))
                {
                    byte[] dataTemp = new byte[13];
                    if (_socket.Receive(dataTemp))
                    {
                        Console.WriteLine(string.Format("与站点{0}断开成功!", site.Sn));
                    }
                }
            }
            catch (Exception ex)
            {
                Program.LoggerHelper.Error(typeof(MessageBusiness), ex.Message, ex);
                Console.WriteLine(string.Format("执行业务逻辑出现异常!{0}", ex));
            }
            finally
            {
                _socket.Close();
            }
        }
示例#2
0
        /// <summary>
        /// Loads in config modules to add in your own startup logic that needs to be done.
        /// </summary>
        /// <param name="configModule">Config Module to load and execute.</param>
        /// <returns>This AppConfig instance.</returns>
        public AppConfig LoadConfigModule(IConfigModule configModule)
        {
            configModule.Load();

            return(this);
        }