public OrderLoanAndContactInfoViewModel LoadLoanAndContactInfo(int orderId) { var order = _orderManager.GetOrderById(orderId); CheckOrderAccessForClients(order); var viewModel = new OrderLoanAndContactInfoViewModel(order.LoanAndContactInfo); viewModel.IsCancelPopupNeeded = !IsOrderDraft(order); viewModel.OrderNumber = GetOrderNumber(order); return viewModel; }
public ActionResult LoanAndContactInfo(OrderLoanAndContactInfoViewModel viewModel, ContactInfoViewModel contactViewModel, int nextStep) { var nextTab = SafeConvert.ToEnum<OrderCreationWizardTabOrder>(nextStep).Value; if (ValidateContactsModel()) { var itemToValidate = contactViewModel.ListOfContact.SingleOrDefault(e => e.IsEditable); if (itemToValidate != null) { if (!contactViewModel.ListOfContact.Any(i => string.IsNullOrEmpty(i.Email) && string.IsNullOrEmpty(i.Phone))) { ViewBag.NotificationMessage = itemToValidate.IsNew ? Constants.Notifications.ContactSaved : Constants.Notifications.ContactUpdated; _orderService.SaveContactItem(itemToValidate, viewModel.OrderId); itemToValidate.IsEditable = false; CommitProviderInstance.Commit(); } else { if (!nextTab.Equals(OrderCreationWizardTabOrder.AppraisalInfo)) { contactViewModel.AlertMessage = Constants.ErrorMessages.OrderContactPhoneEmail; viewModel.ContactInfo = contactViewModel; TempData[_orderLoanAndContactInfoKey] = viewModel; return RedirectToStep(OrderCreationWizardTabOrder.LoanAndContactInfo, viewModel.OrderId); } } } } else { if (!nextTab.Equals(OrderCreationWizardTabOrder.AppraisalInfo)) { viewModel.ContactInfo.ListOfContact = contactViewModel.ListOfContact; TempData[_orderLoanAndContactInfoKey] = viewModel; return RedirectToStep(OrderCreationWizardTabOrder.LoanAndContactInfo, viewModel.OrderId); } } if (nextStep <= (int)OrderCreationWizardTabOrder.LoanAndContactInfo || (ModelState.IsValid && contactViewModel.ListOfContact.Any())) { _orderService.SaveLoanAndContactInfo(viewModel); bool isSavePressed = IsSavePressed(nextTab, OrderCreationWizardTabOrder.LoanAndContactInfo); SetLastCompletedStepAndStatus(OrderCreationWizardTabOrder.LoanAndContactInfo, nextStep, viewModel.OrderId, isSavePressed); CommitProviderInstance.Commit(); return isSavePressed ? RedirectToClientPipeline() : RedirectToStep(nextTab, viewModel.OrderId); } else { if (!contactViewModel.ListOfContact.Any()) { viewModel.ContactInfo.AlertMessage = Constants.ErrorMessages.OrderLaonAndContactEmptyContacts; } viewModel.ContactInfo.ListOfContact = contactViewModel.ListOfContact; TempData[_orderLoanAndContactInfoKey] = viewModel; return RedirectToStep(OrderCreationWizardTabOrder.LoanAndContactInfo, viewModel.OrderId); } }
public void SaveLoanAndContactInfo(OrderLoanAndContactInfoViewModel viewModel) { var order = _orderManager.GetOrderById(viewModel.OrderId); CheckOrderAccessForClients(order); var orderLoanAndContactInfo = order.LoanAndContactInfo; order.LoanAndContactInfo = orderLoanAndContactInfo; orderLoanAndContactInfo.LoanPurposeTypeId = viewModel.LoanPurpose == 0 ? null : viewModel.LoanPurpose; orderLoanAndContactInfo.PurchasePrice = viewModel.PurchasePrice; orderLoanAndContactInfo.Instructions.Clear(); if (viewModel.Instructions != null) { foreach (var instructionId in viewModel.Instructions) { orderLoanAndContactInfo.Instructions.Add(_orderManager.GetSpecialInstructionAndRequirementById(instructionId)); } } if (orderLoanAndContactInfo.PurchaseContractFileGuid != viewModel.ContactFileId) { if (orderLoanAndContactInfo.PurchaseContractFileGuid.HasValue) { var docInfo = _orderDocumentsRepository.Get(di => di.FileId == orderLoanAndContactInfo.PurchaseContractFileGuid).FirstOrDefault(); _orderDocumentsRepository.Delete(docInfo); _documentService.DeleteDocument(orderLoanAndContactInfo.PurchaseContractFileGuid.Value); } orderLoanAndContactInfo.PurchaseContractFileGuid = viewModel.ContactFileId; if (viewModel.ContactFileId.HasValue) { OrderDocumentInfo orderDocumentInfo = new OrderDocumentInfo() { DocumentTypeId = (int)DocumentType.PurchaseContract, FileId = viewModel.ContactFileId, UserType = DocumentUserType.Lender, OrderId = viewModel.OrderId }; _orderDocumentsRepository.Add(orderDocumentInfo); } } }