示例#1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            TenUngDung = _configuration.GetValue <string>("exeConfigFile:TenUngDung");
            if (string.IsNullOrEmpty(TenUngDung))
            {
                WriteLog(Msg.TenUngDung_AppST_404); return;
            }

            string urlAPI = _configuration.GetValue <string>("WebServer:UrlAPI");

            if (string.IsNullOrEmpty(urlAPI))
            {
                WriteLog(Msg.UrlAPI_AppST_404); return;
            }

            string msg = DoBeginProcessSync();

            if (msg.Length > 0)
            {
                WriteLog(msg);
            }

            // Get DBInfo Misa
            msg = CommonFunction.GetDBInfoMisa(out DbMisaInfo oMisaInfo);
            if (msg.Length > 0)
            {
                WriteLog(msg);
            }

            while (!stoppingToken.IsCancellationRequested)
            {
                ParamSetting paramSetting = await GetParamSettingFromServer(urlAPI);

                if (paramSetting == null)
                {
                    WriteLog("Lỗi GetParamSettingFromServer");
                }

                var application = paramSetting.ListSysScheduler.FirstOrDefault(x => x.TEN_UNGDUNG == TenUngDung);
                if (application != null && application.TEN_UNGDUNG == TenUngDung)
                {
                    DoWork(oMisaInfo, urlAPI, paramSetting.TokenInfos.access_token);
                }

                await Task.Delay((60000 * application.TIME_PERIOD), stoppingToken);
            }
        }
示例#2
0
        private async Task <ParamSetting> GetParamSettingFromServer(string urlAPI)
        {
            Result result = await GetAccessTokenAsync();

            if (result.IsFailed)
            {
                IEnumerable <Reason> reasons = result.Reasons;
                WriteLog(reasons.FirstOrDefault().Message);
                return(null);
            }

            IEnumerable <Success> successes = result.Successes;
            string msg = Convertor.StringToObject(successes.FirstOrDefault().Message, out TokenInfo accessToken);

            if (msg.Length > 0)
            {
                WriteLog(Msg.Convert_TokenInfo_Err);
                return(null);
            }

            // Get SysScheduler From Root Database
            result = await GetSysScheduler(urlAPI, accessToken.access_token);

            if (result.IsFailed)
            {
                IEnumerable <Reason> reasons = result.Reasons;
                WriteLog(reasons.FirstOrDefault().Message);
                return(null);
            }

            successes = result.Successes;
            Convertor.StringToObject(successes.FirstOrDefault().Message, out List <SysScheduler> sysScheduler);
            if (msg.Length > 0)
            {
                WriteLog(Msg.Convert_Lst_SysScheduler_Err);
                return(null);
            }

            ParamSetting paramSetting = new ParamSetting
            {
                TokenInfos       = accessToken,
                ListSysScheduler = sysScheduler
            };

            return(paramSetting);
        }