/// <summary> /// Retrieve Email details for selected email /// </summary> /// <param name="emailId"></param> /// <returns></returns> public ActionResult ShowEmailDetails(String emailId) { UserAccount loggedUser = null; if (HttpContext != null && HttpContext.Session != null && HttpContext.Session[SessionHelper.UserData] != null) { loggedUser = ( UserAccount )HttpContext.Session[SessionHelper.UserData]; } else { // TODO: Handle if user don't have priviledges to see this log throw new UnauthorizedAccessException("User is not authorized to access this method!"); } Int32 mailId = 0; if (emailId != null) { Int32.TryParse(emailId, out mailId); } if (mailId == 0) { throw new ArgumentNullException("Email Id is not correct!"); } var email = ContactServiceFacade.RetrieveSentEmailItem(mailId, loggedUser.UserAccountId); ViewBag.IsWhatIfRateOption = email.IsWhatIfRateOption.GetValueOrDefault() ? "WhatIfRateOption" : "EmailRateOption"; ViewBag.EmailHeader = email.DateCreated.ToString("ddd, dd MMM yyyy hh':'mm':'ss tt"); ViewBag.EmailContent = email.HtmlContent; return(PartialView("_emaildetails")); }
public ActionResult UpdateRateOptionsNote(SentEmailItem data) { //var messageModelReload = new AppraisalConfirmationMessage(); //var messageModel = new ErrorMessage(); UserAccount loggedUser = null; try { if (HttpContext != null && HttpContext.Session != null && HttpContext.Session[SessionHelper.UserData] != null) { loggedUser = ( UserAccount )HttpContext.Session[SessionHelper.UserData]; } else { // TODO: Handle if user don't have priviledges to see this log throw new UnauthorizedAccessException("User is not authorized to access this method!"); } ContactServiceFacade.UpdateSentEmailItemNote(data, loggedUser.UserAccountId); } catch (Exception exception) { TraceHelper.Error(TraceCategory.OrderAppraisal, "Failed to save appraisal order", exception); } return(Json(true)); }
public Boolean ManageProspectsSave(ManageProspectsViewModel manageProspectsViewModel) { var user = AccountHelper.GetUserAccount(HttpContext); Int32 status = 0; Int32 concierge = 0; Int32 callCenter = 0; Int32 loa = 0; if (!String.IsNullOrEmpty(manageProspectsViewModel.SelectedCallCenter)) { Int32.TryParse(manageProspectsViewModel.SelectedCallCenter, out callCenter); } if (!String.IsNullOrEmpty(manageProspectsViewModel.SelectedLoa)) { Int32.TryParse(manageProspectsViewModel.SelectedLoa, out loa); } if (!String.IsNullOrEmpty(manageProspectsViewModel.SelectedStatus)) { Int32.TryParse(manageProspectsViewModel.SelectedStatus, out status); } if (!String.IsNullOrEmpty(manageProspectsViewModel.SelectedConcierge)) { Int32.TryParse(manageProspectsViewModel.SelectedConcierge, out concierge); } Guid companyId = Guid.Empty; if (!String.IsNullOrEmpty(manageProspectsViewModel.CompanyId)) { Guid.TryParse(manageProspectsViewModel.CompanyId, out companyId); } var updated = ContactServiceFacade.UpdateContactProspect( manageProspectsViewModel.ProspectId, status, concierge, user.UserAccountId, companyId, manageProspectsViewModel.ChannelId, manageProspectsViewModel.DivisionId, manageProspectsViewModel.BranchId, callCenter, loa); if (manageProspectsViewModel.LoanId == Guid.Empty) { return(updated); } bool isSubmited = LoanServiceFacade.AssignOfficersToLoan(manageProspectsViewModel.LoanId, companyId, manageProspectsViewModel.ChannelId, manageProspectsViewModel.DivisionId, manageProspectsViewModel.BranchId, concierge, callCenter, loa); if (!isSubmited) { return(false); } ActivitiesServiceFacade.ExecuteActivityRulesConcierge( ActivitiesServiceFacade.RetrieveActivity(manageProspectsViewModel.LoanId, ActivityType.CompleteLoanApplication, user.UserAccountId).Id, ActivityStatus.Completed, ActivityMode.None, false, ActionIntent.LoanNoAndConciergeAssigned, user.Party.Id, user.UserAccountId); return(true); }
public void Execute() { UserAccount user = null; if (_httpContext.Session[SessionHelper.UserData] != null && ((UserAccount)_httpContext.Session[SessionHelper.UserData]).Username == _httpContext.User.Identity.Name) { user = (UserAccount)_httpContext.Session[SessionHelper.UserData]; } else { user = UserAccountServiceFacade.GetUserByName(_httpContext.User.Identity.Name); } if (user == null) { throw new InvalidOperationException("User is null"); } /* parameter processing */ Int32 contactId = 0; if (!InputParameters.ContainsKey("ContactId")) { throw new ArgumentException("ContactId was expected!"); } else { contactId = Convert.ToInt32(InputParameters["ContactId"]); } Int32 newOwnerAccountId; if (!InputParameters.ContainsKey("NewOwnerAccountId")) { throw new ArgumentException("NewOwnerAccountId was expected!"); } else { newOwnerAccountId = Convert.ToInt32(InputParameters["NewOwnerAccountId"]); } /* Command processing */ var result = ContactServiceFacade.UpdateContactOwner(contactId, newOwnerAccountId, user.UserAccountId); if (result == true) { _viewName = string.Empty; _viewModel = null; } else { // return Error View? throw new ApplicationException("Prospect owner was not updated"); } }
private void LoadLeadSourceInformation(AppraisalViewModel userAppraisalViewModel, Guid loanId, Int32 prospectId, UserAccount user) { userAppraisalViewModel.TitleInformation = ConciergeWorkQueueServiceFacade.ExecuteSPGetBorrowerData("GetBorrowerData", loanId, user.UserAccountId); var leadSourceInformation = ContactServiceFacade.RetrieveLeadSourceByContactIdAndLoanId(prospectId, loanId, user.UserAccountId); if (leadSourceInformation != null) { userAppraisalViewModel.LeadSourceInformation = leadSourceInformation.LeadSourceId + " " + leadSourceInformation.Description; } }
public ActionResult ChangeProspectLO(int contactId, int newOwnerAccountId, string lid) { try { UserAccount loggedUser = null; if (HttpContext != null && HttpContext.Session != null && HttpContext.Session[SessionHelper.UserData] != null) { loggedUser = ( UserAccount )HttpContext.Session[SessionHelper.UserData]; } else { // TODO: Handle if user don't have priviledges to see this log throw new UnauthorizedAccessException("User is not authorized to access this method!"); } var licenseExpiredClass = "notdisplayed"; var licenseExpiredMessage = String.Empty; var updated = ContactServiceFacade.UpdateContactOwner(contactId, newOwnerAccountId, loggedUser.UserAccountId); if (!updated || newOwnerAccountId == 0 || !WebCommonHelper.LicensingEnabled()) { return(Json(new { LicenseExpiredClass = licenseExpiredClass, LicenseExpiredMessage = licenseExpiredMessage }, JsonRequestBehavior.AllowGet)); } Guid loanId; Guid.TryParse(lid, out loanId); // Check if concierge/branch is licensed var isUserStateLicensedForLoan = UserAccountServiceFacade.IsUserStateLicensedForLoan(newOwnerAccountId, loanId, contactId); licenseExpiredMessage = LicenseHelper.ConfigureLicenseExpiredMessage(licenseExpiredMessage, isUserStateLicensedForLoan); if (!String.IsNullOrEmpty(licenseExpiredMessage)) { licenseExpiredClass = "licenseExpiredNotification"; } return(Json(new { LicenseExpiredClass = licenseExpiredClass, LicenseExpiredMessage = licenseExpiredMessage }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { TraceHelper.Error(TraceCategory.Global, "LoanController::ChangeProspectLO", ex); return(Json(null, JsonRequestBehavior.AllowGet)); } }
public void Execute() { UserAccount user = null; if (_httpContext.Session[SessionHelper.UserData] != null && ((UserAccount)_httpContext.Session[SessionHelper.UserData]).Username == _httpContext.User.Identity.Name) { user = (UserAccount)_httpContext.Session[SessionHelper.UserData]; } else { user = UserAccountServiceFacade.GetUserByName(_httpContext.User.Identity.Name); } if (user == null) { throw new InvalidOperationException("User is null"); } /* parameter processing */ Int32 contactId = 0; if (!InputParameters.ContainsKey("ContactId")) { throw new ArgumentException("ContactId was expected!"); } else { contactId = Convert.ToInt32(InputParameters["ContactId"]); } /* Command processing */ var result = ContactServiceFacade.RetrieveContactView(contactId, user.UserAccountId); if (result != null) { _viewName = "_sourceofbusinesstooltip"; _viewModel = result; } else { _viewName = string.Empty; _viewModel = null; } }
// // GET: /OpenRateOptionNotesPopupCommand/ /* * public ActionResult Index() * { * return View(); * } */ public override void Execute() { base.Execute(); try { var emailId = 0; if (InputParameters.ContainsKey("SentMailId")) { Int32.TryParse(InputParameters["SentMailId"].ToString().TrimEnd(), out emailId); } if (emailId == 0) { throw new InvalidOperationException("Missing sent email Id!"); } RateOptionViewModel model = new RateOptionViewModel(); SentEmailItem bussinesContactViewModel = ContactServiceFacade.RetrieveSentEmailItemNote(emailId, base.User.UserAccountId); if (bussinesContactViewModel != null) { model.SentEmailNote = bussinesContactViewModel.Notes; model.SentEmailIdCurrent = emailId; } ViewName = "Commands/_rateOptionsNotePopup"; ViewData = model; } catch (Exception ex) { TraceHelper.Error(TraceCategory.LoanCenter, "There is some issues in method OpenBusinessContactPopupCommand.Execute(): " + ex.Message, ex); throw; } }
private void RetrieveContacts(List <int> newUserAccountIds, String searchValue) { ContactListState contactListState = null; if ((base.HttpContext != null) && (base.HttpContext.Session[SessionHelper.ContactListState] != null)) { contactListState = ( ContactListState )base.HttpContext.Session[SessionHelper.ContactListState]; } else { contactListState = new ContactListState(); } // reset page to 1st on user change FilterViewModel userFilterViewModel = null; if ((base.HttpContext != null) && (base.HttpContext.Session[SessionHelper.FilterViewModel] != null)) { userFilterViewModel = new FilterViewModel().FromXml(base.HttpContext.Session[SessionHelper.FilterViewModel].ToString()); userFilterViewModel.FilterContext = FilterContextEnum.Contact; } else { // possible state retrieval? userFilterViewModel = new FilterViewModel(); userFilterViewModel.FilterContext = FilterContextEnum.Contact; } contactListState.CurrentPage = 1; UserAccount user; if (base.HttpContext.Session[SessionHelper.UserData] != null && (( UserAccount )base.HttpContext.Session[SessionHelper.UserData]).Username == base.HttpContext.User.Identity.Name) { user = ( UserAccount )base.HttpContext.Session[SessionHelper.UserData]; } else { user = UserAccountServiceFacade.GetUserByName(base.HttpContext.User.Identity.Name); } if (user == null) { throw new InvalidOperationException("User is null"); } var contactViewData = ContactServiceFacade.RetrieveContactsView(newUserAccountIds, contactListState.BoundDate, contactListState.CurrentPage, EnumHelper.GetStringValue(contactListState.SortColumn), contactListState.SortDirection, user.UserAccountId, searchValue, contactListState.ContactStatusFilter, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, contactListState.LoanPurposeFilter, userFilterViewModel.BranchId, contactListState.ConciergeFilter ); ContactViewModel contactViewModel = new ContactViewModel(); if (contactViewData != null) { contactViewModel.Contacts = contactViewData.ContactsItems; contactViewModel.PageCount = contactViewData.TotalPages; contactViewModel.TotalItems = contactViewData.TotalItems; ContactGridHelper.ApplyClassCollection(contactViewModel); ContactGridHelper.ProcessPagingOptions(contactListState, contactViewModel); } contactViewModel.ProspectLOConciergeList = ContactViewModelHelper.PopulateProspectLoanOfficers(userFilterViewModel, base.HttpContext); // populate prospect statuses ContactViewModelHelper.PopulateProspectStatuses(contactViewModel); contactViewModel.ProspectStatusList = ContactViewModelHelper.PopulateProspectStatusList(contactViewModel); contactViewModel.LoanPurposeList = new List <LoanTransactionType>(Enum.GetValues(typeof(LoanTransactionType)).Cast <LoanTransactionType>().Skip(1)); ContactDataHelper contactDataHelper = new ContactDataHelper(); contactDataHelper.PopulateConciergeFilterList(contactListState, base.HttpContext, contactViewModel); base.ViewName = "Queues/_contact"; base.ViewData = contactViewModel; /* Persist new state */ base.HttpContext.Session[SessionHelper.ContactViewModel] = contactViewModel.ToXml(); base.HttpContext.Session[SessionHelper.ContactListState] = contactListState; base.HttpContext.Session[SessionHelper.FilterViewModel] = userFilterViewModel.ToXml(); }
public void Execute() { String searchValue = CommonHelper.GetSearchValue(_httpContext); ContactListState contactListState; if ((_httpContext != null) && (_httpContext.Session[SessionHelper.ContactListState] != null)) { contactListState = ( ContactListState )_httpContext.Session[SessionHelper.ContactListState]; } else { contactListState = new ContactListState(); } FilterViewModel userFilterViewModel; if ((_httpContext != null) && (_httpContext.Session[SessionHelper.FilterViewModel] != null)) { userFilterViewModel = new FilterViewModel().FromXml(_httpContext.Session[SessionHelper.FilterViewModel].ToString()); userFilterViewModel.FilterContext = FilterContextEnum.Contact; } else { // possible state retrieval? userFilterViewModel = new FilterViewModel { FilterContext = FilterContextEnum.Contact }; } Boolean refresh = InputParameters != null && InputParameters.ContainsKey("Refresh") && InputParameters["Refresh"].ToString().Trim() == "true"; // reset Page Number to 1st on Tab change if (!refresh) { contactListState.CurrentPage = 1; } UserAccount user = null; if (_httpContext.Session[SessionHelper.UserData] != null) { user = ( UserAccount )_httpContext.Session[SessionHelper.UserData]; } else { throw new InvalidOperationException("UserData is null"); } var isCallCenter = false; var userAccountIds = new List <Int32>(); if (user.Roles != null) { var filteredRoles = user.Roles.Where( r => r.RoleName.Equals(RoleName.LoanProcessor) || r.RoleName.Equals(RoleName.Concierge) || r.RoleName.Equals(RoleName.LoanOfficerAssistant) || r.RoleName.Equals(RoleName.Administrator) ).OrderBy(r => r.RolePriority); if (filteredRoles != null && filteredRoles.FirstOrDefault() != null) { var topPriorityRole = filteredRoles.FirstOrDefault().RoleName; isCallCenter = topPriorityRole.Equals(RoleName.LoanProcessor); } } if (isCallCenter) { userAccountIds.Add(user.UserAccountId); } else { if (_httpContext.Session[SessionHelper.UserAccountIds] != null) { userAccountIds = (List <int>)_httpContext.Session[SessionHelper.UserAccountIds]; } } var contactViewData = ContactServiceFacade.RetrieveContactsView(_httpContext.Session[SessionHelper.UserAccountIds] != null ? (List <int>)_httpContext.Session[SessionHelper.UserAccountIds] : new List <int> { }, contactListState.BoundDate, contactListState.CurrentPage, contactListState.SortColumn.GetStringValue(), contactListState.SortDirection, user.UserAccountId, searchValue, contactListState.ContactStatusFilter, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, contactListState.LoanPurposeFilter, userFilterViewModel.BranchId, contactListState.ConciergeFilter ); var contactViewModel = new ContactViewModel(); if (contactViewData != null) { contactViewModel.Contacts = contactViewData.ContactsItems; contactViewModel.PageCount = contactViewData.TotalPages; contactViewModel.TotalItems = contactViewData.TotalItems; ContactGridHelper.ApplyClassCollection(contactViewModel); ContactGridHelper.ProcessPagingOptions(contactListState, contactViewModel); } contactViewModel.ProspectLOConciergeList = ContactViewModelHelper.PopulateProspectLoanOfficers(userFilterViewModel, _httpContext); // populate prospect statuses ContactViewModelHelper.PopulateProspectStatuses(contactViewModel); contactViewModel.ProspectStatusList = ContactViewModelHelper.PopulateProspectStatusList(contactViewModel); contactViewModel.LoanPurposeList = new List <LoanTransactionType>(Enum.GetValues(typeof(LoanTransactionType)).Cast <LoanTransactionType>().Skip(1)); ContactDataHelper contactDataHelper = new ContactDataHelper(); contactDataHelper.PopulateConciergeFilterList(contactListState, _httpContext, contactViewModel); _viewName = "Queues/_contact"; _viewModel = contactViewModel; /* Persist new state */ _httpContext.Session[SessionHelper.ContactViewModel] = contactViewModel.ToXml(); _httpContext.Session[SessionHelper.ContactListState] = contactListState; _httpContext.Session[SessionHelper.FilterViewModel] = userFilterViewModel.ToXml(); _httpContext.Session[SessionHelper.CurrentTab] = LoanCenterTab.Prospect; }
public void Execute() { #region Check and convert input parameters if (!InputParameters.ContainsKey("LoanId")) { throw new ArgumentException("LoanId value was expected!"); } if (!InputParameters.ContainsKey("ProspectId")) { throw new ArgumentException("ProspectId value was expected!"); } var user = AccountHelper.GetUserAccount(HttpContext); if (user == null) { throw new InvalidOperationException("UserData is null"); } #endregion #region Update title information Guid loanId = Guid.Parse(InputParameters["LoanId"].ToString().TrimEnd()); Int32 prospectId = Int32.Parse(InputParameters["ProspectId"].ToString().TrimEnd()); BasicLoanData loan = LoanServiceFacade.RetrieveBasicLoanData(loanId, user.UserAccountId); ManageProspectsViewModel model = new ManageProspectsViewModel(); model.ProspectId = prospectId; model.LoanId = loanId; if (loan != null) { model.CompanyId = loan.CompanyId != Guid.Empty ? loan.CompanyId.ToString() : "0"; model.ChannelId = loan.ChannelId != null ? ( Int32 )loan.ChannelId : 0; model.DivisionId = loan.DivisionId != null ? ( Int32 )loan.DivisionId : 0; model.BranchId = loan.BranchId != Guid.Empty ? ( Guid )loan.BranchId : Guid.Empty; } else { Contact contactData = ContactServiceFacade.RetrieveContactByContactId(prospectId); if (contactData != null) { model.CompanyId = contactData.CompanyProfileId != Guid.Empty ? contactData.CompanyProfileId.ToString() : "0"; model.ChannelId = contactData.ChannelId != null ? ( Int32 )contactData.ChannelId : 0; model.DivisionId = contactData.DivisionId != null ? ( Int32 )contactData.DivisionId : 0; model.BranchId = contactData.BranchId != Guid.Empty ? ( Guid )contactData.BranchId : Guid.Empty; } } //var leadSource = ContactServiceFacade.RetrieveLeadSourceByContactIdAndLoanId( prospectId, loanId, user.UserAccountId ); //model.LeadSourceInformation = leadSource != null ? leadSource.LeadSourceId + " " + leadSource.Description : String.Empty; LeadSource hearAboutUs = LoanServiceFacade.RetrieveHearAboutUs(loanId); if (hearAboutUs != null) { if (hearAboutUs.AffinityGroup == Contracts.Affiliate.AffinityGroup.PartnersProfiles) { if (hearAboutUs.HBMId != null && hearAboutUs.HBMId != Guid.Empty) { model.HearAboutUs = hearAboutUs.LeadSourceId + " Realtor-HBM"; } else { model.HearAboutUs = hearAboutUs.LeadSourceId + " Realtor"; } } else { model.HearAboutUs = hearAboutUs.LeadSourceId + " " + hearAboutUs.Description; } } model.TitleInformation = ConciergeWorkQueueServiceFacade.ExecuteSPGetBorrowerData("GetBorrowerData", loanId, user.UserAccountId); #endregion #region Update emails var emailList = ContactServiceFacade.RetrieveSentEmailItems(prospectId, user.UserAccountId); if (emailList != null && emailList.Count > 0) { model.Emails = emailList; } #endregion #region Update Lists bool isLoa = false; if (user.Roles != null && user.Roles.Any(r => r.RoleName == RoleName.LoanOfficerAssistant && r.IsActive)) { isLoa = true; } LoadCompanies(model); LoadChannels(model); LoadDivisions(model); LoadBranches(model); LoadRelatedConciergeList(model, user, loan, loanId, null, isLoa); LoadRelatedLoaList(model, user, loan, loanId, null, isLoa); // Get Call Center/Loan Processor Officers var callCenterInfos = UserAccountServiceFacade.RetrieveCallCenterInfo(); if (callCenterInfos != null) { callCenterInfos = new Collection <CallCenterInfo>(callCenterInfos.OrderBy(l => l.CallCenterName).ToList()); callCenterInfos.Insert(0, new CallCenterInfo() { UserAccountId = 0, CallCenterName = "Select One" }); } model.CallCenterInfoList = new Collection <CallCenterInfo>(); model.CallCenterInfoList = callCenterInfos; #endregion #region Get Highest priority role if (user.Roles != null && user.Roles.Count() > 0) { var filteredRoles = user.Roles.OrderBy(r => r.RolePriority); if (filteredRoles != null && filteredRoles.FirstOrDefault() != null) { var topPriorityRole = filteredRoles.FirstOrDefault().RoleName; var retrievedProspectData = ContactServiceFacade.RetrieveContactProspect(prospectId); if (retrievedProspectData != null) { model.SelectedStatus = retrievedProspectData.Status.ToString(); model.SelectedConcierge = retrievedProspectData.Concierge.ToString(); model.SelectedLoa = retrievedProspectData.Loa.ToString(); if (model.CallCenterInfoList.FirstOrDefault(c => c.UserAccountId.Equals(retrievedProspectData.CallCenter)) != null) { model.SelectedCallCenter = model.CallCenterInfoList.FirstOrDefault(c => c.UserAccountId.Equals(retrievedProspectData.CallCenter)).UserAccountId.ToString(); } if (model.ConciergeInfoList.FirstOrDefault(c => c.UserAccountId.Equals(retrievedProspectData.Concierge)) != null) { model.NMLSNumber = model.ConciergeInfoList.FirstOrDefault(c => c.UserAccountId.Equals(retrievedProspectData.Concierge)).NMLSNumber; } } } } #endregion //TODO: Move this in Lookup model.Statuses = new Collection <KeyValuePair <String, String> >(); foreach (ContactStatus contactStatus in Enum.GetValues(typeof(ContactStatus))) { if (contactStatus != ContactStatus.None) { model.Statuses.Add(new KeyValuePair <String, String>((( int )contactStatus).ToString(), MML.Web.LoanCenter.Helpers.LoanCenterEnumHelper.ContactStatusToString(contactStatus))); } } model.Statuses = new Collection <KeyValuePair <String, String> >(model.Statuses.OrderBy(s => s.Value).ToList()); ViewName = "Commands/_manageprospects"; ViewData = model; if (HttpContext == null || HttpContext.Session == null) { throw new NullReferenceException("Session is empty!"); } HttpContext.Session[SessionHelper.ManageProspects] = model.ToXml(); }
/// <summary> /// Rate Options /// </summary> /// <param name="loanId"></param> /// <returns></returns> public ActionResult ShowRateOption(String loanId, String prospectId, bool builtInMode = false) { UserAccount loggedUser = null; int prospect; Int32.TryParse(prospectId, out prospect); Guid loan = Guid.Empty; if (HttpContext != null && HttpContext.Session != null && HttpContext.Session[SessionHelper.UserData] != null) { loggedUser = ( UserAccount )HttpContext.Session[SessionHelper.UserData]; } else { // TODO: Handle if user don't have priviledges to see this log throw new UnauthorizedAccessException("User is not authorized to access this method!"); } if (prospect == 0 && !loanId.IsNullEmptyOrSpaces()) { Guid.TryParse(loanId, out loan); if (loan != Guid.Empty) { Contact contact = ContactServiceFacade.GetContact(loan, 0); if (contact != null) { prospect = contact.ContactId; } } } RateOptionViewModel mainItem = new RateOptionViewModel(); mainItem.BuiltInMode = builtInMode; RateOptionItemViewModel rateOptionItem = null; List <SentEmailItem> emailList = ContactServiceFacade.RetrieveSentEmailItems(prospect, loggedUser.UserAccountId); if (emailList != null && emailList.Count > 0) { mainItem.RateOptionList = new List <RateOptionItemViewModel>(); foreach (SentEmailItem item in emailList) { rateOptionItem = new RateOptionItemViewModel(); rateOptionItem.ContactId = item.ContactId; rateOptionItem.DateCreated = item.DateCreated; rateOptionItem.DistributionList = item.EmailAddress; rateOptionItem.SentEmailId = item.Id; rateOptionItem.IsWhatIfRateOption = item.IsWhatIfRateOption; rateOptionItem.LoanAmount = item.LoanAmount; rateOptionItem.LTV = item.LTV; rateOptionItem.CLTV = item.CLTV; rateOptionItem.DebtToIncomeRatio = item.DebtToIncomeRatio; if (item.Products != null && item.Products.Count > 0 && item.Products.Count < 2) { rateOptionItem.Product = item.Products[0].ProductName; rateOptionItem.Rate = item.Products[0].Rate; rateOptionItem.Apr = item.Products[0].APR; rateOptionItem.Points = (item.Products[0].Points * ( double )item.LoanAmount) / 100; rateOptionItem.PointsPercents = item.Products[0].Points; } rateOptionItem.ReportRepositoryItemId = item.ReportRepositoryItemId; mainItem.RateOptionList.Add(rateOptionItem); } } ViewBag.Source = builtInMode; return(PartialView("Commands/_rateOption", mainItem)); }
public ConciergeCommandEmbedded OpenConciergeCommandEmbedded(string workQueueType, string action, Guid loanId, string prospectId, bool hideHeader) { var user = ( UserAccount )HttpContext.Session[SessionHelper.UserData]; if (action == "DefaultCommand") { if (loanId != Guid.Empty) { prospectId = String.Empty; } if (workQueueType == "Prospects") { if (loanId == Guid.Empty) { action = "Manage Prospects"; } else { action = "Manage Loan Application"; } } else { action = "Manage Loan Application"; } } String additionalInformation = ""; if (action == "Manage Disclosures") { var disclosureModel = LoanServiceFacade.RetrieveDisclosureModel(loanId, IdentityManager.GetUserAccountId()); additionalInformation = GeneralSettingsServiceFacade.RetrieveeSigningVendorIntegrationEnabled() && LoanServiceFacade.RetrieveeSigningEnabledForLoan(loanId) && disclosureModel == DisclosuresModel.eSign ? "eSigning Room" : ""; } Int32 tempuserAccount = 0; int userAccountId = LoanServiceFacade.RetrieveUserAccountIdByLoanId(loanId, user.UserAccountId); UserAccount userAccount = UserAccountServiceFacade.GetUserById(userAccountId); if (userAccount.IsTemporary) { tempuserAccount = userAccountId; } string conciergeUrl = GetConciergeUrl(new Guid(), workQueueType, action, loanId, prospectId, tempuserAccount); var titleInformation = ConciergeWorkQueueServiceFacade.ExecuteSPGetBorrowerData("GetBorrowerData", loanId, user.UserAccountId); if (userAccount.IsTemporary) { titleInformation = ""; } var leadSourceInformation = ContactServiceFacade.RetrieveLeadSourceByContactIdAndLoanId(-1, loanId, user.UserAccountId); var leadSourceInfo = String.Empty; if (leadSourceInformation != null) { if (leadSourceInformation.AffinityGroup == Contracts.Affiliate.AffinityGroup.PartnersProfiles) { if (leadSourceInformation.HBMId != null && leadSourceInformation.HBMId != Guid.Empty) { leadSourceInfo = leadSourceInformation.LeadSourceId + " Realtor HBM"; } else { leadSourceInfo = leadSourceInformation.LeadSourceId + " Realtor"; } } else { leadSourceInfo = leadSourceInformation.LeadSourceId + " " + leadSourceInformation.Description; } } string title = action; switch (title) { case "Manage Loan Application": title = "Loan Application"; break; case "Manage Loan": title = "Loan Details"; break; case "Manage Disclosures": title = "Disclosures"; break; case "Manage Documents": title = "Documents"; break; case "Manage Appraisal": title = "Appraisal"; break; case "Manage Activities": title = "Activities"; break; case "Manage Alerts": title = "Alerts"; break; case "Manage Credit": title = "Credit"; break; } if (userAccount.IsTemporary && title == "Loan Application") { title = "Create Account"; } return(new ConciergeCommandEmbedded() { Title = title, TitleInformation = titleInformation, ConciergeUrl = conciergeUrl, LeadSourceInformation = leadSourceInfo, AdditionalInformation = additionalInformation, HideHeader = hideHeader }); }
public void Execute() { var user = AccountHelper.GetUserAccount(HttpContext); if (user == null) { throw new InvalidOperationException("UserData is null"); } Guid loanId = Guid.Empty; if (!InputParameters.ContainsKey("LoanId")) { throw new ArgumentException("LoanId was expected!"); } else { Guid.TryParse(InputParameters["LoanId"].ToString(), out loanId); } LoanServicesViewModel loanServicesViewModel = new LoanServicesViewModel(); if (loanId != Guid.Empty) { // used for testing purposes only - REMOVE OTHERWISE //loanId = new Guid( "4DAE6B31-3DA8-42EB-BCAC-8F0D661646AB" ); // Get filters var filters = LoanServiceFacade.RetrieveLoanServiceFilters(loanId); if (filters == null) { filters = new LoanServiceFiltersContract(); } // If no product filters were returned init the array if (filters.Products == null) { filters.Products = new string[0]; } List <string> productFilters = new List <string>(filters.Products.OrderBy(x => x)); productFilters.Insert(0, "[None]"); filters.Products = productFilters.ToArray(); // If no vendor filters were returned init the array if (filters.Vendors == null) { filters.Vendors = new string[0]; } List <string> vendorFilters = new List <string>(filters.Vendors.OrderBy(x => x)); vendorFilters.Insert(0, "[None]"); filters.Vendors = vendorFilters.ToArray(); // If no status filters were returned init the array if (filters.Statuses == null) { filters.Statuses = new string[0]; } List <string> statusFilters = new List <string>(filters.Statuses.OrderBy(x => x)); statusFilters.Insert(0, "[None]"); filters.Statuses = statusFilters.ToArray(); loanServicesViewModel.AvailableFilters = filters; // Fetch the loan services themselves loanServicesViewModel.LoanServiceList = LoanServiceFacade.RetrieveLoanServices(loanId); } #region Update title information var leadSource = ContactServiceFacade.RetrieveLeadSourceByContactIdAndLoanId(-1, loanId, user.UserAccountId); loanServicesViewModel.LeadSourceInformation = leadSource != null ? leadSource.LeadSourceId + " " + leadSource.Description : String.Empty; loanServicesViewModel.TitleInformation = ConciergeWorkQueueServiceFacade.ExecuteSPGetBorrowerData("GetBorrowerData", loanId, user.UserAccountId); #endregion _viewName = "_loanservices"; _viewModel = loanServicesViewModel; // Rihad:This might be to big for keeping it in session: //_httpContext.Session[ SessionHelper.LoanServiceList ] = loanServicesViewModel.LoanServiceList.ToXml(); }
public static ContactViewModel RetrieveContactViewModel(ContactListState contactListState, List <Int32> userAccountIds, Int32 userId, HttpContextBase httpContext, string searchValue = "") { FilterViewModel userFilterViewModel = null; if ((httpContext != null) && (httpContext.Session[SessionHelper.FilterViewModel] != null)) { userFilterViewModel = new FilterViewModel().FromXml(httpContext.Session[SessionHelper.FilterViewModel].ToString()); } else { // possible state retrieval? userFilterViewModel = new FilterViewModel(); } var contactViewData = ContactServiceFacade.RetrieveContactsView(userAccountIds, contactListState.BoundDate, contactListState.CurrentPage, contactListState.SortColumn.GetStringValue(), contactListState.SortDirection, userId, searchValue, contactListState.ContactStatusFilter, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, contactListState.LoanPurposeFilter, userFilterViewModel.BranchId, contactListState.ConciergeFilter ); if (contactViewData == null) { contactViewData = new ContactViewData { ContactsItems = new List <ContactViewItem>(), TotalItems = 0, TotalPages = 0 }; } // Set paging numbers else if (userAccountIds.Any()) { contactViewData.TotalItems = contactViewData.TotalItems; contactViewData.TotalPages = contactViewData.TotalItems / 10; if ((contactViewData.TotalItems % 10) != 0) { contactViewData.TotalPages++; } } var contactViewModel = new ContactViewModel() { Contacts = contactViewData.ContactsItems, PageCount = contactViewData.TotalPages, TotalItems = contactViewData.TotalItems, ProspectLO = PopulateProspectLoanOfficers(httpContext), ProspectLOConciergeList = PopulateLoanOfficersForProspectDropdown(httpContext) }; ContactGridHelper.ProcessPagingOptions(contactListState, contactViewModel); ContactViewModelHelper.PopulateProspectStatuses(contactViewModel); ContactGridHelper.ApplyClassCollection(contactViewModel); contactViewModel.ProspectStatusList = ContactViewModelHelper.PopulateProspectStatusList(contactViewModel); contactViewModel.LoanPurposeList = new List <LoanTransactionType>(Enum.GetValues(typeof(LoanTransactionType)).Cast <LoanTransactionType>().Skip(1)); ContactDataHelper contactDataHelper = new ContactDataHelper(); contactDataHelper.PopulateConciergeFilterList(contactListState, httpContext, contactViewModel); return(contactViewModel); }
public void Execute() { String searchValue = CommonHelper.GetSearchValue(_httpContext); /* State retrieval */ ContactListState contactListState; if (_httpContext.Session[SessionHelper.ContactListState] != null) { contactListState = (ContactListState)_httpContext.Session[SessionHelper.ContactListState]; } else { contactListState = new ContactListState(); } UserAccount user; if (_httpContext.Session[SessionHelper.UserData] != null && ((UserAccount)_httpContext.Session[SessionHelper.UserData]).Username == _httpContext.User.Identity.Name) { user = (UserAccount)_httpContext.Session[SessionHelper.UserData]; } else { user = UserAccountServiceFacade.GetUserByName(_httpContext.User.Identity.Name); } if (user == null) { throw new InvalidOperationException("User is null"); } /* parameter processing */ Int32 newPageNumber; if (!InputParameters.ContainsKey("Page")) { throw new ArgumentException("Page number was expected!"); } else { newPageNumber = Convert.ToInt32(InputParameters["Page"]); } contactListState.CurrentPage = newPageNumber; /* Command processing */ FilterViewModel userFilterViewModel; if ((_httpContext != null) && (_httpContext.Session[SessionHelper.FilterViewModel] != null)) { userFilterViewModel = new FilterViewModel().FromXml(_httpContext.Session[SessionHelper.FilterViewModel].ToString()); userFilterViewModel.FilterContext = FilterContextEnum.Contact; } else { // possible state retrieval? userFilterViewModel = new FilterViewModel(); userFilterViewModel.FilterContext = FilterContextEnum.Contact; } var contactViewData = ContactServiceFacade.RetrieveContactsView(_httpContext.Session[SessionHelper.UserAccountIds] != null ? (List <int>)_httpContext.Session[SessionHelper.UserAccountIds] : new List <int> { }, contactListState.BoundDate, contactListState.CurrentPage, contactListState.SortColumn.GetStringValue(), contactListState.SortDirection, user.UserAccountId, searchValue, contactListState.ContactStatusFilter, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, contactListState.LoanPurposeFilter, userFilterViewModel.BranchId, contactListState.ConciergeFilter ); ContactViewModel contactViewModel = new ContactViewModel(); if (contactViewData != null) { contactViewModel.Contacts = contactViewData.ContactsItems; contactViewModel.PageCount = contactViewData.TotalPages; contactViewModel.TotalItems = contactViewData.TotalItems; ContactGridHelper.ApplyClassCollection(contactViewModel); ContactGridHelper.ProcessPagingOptions(contactListState, contactViewModel); } contactViewModel.ProspectLOConciergeList = ContactViewModelHelper.PopulateProspectLoanOfficers(userFilterViewModel, _httpContext); // populate prospect statuses ContactViewModelHelper.PopulateProspectStatuses(contactViewModel); contactViewModel.ProspectStatusList = ContactViewModelHelper.PopulateProspectStatusList(contactViewModel); contactViewModel.LoanPurposeList = new List <LoanTransactionType>(Enum.GetValues(typeof(LoanTransactionType)).Cast <LoanTransactionType>().Skip(1)); ContactDataHelper contactDataHelper = new ContactDataHelper(); contactDataHelper.PopulateConciergeFilterList(contactListState, _httpContext, contactViewModel); _viewName = "Queues/_contact"; _viewModel = contactViewModel; /* Persist new state */ _httpContext.Session[SessionHelper.ContactViewModel] = contactViewModel.ToXml(); _httpContext.Session[SessionHelper.ContactListState] = contactListState; _httpContext.Session[SessionHelper.FilterViewModel] = userFilterViewModel.ToXml(); _httpContext.Session[SessionHelper.CurrentTab] = LoanCenterTab.Prospect; }
private GetStarted StartNewProspect() { var user = AccountHelper.GetUserAccount(HttpContext); Int32 callCenterId = 0; if (user.Roles != null && user.Roles.OrderByDescending(r => r.RolePriority).FirstOrDefault() != null) { if (user.Roles.OrderByDescending(r => r.RolePriority).FirstOrDefault().RoleName.Equals(RoleName.LoanProcessor)) { callCenterId = user.UserAccountId; } } string message; Int32 createdUserAccountId; // Create account string username = "******" + DateTime.Now.ToString("MMddyyyyHmmss") + "@meandmyloan.com"; var newUserAccount = new UserAccount() { Username = username, DateCreated = DateTime.Now, IsActivated = false, IsLocked = false, IsTemporary = false, Password = String.Empty, PasswordHint = String.Empty, SecurityAnswer = String.Empty, SecurityQuestionId = 1, OpenedByLOorConcierge = true, CreationStatus = UserAccountCreationStatus.SystemGenerated, IsOnlineUser = true, // by default we create online user, this will be changed on CreateAccountLO page Party = new Party() { FirstName = "new", LastName = "prospect", SSN = "000-00-0000 ", MiddleName = String.Empty, CompanyName = String.Empty, EmailAddress = String.Empty, AlternateEmailAddress = String.Empty }, }; var hierarchy = new BrandingConfigurationHierarchy() { BranchId = user.BranchId == Guid.Empty ? null : ( Guid? )user.BranchId, ChannelId = user.ChannelId == 0 ? null : ( int? )user.ChannelId, DivisionId = user.DivisionId == 0 ? null : ( int? )user.DivisionId }; var brandingConfiguration = CompanyProfileServiceFacade.RetrieveBrandingConfigurationByHierarchy(hierarchy); if (UserAccountServiceFacade.CreateUserAccount(newUserAccount, false, out message, out createdUserAccountId, brandingConfiguration, createdByUserId: user.UserAccountId) == false) { throw new ApplicationException("Error creating new user account"); } if (createdUserAccountId < 0) { throw new ApplicationException("Error creating new user account"); } newUserAccount.UserAccountId = createdUserAccountId; // Create Contact var contact = new Contact { FirstName = "new", LastName = "prospect", UserAccount = newUserAccount, LoanId = null, OwnerAccountId = user.UserAccountId, IsInitialLead = true, }; if (brandingConfiguration != null) { contact.CompanyProfileId = brandingConfiguration.CompanyProfileId; contact.ChannelId = brandingConfiguration.ChannelId; contact.DivisionId = brandingConfiguration.DivisionId; contact.BranchId = brandingConfiguration.BranchId; } if (callCenterId != 0) { contact.CallCenterId = callCenterId; } var createdContact = ContactServiceFacade.CreateContact(contact); // Create impersonation token Guid token = MML.Common.Impersonation.ImpersonationToken.GetToken(); bool isInserted = ImpersonationTokenServiceFacade.InsertImpersonationToken(token, Guid.Empty, user.UserAccountId); if (isInserted) { GetStartedHelper getStartedHelper = new GetStartedHelper(); return(getStartedHelper.GetStarted(HttpContext, user, token, username, true, createdContact.ContactId, isTempUser: true)); } return(null); }
public void RefreshNumberOfRecordsInTabsAsync() { String searchValue = String.Empty; if (Session[SessionHelper.SearchTerm] != null) { searchValue = Session[SessionHelper.SearchTerm].ToString(); } UserAccount user = null; // Check if user is logged and put user data in session FilterViewModel userFilterViewModel = null; if ((Session[SessionHelper.FilterViewModel] != null)) { userFilterViewModel = new FilterViewModel().FromXml(Session[SessionHelper.FilterViewModel].ToString()); } else { userFilterViewModel = new FilterViewModel(); } AsyncManager.QueueAction(() => { if (Session["UserData"] != null && (( UserAccount )Session[SessionHelper.UserData]).Username == User.Identity.Name) { user = ( UserAccount )Session["UserData"]; } else { user = UserAccountServiceFacade.GetUserByName(User.Identity.Name); } if (user == null) { throw new InvalidOperationException("User is null"); } else { Session["UserData"] = user; } var userAccountIds = Session[SessionHelper.UserAccountIds] != null ? (List <int>)Session[SessionHelper.UserAccountIds] : new List <int> { }; var officerTaskListState = Session["OfficerTaskListState"] != null ? ( OfficerTaskListState )Session["OfficerTaskListState"] : new OfficerTaskListState(); var cancelListState = Session[SessionHelper.CancelListState] != null ? ( CancelLoanListState )Session[SessionHelper.CancelListState] : new CancelLoanListState(); var completedListState = Session[SessionHelper.CompletedLoansListState] != null ? ( CompletedLoansListState )Session[SessionHelper.CompletedLoansListState] : new CompletedLoansListState(); var contactListState = Session["ContactListState"] != null ? ( ContactListState )Session["ContactListState"] : new ContactListState(); var pipelineListState = Session["PipelineListState"] != null ? ( PipelineListState )Session["PipelineListState"] : new PipelineListState(); var pendingApprovalListState = Session[SessionHelper.PendingApprovalListState] != null ? ( PendingApprovalListState )Session[SessionHelper.PendingApprovalListState] : new PendingApprovalListState(); var newLoanApplicationListState = Session[SessionHelper.NewLoanApplicationListState] != null ? ( NewLoanApplicationListState )Session[SessionHelper.NewLoanApplicationListState] : new NewLoanApplicationListState(); var alertListState = Session[SessionHelper.AlertsListState] != null ? ( AlertsListState )Session[SessionHelper.AlertsListState] : new AlertsListState(); var completedLoansListState = Session[SessionHelper.CompletedLoansListState] != null ? ( CompletedLoansListState )Session[SessionHelper.CompletedLoansListState] : new CompletedLoansListState(); var preapprovalListState = Session[SessionHelper.PreApprovalListState] != null ? ( PreApprovalListState )Session[SessionHelper.PreApprovalListState] : new PreApprovalListState(); var cancelLoansListState = Session[SessionHelper.CancelListState] != null ? ( CancelLoanListState )Session[SessionHelper.CancelListState] : new CancelLoanListState(); var orderRequestedListState = Session[SessionHelper.OrderRequestedListState] != null ? ( OrderRequestedListState )Session[SessionHelper.OrderRequestedListState] : new OrderRequestedListState(); var orderProcessedListState = Session[SessionHelper.OrderProcessedListState] != null ? ( OrderProcessedListState )Session[SessionHelper.OrderProcessedListState] : new OrderProcessedListState(); var orderDeliveredForReviewListState = Session[SessionHelper.OrderDeliveredForReviewListState] != null ? ( OrderDeliveredForReviewListState )Session[SessionHelper.OrderDeliveredForReviewListState] : new OrderDeliveredForReviewListState(); var orderExceptionListState = Session[SessionHelper.OrderExceptionListState] != null ? ( OrderExceptionListState )Session[SessionHelper.OrderExceptionListState] : new OrderExceptionListState(); var mailRoomListState = Session[SessionHelper.MailRoomListState] != null ? ( MailRoomListState )Session[SessionHelper.MailRoomListState] : new MailRoomListState(); var dashboardRecordNumber = new LoanCenterDashboardNumberOfRecords(); var cancelledBorrowerStatusFilter = cancelListState.BorrowerStatusFilter == null ? null : cancelListState.BorrowerStatusFilter == BorrowerStatusType.Offline.GetStringValue() ? "0" : "1"; var completedBorrowerStatusFilter = completedListState.BorrowerStatusFilter == null ? null : completedListState.BorrowerStatusFilter == BorrowerStatusType.Offline.GetStringValue() ? "0" : "1"; var pipelineBorrowerStatusFilter = pipelineListState.BorrowerStatusFilter == null ? null : pipelineListState.BorrowerStatusFilter == BorrowerStatusType.Offline.GetStringValue() ? "0" : "1"; var newLoanApplicationBorrowerStatusFilter = String.IsNullOrEmpty(newLoanApplicationListState.BorrowerStatusFilter) ? String.Empty : newLoanApplicationListState.BorrowerStatusFilter == BorrowerStatusType.Offline.GetStringValue() ? "0" : "1"; try { dashboardRecordNumber = ContactServiceFacade.RetrieveDashboardNumberOfRecords( userAccountIds, officerTaskListState.BoundDate, contactListState.BoundDate, pipelineListState.BoundDate, pendingApprovalListState.ActivityType, newLoanApplicationListState.BoundDate, alertListState.BoundDate, completedLoansListState.BoundDate, cancelLoansListState.BoundDate, preapprovalListState.BoundDate, user.UserAccountId, searchValue, contactListState.ContactStatusFilter, alertListState.LoanPurposeFilter, completedBorrowerStatusFilter, cancelledBorrowerStatusFilter, pipelineListState.LoanPurposeFilter, pipelineListState.ActivityTypeFilter, pipelineBorrowerStatusFilter, alertListState.ActivityTypeFilter, orderRequestedListState.BoundDate, orderRequestedListState.NonConforming, orderRequestedListState.OrderType, orderRequestedListState.Rush, orderProcessedListState.BoundDate, orderProcessedListState.AppraisalOrderStatus, orderDeliveredForReviewListState.BoundDate, orderDeliveredForReviewListState.AppraisalOrderStatus, orderExceptionListState.BoundDate, orderExceptionListState.ExceptionType, userFilterViewModel.CompanyId, userFilterViewModel.ChannelId, userFilterViewModel.DivisionId, userFilterViewModel.BranchId, contactListState.LoanPurposeFilter, newLoanApplicationBorrowerStatusFilter, newLoanApplicationListState.LoanPurposeFilter, mailRoomListState.BoundDate, mailRoomListState.DocumentTypeFilter, contactListState.ConciergeFilter); } catch (Exception ex) { TraceHelper.Error(TraceCategory.Global, "Error in RefreshNumberOfRecordsInTabsAsync", ex); } if (dashboardRecordNumber != null) { AsyncManager.Parameters["numberOfRecords"] = new[] { dashboardRecordNumber.TotalNumberOfTasks, dashboardRecordNumber.TotalNumberOfContacts, dashboardRecordNumber.TotalNumberOfPipelineItems, dashboardRecordNumber.TotalNumberOfNewLoanApplicationItems, dashboardRecordNumber.TotalNumberOfPendingApprovalItems, dashboardRecordNumber.TotalNumberOfAlertItems, dashboardRecordNumber.TotalNumberOfCompletedLoansItems, dashboardRecordNumber.TotalNumberOfCancelLoansItems, dashboardRecordNumber.TotalNumberOfPreApprovalItems, dashboardRecordNumber.TotalNumberOfOrderRequestedItems, dashboardRecordNumber.TotalNumberOfOrderProcessedItems, dashboardRecordNumber.TotalNumberOfOrderDeliveredForReviewItems, dashboardRecordNumber.TotalNumberOfOrderExceptionItems, dashboardRecordNumber.TotalNumberOfMailRoomItems } } ; }); }