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); } }
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); }