private BillingPreviewRunResult SubmitBillingPreviewRequest(BillingPreviewRunInputs inputs)
        {
            BillingPreviewRunResult  result         = new BillingPreviewRunResult("Start", "", 0, DateTime.Now, "", "");
            BillingPreviewRunService billingService = new BillingPreviewRunService();
            bool loginSuccess = billingService.Login(inputs.UserId, inputs.Password);

            if (loginSuccess)
            {
                string requestId = "";
                if (inputs.RequestId != "")
                {
                    requestId = inputs.RequestId;
                }
                else
                {
                    requestId = billingService.SubmitBillingPreviewRequest(inputs.TargetDate);
                }

                if (!string.IsNullOrWhiteSpace(requestId))
                {
                    // try 5 times to wait for the result.
                    for (int i = 0; i < 10; i++)
                    {
                        // check for result
                        result = billingService.GetBillingRequestById(requestId);

                        // break if the request is complete
                        if (result.Status == "Completed")
                        {
                            break;
                        }

                        // sleep 5 seconds
                        Thread.Sleep(5000);
                    }
                }
                else
                {
                    return(new BillingPreviewRunResult("Error", "", 0, DateTime.Now, "Submit BillingPreviewRun request failed!", requestId));
                }

                return(result);
            }
            else
            {
                return(new BillingPreviewRunResult("Error", "", 0, DateTime.Now, "Login failed! Check your credentials.", ""));
            }
        }
예제 #2
0
 public void Init()
 {
     BillingService = new BillingPreviewRunService();
     BillingService.Login(AppSettings.Username, AppSettings.Password);
 }