/// <summary> /// v1.0.21 - Should I check for failed survey reasons. /// </summary> /// <returns></returns> private static ShouldICheckForSurveyReasonResult ShouldICheckForFailedSurveyReasons() { ShouldICheckForSurveyReasonResult cResult = new ShouldICheckForSurveyReasonResult(); cResult.bCheck = false; cResult.dLastUpdate = DateTime.MinValue; try { int iDaysBetweenChecks = Convert.ToInt32(DependencyService.Get<IMain>().GetAppResourceValue("CheckFailedReasonsDaysBetweenChecks").ToString()); AppSettingsTable cSettings = Main.p_cDataAccess.ReturnSettings(); if (cSettings != null) { if (cSettings.LastSurveyFailedCheckDateTime.HasValue == true) { TimeSpan tsDiff = DateTime.Now.Subtract(cSettings.LastSurveyFailedCheckDateTime.Value); if (tsDiff.TotalDays >= iDaysBetweenChecks) { cResult.bCheck = true; cResult.dLastUpdate = cSettings.LastSurveyFailedUpdateDateTime.Value; } } else { cResult.bCheck = true; } } else { cResult.bCheck = true; } return cResult; } catch (Exception ex) { //cMain.ReportError(ex, cMain.GetCallerMethodName(), string.Empty); return cResult; } }
/// <summary> /// v1.0.19 - Check for Failed Survey reasons. /// </summary> public async static Task CheckForFailedSurveyReasons() { WcfExt116 cAX = null; try { //If already checking then leave. if (Main.m_bCheckingSurveyFailedReasons == true) { return; } Main.m_bCheckingSurveyFailedReasons = true; ShouldICheckForSurveyReasonResult cCheckResult = Main.ShouldICheckForFailedSurveyReasons(); if (cCheckResult.bCheck == true) { //For calling AX wcf cAX = new WcfExt116(); //Get update base enums from AX FetchSurveyFailedReasonsResult fsrResult = await DependencyService.Get<IWcfExt116>().FetchFailedSurveyReasons( cAX.m_cCompanyName, cCheckResult.dLastUpdate, Settings.p_sSetting_AuthID, Session.Token); if (fsrResult != null) { if (fsrResult.bSuccessfull == true) { AppSettingsTable cSettings = Main.p_cDataAccess.ReturnSettings(); if (fsrResult.sfrReasons.Count > 0) { bool bUpdateOK = Main.p_cDataAccess.UpdateFailedSurveyReasonsTable(fsrResult.sfrReasons); if (bUpdateOK == true) { cSettings.LastSurveyFailedUpdateDateTime = fsrResult.bLastUpdateDate; } } cSettings.LastSurveyFailedCheckDateTime = DateTime.Now; await Main.p_cDataAccess.SaveSettings(cSettings); } } } //Close connection. if (cAX != null) { await DependencyService.Get<IWcfExt116>().CloseAXConnection(); } //Reset checking flag. Main.m_bCheckingSurveyFailedReasons = false; } catch (Exception ex) { Main.m_bCheckingSurveyFailedReasons = false; //Reset checking flag. //cMain.ReportError(ex, cMain.GetCallerMethodName(), string.Empty); } }