private List <WCMDisclosure> GetDisclosures(PdfDocumentList encompassDisclosuresList, WCMDisclosurePackage package)
        {
            var result = new List <WCMDisclosure>();

            for (int i = 0; i < encompassDisclosuresList.Count; i++)
            {
                result.Add(PopulateWcmDisclosure(encompassDisclosuresList[i], package));
            }

            return(result);
        }
        private DisclosuresManger InitDisclosuresManager(PdfDocumentList encompassDisclosuresList, PleaseWaitDialog waitDialog)
        {
            var packageSelected = DisclosuresManger.GetDisclosurePackageSelected(EncompassApplication.CurrentLoan);
            var wcmDisclosures  = GetDisclosures(encompassDisclosuresList, packageSelected);

            return(new DisclosuresManger(DisclosuresUtilityConfig,
                                         new DisclosuresUtilityRequest()
            {
                DisclosurePackage = packageSelected,
                Disclosures = wcmDisclosures,
                Loan = EncompassApplication.CurrentLoan,
                Progress = waitDialog.Progress
            }));
        }
        public async void SendDisclosures(PdfDocumentList encompassDisclosuresList)
        {
            SendDisclosuresButton.Enabled = false;

            var waitDialog = new PleaseWaitDialog(emSendDisclosuresDialogForm);


            await new TaskFactory().StartNew(() =>
            {
                try
                {
                    DisclosuresService  = InitDisclosuresManager(encompassDisclosuresList, waitDialog);
                    var packageResponse = DisclosuresService.SendDisclosurePackageToBorrower();


                    waitDialog.Progress.Report($"Disclosures sent successfully. {Environment.NewLine + Environment.NewLine}Saving Loan...");

                    EncompassApplication.CurrentLoan.Commit();

                    waitDialog.PleaseWaitForm.Close();

                    // SP - close EM disclosure dialog
                    emSendDisclosuresDialogForm.Close();

                    Macro.Alert($"Disclosure Package Sent Successfully.");
                }
                catch (WCMException e)
                {
                    waitDialog.PleaseWaitForm.Close();

                    UIHelper.DisplayWCMException(e);
                    SendDisclosuresButton.Enabled = true;
                }
                catch (Exception e)
                {
                    waitDialog.PleaseWaitForm.Close();

                    Macro.Alert($"Unhandled Exception ERROR: {e.ToString()}");
                    SendDisclosuresButton.Enabled = true;
                }
            });
        }
        private PdfDocumentList GetEncompassDisclosuresList()
        {
            if (DocumentGrid == null)
            {
                DocumentGrid = emSendDisclosuresDialogForm.Controls.Find(DocumentGridControlId, true).FirstOrDefault() as GridView;
                if (DocumentGrid == null)
                {
                    MessageBox.Show("Unable to locate Document Grid with disclosures. Please submit a help desk ticket!");
                    return(null);
                }
            }

            string          errorMessage             = string.Empty;
            PdfDocumentList encompassDisclosuresList = null;

            for (int i = 0; i < 8; i++)
            {
                try
                {
                    MethodInfo getDocsMethod = this.emSendDisclosuresDialogForm.GetType().GetMethod("getSelectedDocuments", BindingFlags.Instance | BindingFlags.NonPublic);
                    encompassDisclosuresList = getDocsMethod.Invoke((object)this.emSendDisclosuresDialogForm, new object[0]) as PdfDocumentList;
                    break;
                }
                catch (Exception ex)
                {
                    errorMessage = ex.ToString();
                    Thread.Sleep(1000);
                }
            }

            if (encompassDisclosuresList == null)
            {
                MessageBox.Show($"PDF document list contains no disclosures! " +
                                $"Please submit a help desk ticket!" +
                                $"{Environment.NewLine + Environment.NewLine}" +
                                $"Error Message: {errorMessage}");
                return(null);
            }

            return(encompassDisclosuresList);
        }