Exemple #1
0
		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);
			}
		}
Exemple #3
0
		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);
				}
			}
		}