private async Task LoadPlansToRextremaWS(IList <NewPlan> plans, bool isFirstStart) { try { await _throttler.WaitAsync(); var stopWath = new Stopwatch(); stopWath.Start(); var data = new { isFirstStart = isFirstStart ? "1" : "0", PLAN_NAME = string.Join("||", plans.Select(x => x.PLAN_NAME)), SPONSOR_DFE_NAME = string.Join("||", plans.Select(x => x.SPONSOR_DFE_NAME)), SPONS_DFE_MAIL_US_CITY = string.Join("||", plans.Select(x => x.SPONS_DFE_MAIL_US_CITY)), SPONS_DFE_MAIL_US_STATE = string.Join("||", plans.Select(x => x.SPONS_DFE_MAIL_US_STATE)), TOT_PARTCP_BOY_CNT = string.Join("||", plans.Select(x => x.TOT_PARTCP_BOY_CNT)), FORM_TAX_PRD = string.Join("||", plans.Select(x => x.FORM_TAX_PRD)), SPONS_DFE_MAIL_US_ZIP = string.Join("||", plans.Select(x => x.SPONS_DFE_MAIL_US_ZIP)), SPONS_DFE_PHONE_NUM = string.Join("||", plans.Select(x => x.SPONS_DFE_PHONE_NUM)), ADMIN_SIGNED_NAME = string.Join("||", plans.Select(x => x.ADMIN_SIGNED_NAME)), SPONS_SIGNED_NAME = string.Join("||", plans.Select(x => x.SPONS_SIGNED_NAME)), TOT_ASSETS_BOY_AMT = string.Join("||", plans.Select(x => x.TOT_ASSETS_BOY_AMT)), TOT_ASSETS_EOY_AMT = string.Join("||", plans.Select(x => x.TOT_ASSETS_EOY_AMT)), SPONS_DFE_PN = string.Join("||", plans.Select(x => x.SPONS_DFE_PN)), SPONS_DFE_EIN = string.Join("||", plans.Select(x => x.SPONS_DFE_EIN)), DATE_RECEIVED = string.Join("||", plans.Select(x => x.DATE_RECEIVED)), ACK_ID = string.Join("||", plans.Select(x => x.ACK_ID)), SPONS_DFE_MAIL_US_ADDRESS = string.Join("||", plans.Select(x => x.SPONS_DFE_MAIL_US_ADDRESS)) }; var httpResponseMessage = await FlurlHelper.RunActionOnRixtremaWsWithRetry("AddPlanLoad", data); if (httpResponseMessage == null || httpResponseMessage.FCT.Result != "Success") { var errorString = string.Format("Error process AddPlanLoad action. Response: {0}", ObjectExtentions.ToJson(httpResponseMessage)); Logger.Log(errorString); _prgLabel.Text = "Error process AddPlanLoad action"; throw new Exception("Error process AddPlanLoad action"); } _totalSuccessPlansSendedToCheck += plans.Count; stopWath.Stop(); _prgLabel.Text = string.Format("AddPlanLoad for part Success. {0} of {1}. Duration {2}", _prgLine.Value, _prgLine.Maximum, stopWath.Elapsed); _prgLine.Value += plans.Count; _totalPlansSendedToCheck += plans.Count; } catch (Exception ex) { Logger.Log("Error process AddPlanLoad action! Ex " + ex); } finally { _throttler.Release(); } }
private static async Task <dynamic> RunActionOnRixtremaWs(string actionName, object additionalData = null) { var rixtremaUrl = Properties.Settings.Default.AJAXFCTUrl; var data = new { Action = actionName, Login = Properties.Settings.Default.AJAXFCTLogin, Password = Properties.Settings.Default.AJAXFCTPassword, }; var queryParams = rixtremaUrl.AppendPathSegment("AJAXFCT.aspx").SetQueryParams(data).WithTimeout(TimeSpan.FromMinutes(15)); var httpResponseMessage = await queryParams.PostUrlEncodedAsync(additionalData ?? new object()).ReceiveJson(); if (httpResponseMessage.FCT.Result != "Success") { var errorString = string.Format("Error process {0} action. Response: {1}", actionName, ObjectExtentions.ToJson(httpResponseMessage)); Logger.Log(errorString); if (_extraAction != null) { _extraAction(string.Format("Warning process {0} action.", actionName)); } throw new Exception(errorString); } if (_extraAction != null) { _extraAction(string.Format("{0} success sent to server.", actionName)); } return(httpResponseMessage); }