protected void tabStripMerchantDetail_TabClick(object sender, RadTabStripEventArgs e)
        {
            MerchantModel editMerchant = new MerchantModel();
            Int32 merchantRecordId;
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();

            try
            {
                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);

                using (ApplicationDbContext ctx = new ApplicationDbContext())
                {
                    editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);

                    if (ctx.UnderwritingResults.Any(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true))
                    {
                        underwritingResult = ctx.UnderwritingResults.First(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true);

                        if (underwritingResult.UnderwritingDecision == "Pending" || String.IsNullOrEmpty(underwritingResult.UnderwritingDecision))
                        {
                            if (underwritingResult.UnderwriterUser.Id == Page.User.Identity.GetUserId())
                            {
                                pnlUnderwritingHistory.Visible = false;
                                pnlNewUnderwriting.Visible = false;
                                pnlNewUnderwriting2.Visible = true;
                                pnlUnderwritingButtons.Visible = false;
                                pnlUnderwritingAdvancedButtons.Visible = true;
                                btnUnderwritingCancel.Visible = true;
                                btnUnderwritingComplete.Visible = true;
                                btnUnderwritingSave.Visible = true;
                                btnAddNewUnderwriting.Visible = false;

                                //Enable and Fill Radio Button Fields
                                rblUWCorpInfoVerifiedResult.Enabled = true;
                                rblUWBusLicStatusResult.Enabled = true;
                                rblUWEINVerifiedResult.Enabled = true;
                                rblUWPrincipalVerifiedResult.Enabled = true;
                                rblUWCardSalesIndicatorsVerifiedResult.Enabled = true;
                                rblUWBankingInfoVerifiedResult.Enabled = true;
                                rblUWMCCVerifiedResult.Enabled = true;
                                rblUWBVIVerifiedResult.Enabled = true;
                                rblUWTaxLiensVerifiedResult.Enabled = true;
                                rblUWRiskIndicatorVerifiedResult.Enabled = true;

                                rblUWCorpInfoVerifiedResult.SelectedValue = underwritingResult.CorpInfoResult.ToString();
                                rblUWBusLicStatusResult.SelectedValue = underwritingResult.BusLicStatusResult.ToString();
                                rblUWEINVerifiedResult.SelectedValue = underwritingResult.EINResult.ToString();
                                rblUWPrincipalVerifiedResult.SelectedValue = underwritingResult.PrincipalResult.ToString();
                                rblUWCardSalesIndicatorsVerifiedResult.SelectedValue = underwritingResult.CardSalesIndicatorResult.ToString();
                                rblUWBankingInfoVerifiedResult.SelectedValue = underwritingResult.BankingInfoResult.ToString();
                                rblUWMCCVerifiedResult.SelectedValue = underwritingResult.MCCResult.ToString();
                                rblUWBVIVerifiedResult.SelectedValue = underwritingResult.BVIResult.ToString();
                                rblUWTaxLiensVerifiedResult.SelectedValue = underwritingResult.TaxLiensResult.ToString();
                                rblUWRiskIndicatorVerifiedResult.SelectedValue = underwritingResult.RiskIndicatorResult.ToString();

                                //Enable and Fill Text Area Fields
                                txtUWCorpInfoVerifiedNotes.Enabled = true;
                                txtUWBUsLicStatusVerifiedNotes.Enabled = true;
                                txtUWEINVerifiedNotes.Enabled = true;
                                txtUWPrincipalVerifiedNotes.Enabled = true;
                                txtUWCardSalesIndicatorsVerifiedNotes.Enabled = true;
                                txtUWBankingInfoVerifiedNotes.Enabled = true;
                                txtUWMCCVerifiedNotes.Enabled = true;
                                txtUWBVIVerifiedNotes.Enabled = true;
                                txtUWTaxLiensVerifiedNotes.Enabled = true;
                                txtUWRiskIndicatorVerifiedNotes.Enabled = true;

                                txtUWCorpInfoVerifiedNotes.Text = underwritingResult.CorpInfoNotes;
                                txtUWBUsLicStatusVerifiedNotes.Text = underwritingResult.BusLicStatusNotes;
                                txtUWEINVerifiedNotes.Text = underwritingResult.EINNotes;
                                txtUWPrincipalVerifiedNotes.Text = underwritingResult.PrincipalNotes;
                                txtUWCardSalesIndicatorsVerifiedNotes.Text = underwritingResult.CardSalesIndicatorNotes;
                                txtUWBankingInfoVerifiedNotes.Text = underwritingResult.BankingInfoNotes;
                                txtUWMCCVerifiedNotes.Text = underwritingResult.MCCNotes;
                                txtUWBVIVerifiedNotes.Text = underwritingResult.BVINotes;
                                txtUWTaxLiensVerifiedNotes.Text = underwritingResult.TaxLiensNotes;
                                txtUWRiskIndicatorVerifiedNotes.Text = underwritingResult.RiskIndicatorNotes;

                                //Disable Begin Button
                                btnBeginUnderwritingUpdate.Enabled = false;

                                //Fill Underwriter Initials
                                txtUnderwriterInitials.Text = underwritingResult.UnderwriterInitials;
                                txtUnderwriterInitials.Enabled = false;

                                lblUnderwritingMessage2.Text = "The current Underwriting Process is still in progress.  Please complete or cancel this process to view Underwriting History.";
                            }
                            else
                            {
                                btnAddNewUnderwriting.Enabled = false;
                            }
                        }
                    }

                    if (e.Tab.Text == "Underwriting")
                    {
                        pnlBasicButtons.Visible = false;
                        pnlMessagingButtons.Visible = false;
                        pnlUnderwritingButtons.Visible = true;
                        pnlUserButtons.Visible = false;
                    }
                    else if (e.Tab.Text == "Email Messages")
                    {
                        pnlBasicButtons.Visible = false;
                        pnlMessagingButtons.Visible = false;
                        pnlUnderwritingButtons.Visible = false;
                        pnlUserButtons.Visible = false;
                    }
                    else if (e.Tab.Text == "Profile")
                    {
                        pnlMessagingButtons.Visible = false;
                        pnlUnderwritingButtons.Visible = false;

                        RadTabStrip tabStripMerchantProfile = (RadTabStrip)ProfileView.FindControl("tabStripMerchantProfile");

                        if (tabStripMerchantProfile.SelectedTab.Text == "Status")
                        {
                            pnlBasicButtons.Visible = false;
                            pnlUserButtons.Visible = false;

                            if (editMerchant.UnderwritingStatus.StatusDescription == "Pending")
                            {
                                phApproveMerchant.Visible = false;
                                phApproveDisallowed.Visible = true;
                                lblApprovalDisallowed.Text = "The Underwriting Status for this merchant is still Pending.  In order to Approve this merchant, the Underwriting Status must be Approved.";
                            }
                            else if (editMerchant.UnderwritingStatus.StatusDescription == "Approved")
                            {
                                phApproveMerchant.Visible = true;
                                phApproveDisallowed.Visible = false;
                                lblApprovalDisallowed.Text = "";
                            }
                            else if (editMerchant.UnderwritingStatus.StatusDescription == "Denied")
                            {
                                phApproveMerchant.Visible = false;
                                phApproveDisallowed.Visible = true;
                                lblApprovalDisallowed.Text = "The Underwriting Status for this merchant is Denied.  In order to Approve this merchant, the Underwriting Status must be Approved.";
                            }
                            else
                            {
                                phApproveMerchant.Visible = false;
                                phApproveDisallowed.Visible = true;
                                lblApprovalDisallowed.Text = "The Underwriting Status for this merchant is Outdated.  In order to Approve this merchant, please renew the Underwriting results.";
                            }
                        }
                        else if (tabStripMerchantProfile.SelectedTab.Text == "Users")
                        {
                            pnlBasicButtons.Visible = false;
                            pnlUserButtons.Visible = true;
                        }
                        else
                        {
                            pnlBasicButtons.Visible = true;
                        }
                    }
                    else
                    {
                        pnlBasicButtons.Visible = true;
                        pnlMessagingButtons.Visible = false;
                        pnlUnderwritingButtons.Visible = false;
                        pnlUserButtons.Visible = false;

                    }
                }

            }
            catch (System.Exception ex)
            {
                _newLogic.WriteExceptionToDB(ex, "tabStripMerchantDetail_TabClick");
            }
        }
        public void CancelUnderwriting()
        {
            MerchantModel editMerchant = new MerchantModel();
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();
            UnderwritingResultModel oldUnderwritingResult = new UnderwritingResultModel();
            LexisNexisExceptionModel lnException = new LexisNexisExceptionModel();

            Int32 merchantRecordId;

            try
            {
                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);

                using (ApplicationDbContext ctx = new ApplicationDbContext())
                {
                    editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);

                    underwritingResult = ctx.UnderwritingResults.FirstOrDefault(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true);

                    lnException = ctx.LexisNexisExceptions.FirstOrDefault(lne => lne.UnderwritingResult.RecordId == underwritingResult.RecordId);

                    if (lnException != null)
                    {
                        ctx.LexisNexisExceptions.Remove(lnException);
                    }
                    if (underwritingResult != null)
                    {
                        ctx.UnderwritingResults.Remove(underwritingResult);
                    }

                    ctx.SaveChanges();

                    if (ctx.UnderwritingResults.Any(ur => ur.Merchant.RecordId == merchantRecordId))
                    {
                        oldUnderwritingResult = ctx.UnderwritingResults.Where(ur => ur.Merchant.RecordId == merchantRecordId).OrderByDescending(ur => ur.Timestamp).First();

                        oldUnderwritingResult.Active = true;

                        ctx.SaveChanges();
                    }

                    gridUnderwritingHistory.Rebind();

                }

                //Reset Radio Button Fields
                rblUWCorpInfoVerifiedResult.SelectedValue = "0";
                rblUWBusLicStatusResult.SelectedValue = "0";
                rblUWEINVerifiedResult.SelectedValue = "0";
                rblUWPrincipalVerifiedResult.SelectedValue = "0";
                rblUWCardSalesIndicatorsVerifiedResult.SelectedValue = "0";
                rblUWBankingInfoVerifiedResult.SelectedValue = "0";
                rblUWMCCVerifiedResult.SelectedValue = "0";
                rblUWBVIVerifiedResult.SelectedValue = "0";
                rblUWTaxLiensVerifiedResult.SelectedValue = "0";
                rblUWRiskIndicatorVerifiedResult.SelectedValue = "0";

                //Reset Text Area Fields
                txtUWCorpInfoVerifiedNotes.Text = "";
                txtUWBUsLicStatusVerifiedNotes.Text = "";
                txtUWEINVerifiedNotes.Text = "";
                txtUWPrincipalVerifiedNotes.Text = "";
                txtUWCardSalesIndicatorsVerifiedNotes.Text = "";
                txtUWBankingInfoVerifiedNotes.Text = "";
                txtUWMCCVerifiedNotes.Text = "";
                txtUWBVIVerifiedNotes.Text = "";
                txtUWTaxLiensVerifiedNotes.Text = "";
                txtUWRiskIndicatorVerifiedNotes.Text = "";
                txtUnderwriterInitials.Text = "";

            }
            catch (System.Exception ex)
            {
                _newLogic.WriteExceptionToDB(ex, "CancelUnderwriting");
            }
        }
        protected void StatusView_PreRender(object sender, EventArgs e)
        {
            MerchantModel editMerchant = new MerchantModel();
            Int32 merchantRecordId;
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();

            try
            {
                rptrStatusChanges.DataBind();

                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);

                if (lblStatusDescription.Text.ToLower() == "pre-enrolled")
                {
                    phQuickActions.Visible = false;
                    lblMerchantActionMessage.Text = "No Actions can be performed on a Pre-Enrolled merchant.";
                }
                else if (lblStatusDescription.Text.ToLower() == "enrolled")
                {
                    phDenyMerchant.Visible = true;
                    phDenyDisallowed.Visible = false;
                    lblDenyDisallowed.Text = "";

                    phSuspendMerchant.Visible = false;
                    phSuspendDisallowed.Visible = true;
                    lblSuspendDisallowed.Text = "This merchant is still in Enrolled status.  You cannot Suspend a merchant until they are Active.";

                    phReinstateMerchant.Visible = false;
                    phReinstateDisallowed.Visible = true;
                    lblReinstateDisallowed.Text = "You can only Reinstate a merchant if they are in Suspended Status.";

                    phCancelMerchant.Visible = true;
                    phCancelDisallowed.Visible = false;
                    lblCancelDisallowed.Text = "";

                    using (ApplicationDbContext ctx = new ApplicationDbContext())
                    {
                        if (ctx.Merchants.Any(m => m.RecordId == merchantRecordId))
                        {
                            editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);

                            if (ctx.UnderwritingResults.Any(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true))
                            {
                                underwritingResult = ctx.UnderwritingResults.First(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true);

                                if (editMerchant.UnderwritingStatus.StatusDescription == "Pending")
                                {
                                    phApproveMerchant.Visible = false;
                                    phApproveDisallowed.Visible = true;
                                    lblApprovalDisallowed.Text = "The Underwriting Status for this merchant is still Pending.  In order to Approve this merchant, the Underwriting Status must be Approved.";
                                }
                                else if (editMerchant.UnderwritingStatus.StatusDescription == "Approved")
                                {
                                    phApproveMerchant.Visible = true;
                                    phApproveDisallowed.Visible = false;
                                    lblApprovalDisallowed.Text = "";
                                }
                                else if (editMerchant.UnderwritingStatus.StatusDescription == "Denied")
                                {
                                    phApproveMerchant.Visible = false;
                                    phApproveDisallowed.Visible = true;
                                    lblApprovalDisallowed.Text = "The Underwriting Status for this merchant is Denied.  In order to Approve this merchant, the Underwriting Status must be Approved.";
                                }
                                else
                                {
                                    phApproveMerchant.Visible = false;
                                    phApproveDisallowed.Visible = true;
                                    lblApprovalDisallowed.Text = "The Underwriting Status for this merchant is Outdated.  In order to Approve this merchant, please renew the Underwriting results.";
                                }

                            }
                            else
                            {
                                phApproveMerchant.Visible = false;
                                phApproveDisallowed.Visible = true;
                                lblApprovalDisallowed.Text = "This merchant has not been underwritten.  In order to Approve this merchant, please Underwrite them first.";

                            }
                        }
                    }
                }
                else if (lblStatusDescription.Text.ToLower() == "active")
                {
                    phApproveMerchant.Visible = false;
                    phApproveDisallowed.Visible = true;
                    lblApprovalDisallowed.Text = "This merchant is already Active.";

                    phDenyMerchant.Visible = false;
                    phDenyDisallowed.Visible = true;
                    lblDenyDisallowed.Text = "This merchant is already Active.  You can Suspend or Cancel them if necessary.";

                    phSuspendMerchant.Visible = true;
                    phSuspendDisallowed.Visible = false;
                    lblSuspendDisallowed.Text = "";

                    phReinstateMerchant.Visible = false;
                    phReinstateDisallowed.Visible = true;
                    lblReinstateDisallowed.Text = "You can only Reinstate a merchant if they are in Suspended Status.";

                    phCancelMerchant.Visible = true;
                    phCancelDisallowed.Visible = false;
                    lblCancelDisallowed.Text = "";
                }
                else if (lblStatusDescription.Text.ToLower() == "suspended")
                {
                    phApproveMerchant.Visible = false;
                    phApproveDisallowed.Visible = true;
                    lblApprovalDisallowed.Text = "This merchant is Suspended.  To end the merchant's suspension, Reinstate them.";

                    phDenyMerchant.Visible = false;
                    phDenyDisallowed.Visible = true;
                    lblDenyDisallowed.Text = "This merchant cannot be Denied.  You can Cancel them if necessary.";

                    phSuspendMerchant.Visible = false;
                    phSuspendDisallowed.Visible = true;
                    lblSuspendDisallowed.Text = "This merchant is already suspended.";

                    phReinstateMerchant.Visible = true;
                    phReinstateDisallowed.Visible = false;
                    lblReinstateDisallowed.Text = "";

                    phCancelMerchant.Visible = true;
                    phCancelDisallowed.Visible = false;
                    lblCancelDisallowed.Text = "";
                }
                else if (lblStatusDescription.Text.ToLower() == "cancelled")
                {
                    phQuickActions.Visible = false;
                    lblMerchantActionMessage.Text = "No Actions can be performed on a Cancelled merchant.";
                }
                else if (lblStatusDescription.Text.ToLower() == "denied")
                {
                    phQuickActions.Visible = false;
                    lblMerchantActionMessage.Text = "No Actions can be performed on a Denied merchant.";
                }
            }
            catch (System.Exception ex)
            {
                _newLogic.WriteExceptionToDB(ex, "StatusView_PreRender");
            }
        }
        public void BeginNewUnderwriting()
        {
            MerchantModel editMerchant = new MerchantModel();
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();
            UnderwritingResultModel oldUnderwritingResult = new UnderwritingResultModel();
            String userId = "";
            Int32 merchantRecordId;

            try
            {
                txtUnderwriterInitials.Enabled = false;

                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);
                using (ApplicationDbContext ctx = new ApplicationDbContext())
                {
                    editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);

                    if (ctx.UnderwritingResults.Any(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true))
                    {
                        oldUnderwritingResult = ctx.UnderwritingResults.Where(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true).First();
                        oldUnderwritingResult.Active = false;
                    }

                    underwritingResult.Brand = editMerchant.Brand;
                    underwritingResult.Merchant = editMerchant;
                    underwritingResult.Timestamp = DateTime.UtcNow;
                    underwritingResult.Active = true;
                    underwritingResult.UnderwriterInitials = txtUnderwriterInitials.Text;
                    if (Request.IsAuthenticated)
                    {
                        userId = Page.User.Identity.GetUserId();
                        underwritingResult.UnderwriterUser = ctx.Users.First(u => u.Id == userId);
                    }

                    ctx.UnderwritingResults.Add(underwritingResult);

                    ctx.SaveChanges();
                }

                btnBeginUnderwritingUpdate.Enabled = false;
                pnlUnderwritingButtons.Visible = true;
                btnAddNewUnderwriting.Visible = false;
                btnUnderwritingContinue.Visible = true;
                btnUnderwritingCancel2.Visible = true;

                //Connect to LexisNexis to get automated results
                AutomatedUnderwriting(editMerchant.RecordId, underwritingResult.RecordId);

                ////Enable Radio Button Fields
                //rblUWCorpInfoVerifiedResult.Enabled = true;
                //rblUWBusLicStatusResult.Enabled = true;
                //rblUWEINVerifiedResult.Enabled = true;
                //rblUWPrincipalVerifiedResult.Enabled = true;
                //rblUWCardSalesIndicatorsVerifiedResult.Enabled = true;
                //rblUWBankingInfoVerifiedResult.Enabled = true;
                //rblUWMCCVerifiedResult.Enabled = true;
                //rblUWBVIVerifiedResult.Enabled = true;
                //rblUWTaxLiensVerifiedResult.Enabled = true;
                //rblUWRiskIndicatorVerifiedResult.Enabled = true;

                ////Enable Text Area Fields
                //txtUWCorpInfoVerifiedNotes.Enabled = true;
                //txtUWBUsLicStatusVerifiedNotes.Enabled = true;
                //txtUWEINVerifiedNotes.Enabled = true;
                //txtUWPrincipalVerifiedNotes.Enabled = true;
                //txtUWCardSalesIndicatorsVerifiedNotes.Enabled = true;
                //txtUWBankingInfoVerifiedNotes.Enabled = true;
                //txtUWMCCVerifiedNotes.Enabled = true;
                //txtUWBVIVerifiedNotes.Enabled = true;
                //txtUWTaxLiensVerifiedNotes.Enabled = true;
                //txtUWRiskIndicatorVerifiedNotes.Enabled = true;

            }
            catch (System.Exception ex)
            {
                _newLogic.WriteExceptionToDB(ex, "BeginUnderwriting", 0, 0, userId);
            }
        }
        protected void btnUnderwritingSave_Click(object sender, EventArgs e)
        {
            MerchantModel editMerchant = new MerchantModel();
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();
            UnderwritingResultModel oldUnderwritingResult = new UnderwritingResultModel();
            Int32 merchantRecordId;

            try
            {
                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);
                using (ApplicationDbContext ctx = new ApplicationDbContext())
                {
                    editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);

                    underwritingResult = ctx.UnderwritingResults.Where(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true).First();

                    underwritingResult.CorpInfoResult = Convert.ToInt16(rblUWCorpInfoVerifiedResult.SelectedValue);
                    underwritingResult.CorpInfoNotes = txtUWCorpInfoVerifiedNotes.Text;

                    underwritingResult.BusLicStatusResult = Convert.ToInt16(rblUWBusLicStatusResult.SelectedValue);
                    underwritingResult.BusLicStatusNotes = txtUWBUsLicStatusVerifiedNotes.Text;

                    underwritingResult.EINResult = Convert.ToInt16(rblUWEINVerifiedResult.SelectedValue);
                    underwritingResult.EINNotes = txtUWEINVerifiedNotes.Text;

                    underwritingResult.PrincipalResult = Convert.ToInt16(rblUWPrincipalVerifiedResult.SelectedValue);
                    underwritingResult.PrincipalNotes = txtUWPrincipalVerifiedNotes.Text;

                    underwritingResult.CardSalesIndicatorResult = Convert.ToInt16(rblUWCardSalesIndicatorsVerifiedResult.SelectedValue);
                    underwritingResult.CardSalesIndicatorNotes = txtUWCardSalesIndicatorsVerifiedNotes.Text;

                    underwritingResult.BankingInfoResult = Convert.ToInt16(rblUWBankingInfoVerifiedResult.SelectedValue);
                    underwritingResult.BankingInfoNotes = txtUWBankingInfoVerifiedNotes.Text;

                    underwritingResult.MCCResult = Convert.ToInt16(rblUWMCCVerifiedResult.SelectedValue);
                    underwritingResult.MCCNotes = txtUWMCCVerifiedNotes.Text;

                    underwritingResult.BVIResult = Convert.ToInt16(rblUWBVIVerifiedResult.SelectedValue);
                    underwritingResult.BVINotes = txtUWBVIVerifiedNotes.Text;

                    underwritingResult.TaxLiensResult = Convert.ToInt16(rblUWTaxLiensVerifiedResult.SelectedValue);
                    underwritingResult.TaxLiensNotes = txtUWTaxLiensVerifiedNotes.Text;

                    underwritingResult.RiskIndicatorResult = Convert.ToInt16(rblUWRiskIndicatorVerifiedResult.SelectedValue);
                    underwritingResult.RiskIndicatorNotes = txtUWRiskIndicatorVerifiedNotes.Text;

                    underwritingResult.UnderwritingDecision = "Pending";
                    editMerchant.UnderwritingStatus = ctx.UnderwritingStatuses.First(us => us.StatusDescription == "Pending");

                    ctx.SaveChanges();
                    UpdateStatusLabel();

                    lblUnderwritingMessage.Text = "Underwriting results have been successfully saved.";
                }

            }
            catch (System.Exception ex)
            {
                lblUnderwritingMessage.Text = "Underwriting results could not be saved.  Please try again or contact your system administrator.";
                _newLogic.WriteExceptionToDB(ex, "btnUnderwritingSave_Click");
            }
        }
        protected void btnUnderwritingContinue_Click(object sender, EventArgs e)
        {
            pnlUnderwritingHistory.Visible = false;
            pnlNewUnderwriting.Visible = false;
            pnlNewUnderwriting2.Visible = true;
            pnlUnderwritingButtons.Visible = false;
            pnlUnderwritingAdvancedButtons.Visible = true;
            btnUnderwritingComplete.Visible = true;
            btnUnderwritingSave.Visible = true;
            btnUnderwritingCancel.Visible = true;

            MerchantModel editMerchant = new MerchantModel();
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();
            UnderwritingResultModel oldUnderwritingResult = new UnderwritingResultModel();
            Int32 merchantRecordId;

            try
            {
                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);

                using (ApplicationDbContext ctx = new ApplicationDbContext())
                {
                    editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);
                    var underwritingSchema = editMerchant.AdvancePlan.UnderwritingSchema;

                    underwritingResult = ctx.UnderwritingResults.FirstOrDefault(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true);

                    if (underwritingResult != null)
                    {
                        if (underwritingResult.LexisNexisResults != null)
                        {
                            if (underwritingResult.LexisNexisResults.MccMatch != null)
                            {
                                if (underwritingResult.LexisNexisResults.MccMatch == true)
                                {
                                    txtUWMCCVerifiedNotes.Text = "Match and Approved";
                                    rblUWMCCVerifiedResult.SelectedValue = "1";
                                }
                                else if (underwritingResult.LexisNexisResults.MccMatch == false)
                                {
                                    txtUWMCCVerifiedNotes.Text = "Mismatch";
                                    rblUWMCCVerifiedResult.SelectedValue = "2";
                                    rblUWMCCVerifiedResult.Enabled = false;
                                }
                                else
                                {
                                    txtUWMCCVerifiedNotes.Text = "";
                                    rblUWMCCVerifiedResult.SelectedValue = "0";
                                }
                            }

                            if (underwritingResult.LexisNexisResults.OFAC != null)
                            {
                                if (underwritingResult.LexisNexisResults.OFAC == false)
                                {
                                    rblUWOFACMatchVerifiedResult.SelectedValue = "1";
                                    txtUWOFACMatchVerifiedNotes.Text = "No OFAC Match Found";
                                }
                                else
                                {
                                    if (underwritingSchema.OFACDecline == true)
                                    {
                                        rblUWOFACMatchVerifiedResult.SelectedValue = "2";
                                        txtUWOFACMatchVerifiedNotes.Text = "Match Found | " + underwritingResult.LexisNexisResults.OFACMatchData;
                                        rblUWOFACMatchVerifiedResult.Enabled = false;
                                    }
                                    else
                                    {
                                        rblUWOFACMatchVerifiedResult.SelectedValue = "1";
                                        txtUWOFACMatchVerifiedNotes.Text = "Match Found, but Allowed | " + underwritingResult.LexisNexisResults.OFACMatchData;
                                    }
                                }
                            }

                            if (underwritingResult.LexisNexisResults.BVI != null)
                            {
                                if (underwritingResult.LexisNexisResults.BVI < underwritingSchema.BVIDeclineLimit)
                                {
                                    txtUWBVIVerifiedNotes.Text = "Fail: " + underwritingResult.LexisNexisResults.BVI + " < " + underwritingSchema.BVIDeclineLimit;
                                    rblUWBVIVerifiedResult.SelectedValue = "2";
                                    rblUWBVIVerifiedResult.Enabled = false;
                                }
                                else if (underwritingResult.LexisNexisResults.BVI == underwritingSchema.BVIReviewLimit)
                                {
                                    txtUWBVIVerifiedNotes.Text = "Manual Approval Required: " + underwritingResult.LexisNexisResults.BVI + " = " + underwritingSchema.BVIReviewLimit;
                                    rblUWBVIVerifiedResult.SelectedValue = "0";
                                }
                                else
                                {
                                    txtUWBVIVerifiedNotes.Text = "Pass: "******" > " + underwritingSchema.BVIReviewLimit;
                                    rblUWBVIVerifiedResult.SelectedValue = "1";
                                }
                            }

                            if (underwritingResult.LexisNexisResults.RecentLienType != null)
                            {
                                if (underwritingResult.LexisNexisResults.RecentLienType.TypeName.ToLower().Contains("tax"))
                                {
                                    if (underwritingSchema.DeclineOnTaxLien)
                                    {
                                        txtUWTaxLiensVerifiedNotes.Text = "Fail: " + underwritingResult.LexisNexisResults.RecentLienType.TypeName;
                                        rblUWTaxLiensVerifiedResult.SelectedValue = "2";
                                        rblUWTaxLiensVerifiedResult.Enabled = false;
                                    }
                                    else
                                    {
                                        txtUWTaxLiensVerifiedNotes.Text = "Tax Lien Found, but Allowed: " + underwritingResult.LexisNexisResults.RecentLienType.TypeName;
                                        rblUWTaxLiensVerifiedResult.SelectedValue = "1";
                                    }
                                }
                            }
                            else
                            {
                                txtUWTaxLiensVerifiedNotes.Text = "No Tax Liens";
                                rblUWTaxLiensVerifiedResult.SelectedValue = "1";
                            }

                            if (ctx.LexisNexisRiskCodeResults.Any(lnrcr => lnrcr.LexisNexisUnderwritingResult.RecordId == underwritingResult.LexisNexisResults.RecordId))
                            {
                                String riskCodeList = "";
                                var riskCodes = ctx.LexisNexisRiskCodeResults.Where(lnrcr => lnrcr.LexisNexisUnderwritingResult.RecordId == underwritingResult.LexisNexisResults.RecordId);

                                foreach (var code in riskCodes)
                                {
                                    if (underwritingSchema.LexisNexisApprovedRiskCodes.Any(x => x.Decline && x.RiskCode.RecordId == code.RiskCode.RecordId))
                                    {
                                        riskCodeList += "Decline: " + code.RiskCode.RiskCodeDescription + " || ";
                                    }
                                    else if (underwritingSchema.LexisNexisApprovedRiskCodes.Any(x => x.ReqeustVerification && x.RiskCode.RecordId == code.RiskCode.RecordId))
                                    {
                                        riskCodeList += "Manual Verification: " + code.RiskCode.RiskCodeDescription + " || ";
                                    }
                                    else
                                    {
                                        riskCodeList += "Found, but Allowed: " + code.RiskCode.RiskCodeDescription + " || ";
                                    }
                                }

                                txtUWRiskIndicatorVerifiedNotes.Text = riskCodeList.Substring(0, riskCodeList.Length - 4);
                                if (riskCodeList.Contains("Decline:"))
                                {
                                    rblUWRiskIndicatorVerifiedResult.SelectedValue = "2";
                                    rblUWRiskIndicatorVerifiedResult.Enabled = false;
                                }
                                else if (riskCodeList.Contains("Manual Verification:"))
                                {
                                    rblUWRiskIndicatorVerifiedResult.SelectedValue = "0";
                                }
                                else
                                {
                                    rblUWRiskIndicatorVerifiedResult.SelectedValue = "1";
                                }

                            }
                        }
                    }
                }

                txtUWCorpInfoVerifiedNotes.Text = "";
                txtUWBUsLicStatusVerifiedNotes.Text = "";
                txtUWEINVerifiedNotes.Text = "";
                txtUWPrincipalVerifiedNotes.Text = "";
                txtUWCardSalesIndicatorsVerifiedNotes.Text = "";
                txtUWBankingInfoVerifiedNotes.Text = "";
                rblUWCorpInfoVerifiedResult.SelectedValue = "0";
                rblUWBusLicStatusResult.SelectedValue = "0";
                rblUWEINVerifiedResult.SelectedValue = "0";
                rblUWPrincipalVerifiedResult.SelectedValue = "0";
                rblUWCardSalesIndicatorsVerifiedResult.SelectedValue = "0";
                rblUWBankingInfoVerifiedResult.SelectedValue = "0";

            }
            catch (System.Exception ex)
            {
                _newLogic.WriteExceptionToDB(ex, "btnUnderwritingContinue_Click");
            }
        }
        protected void btnUnderwritingComplete_Click(object sender, EventArgs e)
        {
            MerchantModel editMerchant = new MerchantModel();
            UnderwritingResultModel underwritingResult = new UnderwritingResultModel();
            UnderwritingResultModel oldUnderwritingResult = new UnderwritingResultModel();
            Int32 merchantRecordId;
            String adminId;

            try
            {
                merchantRecordId = Convert.ToInt32(hMerchantRecordId.Value);
                adminId = Context.User.Identity.GetUserId();

                using (ApplicationDbContext ctx = new ApplicationDbContext())
                {
                    editMerchant = ctx.Merchants.First(m => m.RecordId == merchantRecordId);

                    underwritingResult = ctx.UnderwritingResults.Where(ur => ur.Merchant.RecordId == merchantRecordId && ur.Active == true).First();

                    underwritingResult.CorpInfoResult = Convert.ToInt16(rblUWCorpInfoVerifiedResult.SelectedValue);
                    underwritingResult.CorpInfoNotes = txtUWCorpInfoVerifiedNotes.Text;

                    underwritingResult.BusLicStatusResult = Convert.ToInt16(rblUWBusLicStatusResult.SelectedValue);
                    underwritingResult.BusLicStatusNotes = txtUWBUsLicStatusVerifiedNotes.Text;

                    underwritingResult.EINResult = Convert.ToInt16(rblUWEINVerifiedResult.SelectedValue);
                    underwritingResult.EINNotes = txtUWEINVerifiedNotes.Text;

                    underwritingResult.PrincipalResult = Convert.ToInt16(rblUWPrincipalVerifiedResult.SelectedValue);
                    underwritingResult.PrincipalNotes = txtUWPrincipalVerifiedNotes.Text;

                    underwritingResult.CardSalesIndicatorResult = Convert.ToInt16(rblUWCardSalesIndicatorsVerifiedResult.SelectedValue);
                    underwritingResult.CardSalesIndicatorNotes = txtUWCardSalesIndicatorsVerifiedNotes.Text;

                    underwritingResult.BankingInfoResult = Convert.ToInt16(rblUWBankingInfoVerifiedResult.SelectedValue);
                    underwritingResult.BankingInfoNotes = txtUWBankingInfoVerifiedNotes.Text;

                    underwritingResult.MCCResult = Convert.ToInt16(rblUWMCCVerifiedResult.SelectedValue);
                    underwritingResult.MCCNotes = txtUWMCCVerifiedNotes.Text;

                    underwritingResult.BVIResult = Convert.ToInt16(rblUWBVIVerifiedResult.SelectedValue);
                    underwritingResult.BVINotes = txtUWBVIVerifiedNotes.Text;

                    underwritingResult.TaxLiensResult = Convert.ToInt16(rblUWTaxLiensVerifiedResult.SelectedValue);
                    underwritingResult.TaxLiensNotes = txtUWTaxLiensVerifiedNotes.Text;

                    underwritingResult.RiskIndicatorResult = Convert.ToInt16(rblUWRiskIndicatorVerifiedResult.SelectedValue);
                    underwritingResult.RiskIndicatorNotes = txtUWRiskIndicatorVerifiedNotes.Text;

                    underwritingResult.OFACMatchResult = Convert.ToInt16(rblUWOFACMatchVerifiedResult.SelectedValue);
                    underwritingResult.OFACMatchNotes = txtUWOFACMatchVerifiedNotes.Text;

                    if (underwritingResult.CorpInfoResult == 1
                        && underwritingResult.BusLicStatusResult == 1
                        && underwritingResult.EINResult == 1
                        && underwritingResult.PrincipalResult == 1
                        && underwritingResult.CardSalesIndicatorResult == 1
                        && underwritingResult.BankingInfoResult == 1
                        && underwritingResult.MCCResult == 1
                        && underwritingResult.BVIResult == 1
                        && underwritingResult.TaxLiensResult == 1
                        && underwritingResult.RiskIndicatorResult == 1
                        && underwritingResult.OFACMatchResult == 1
                        )
                    {
                        underwritingResult.UnderwritingDecision = "Pass";
                        editMerchant.UnderwritingStatus = ctx.UnderwritingStatuses.First(us => us.StatusDescription == "Approved");
                    }
                    else
                    {
                        underwritingResult.UnderwritingDecision = "Fail";
                        editMerchant.UnderwritingStatus = ctx.UnderwritingStatuses.First(us => us.StatusDescription == "Denied");

                        if (editMerchant.MerchantStatus.StatusDescription == "Enrolled")
                        {
                            editMerchant.MerchantStatus = ctx.MerchantStatuses.First(ms => ms.StatusDescription == "Denied");
                            editMerchant.DenialNotes = "Underwriting Decline.  See Underwriting Results for more information.";
                            editMerchant.DeniedBy = ctx.Users.First(u => u.Id == adminId);
                            editMerchant.DeniedDate = DateTime.UtcNow;
                            editMerchant.ApprovedAdvanceAmount = 0;
                            editMerchant.AvailableAdvanceAmount = 0;

                            //Send Email
                            Logic.Messaging messaging = new Logic.Messaging();
                            Boolean emailSent = false;
                            var template = messaging.GetTemplate("DeniedEnrollment");

                            if (template != null)
                            {
                                String html = messaging.GetTemplateHtml(template);

                                foreach (EmailTemplateVariableModel variable in messaging.GetRequiredVariables(template))
                                {
                                    if (editMerchant.MerchantPrincipal != null && editMerchant.MerchantPrincipal.Contact != null)
                                    {
                                        if (variable.VariableName == "MERCHANT_FIRST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.MerchantPrincipal.Contact.FirstName);
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.MerchantPrincipal.Contact.FirstName);
                                        }
                                        if (variable.VariableName == "MERCHANT_LAST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.MerchantPrincipal.Contact.LastName);
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.MerchantPrincipal.Contact.LastName);
                                        }
                                    }
                                    else
                                    {
                                        if (variable.VariableName == "MERCHANT_FIRST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_LAST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                    }
                                    if (variable.VariableName == "MERCHANT_NAME")
                                    {
                                        html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.CorpName);
                                        html = html.Replace("<$" + variable.VariableName + ">", editMerchant.CorpName);
                                    }
                                    if (editMerchant.Business.Address != null)
                                    {
                                        if (variable.VariableName == "MERCHANT_ADDRESS")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.Address ?? "");
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.Address ?? "");
                                        }
                                        if (variable.VariableName == "MERCHANT_CITY")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.City ?? "");
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.City ?? "");
                                        }
                                        if (variable.VariableName == "MERCHANT_ZIP")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.Zip ?? "");
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.Zip ?? "");
                                        }
                                        if (editMerchant.Business.Address.State != null)
                                        {
                                            if (variable.VariableName == "MERCHANT_STATE")
                                            {
                                                html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.State.Name ?? "");
                                                html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.State.Name ?? "");
                                            }
                                        }
                                        else
                                        {
                                            if (variable.VariableName == "MERCHANT_STATE")
                                            {
                                                html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                                html = html.Replace("<$" + variable.VariableName + ">", "");
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (variable.VariableName == "MERCHANT_ADDRESS")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_CITY")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_STATE")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_ZIP")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                    }
                                    if (variable.VariableName == "DENY_NOTES")
                                    {
                                        html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.DenialNotes);
                                        html = html.Replace("<$" + variable.VariableName + ">", editMerchant.DenialNotes);
                                    }
                                }

                                if (ctx.Users.Any(u => u.Merchant.RecordId == editMerchant.RecordId))
                                {
                                    IQueryable<ApplicationUser> userList = ctx.Users.Where(u => u.Merchant.RecordId == editMerchant.RecordId);

                                    if (userList != null)
                                    {
                                        foreach (ApplicationUser thisUser in userList)
                                        {
                                            if (html != null)
                                            {
                                                emailSent = messaging.SendEmail(thisUser.Email, template.EmailSubject, html, template, editMerchant, thisUser);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            editMerchant.MerchantStatus = ctx.MerchantStatuses.First(ms => ms.StatusDescription == "Suspended");

                            MerchantSuspensionModel suspension = new MerchantSuspensionModel();

                            suspension.Merchant = ctx.Merchants.First(m => m.RecordId == editMerchant.RecordId);
                            suspension.OtherReasonNotes = "Failed Underwriting. See Undewriting Results for more information.";
                            suspension.SuspendedBy = ctx.Users.First(u => u.Id == adminId);
                            suspension.SuspensionReason = ctx.MerchantSuspensionReasons.First(msr => msr.ReasonName == "Failed Underwriting Result");
                            suspension.Timestamp = DateTime.UtcNow;

                            ctx.MerchantSuspensions.Add(suspension);

                            //Send Email
                            Logic.Messaging messaging = new Logic.Messaging();
                            Boolean emailSent = false;
                            var template = messaging.GetTemplate("MerchantSuspended");

                            String suspendNotes = "Failed Underwriting.  Contact Customer Service for more information.";

                            if (template != null)
                            {
                                String html = messaging.GetTemplateHtml(template);

                                foreach (EmailTemplateVariableModel variable in messaging.GetRequiredVariables(template))
                                {
                                    if (editMerchant.MerchantPrincipal != null && editMerchant.MerchantPrincipal.Contact != null)
                                    {
                                        if (variable.VariableName == "MERCHANT_FIRST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.MerchantPrincipal.Contact.FirstName);
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.MerchantPrincipal.Contact.FirstName);
                                        }
                                        if (variable.VariableName == "MERCHANT_LAST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.MerchantPrincipal.Contact.LastName);
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.MerchantPrincipal.Contact.LastName);
                                        }
                                    }
                                    else
                                    {
                                        if (variable.VariableName == "MERCHANT_FIRST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_LAST_NAME")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                    }
                                    if (variable.VariableName == "MERCHANT_NAME")
                                    {
                                        html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.CorpName);
                                        html = html.Replace("<$" + variable.VariableName + ">", editMerchant.CorpName);
                                    }
                                    if (editMerchant.Business.Address != null)
                                    {
                                        if (variable.VariableName == "MERCHANT_ADDRESS")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.Address ?? "");
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.Address ?? "");
                                        }
                                        if (variable.VariableName == "MERCHANT_CITY")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.City ?? "");
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.City ?? "");
                                        }
                                        if (variable.VariableName == "MERCHANT_ZIP")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.Zip ?? "");
                                            html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.Zip ?? "");
                                        }
                                        if (editMerchant.Business.Address.State != null)
                                        {
                                            if (variable.VariableName == "MERCHANT_STATE")
                                            {
                                                html = html.Replace("&lt;$" + variable.VariableName + "&gt;", editMerchant.Business.Address.State.Name ?? "");
                                                html = html.Replace("<$" + variable.VariableName + ">", editMerchant.Business.Address.State.Name ?? "");
                                            }
                                        }
                                        else
                                        {
                                            if (variable.VariableName == "MERCHANT_STATE")
                                            {
                                                html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                                html = html.Replace("<$" + variable.VariableName + ">", "");
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (variable.VariableName == "MERCHANT_ADDRESS")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_CITY")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_STATE")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                        if (variable.VariableName == "MERCHANT_ZIP")
                                        {
                                            html = html.Replace("&lt;$" + variable.VariableName + "&gt;", "");
                                            html = html.Replace("<$" + variable.VariableName + ">", "");
                                        }
                                    }
                                    if (variable.VariableName == "SUSPEND_NOTES")
                                    {
                                        html = html.Replace("&lt;$" + variable.VariableName + "&gt;", suspendNotes);
                                        html = html.Replace("<$" + variable.VariableName + ">", suspendNotes);
                                    }
                                }

                                if (ctx.Users.Any(u => u.Merchant.RecordId == editMerchant.RecordId))
                                {
                                    IQueryable<ApplicationUser> userList = ctx.Users.Where(u => u.Merchant.RecordId == editMerchant.RecordId);

                                    if (userList != null)
                                    {
                                        foreach (ApplicationUser thisUser in userList)
                                        {
                                            if (html != null)
                                            {
                                                emailSent = messaging.SendEmail(thisUser.Email, template.EmailSubject, html, template, editMerchant, thisUser);
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        ctx.SaveChanges();
                    }

                    ctx.SaveChanges();
                    UpdateStatusLabel();
                    gridUnderwritingHistory.Rebind();

                }

                pnlNewUnderwriting.Visible = false;
                pnlNewUnderwriting2.Visible = false;
                pnlUnderwritingHistory.Visible = true;
                pnlUnderwritingButtons.Visible = true;
                pnlUnderwritingAdvancedButtons.Visible = false;

                btnUnderwritingCancel.Visible = false;
                btnUnderwritingCancel2.Visible = false;
                btnUnderwritingTryAgain.Visible = false;
                btnUnderwritingComplete.Visible = false;
                btnUnderwritingSave.Visible = false;
                btnAddNewUnderwriting.Visible = true;
                btnUnderwritingContinue.Visible = false;

            }
            catch (System.Exception ex)
            {
                _newLogic.WriteExceptionToDB(ex, "btnUnderwritingComplete_Click");
            }
        }