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();
            }
        }
示例#2
0
        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);
        }