public void banking_post_action_should_redirect_to_itself()
		{
			//arrange
			const string userEmail = "some email";
			var principal = Substitute.For<IPrincipal>();
			var identity = Substitute.For<IIdentity>();
			identity.Name.Returns(userEmail);
			principal.Identity.Returns(identity);
			var context = Substitute.For<HttpContextBase>();
			context.User.Returns(principal);
			var controllerContext = Substitute.For<ControllerContext>();
			controllerContext.HttpContext.Returns(context);
			var appraisalCompanyAdmin = new AppraiserUser { Company = new AppraisalCompanyDetail { Id = 123 } };
			AppraiserManagement.GetByEmail(userEmail).Returns(appraisalCompanyAdmin);
			var viewModel = new AppraisalCompanyBankingViewModel();
			Target.ControllerContext = controllerContext;

			AppraisalCompanyWizardService.GetAppraisalCompanyBanking(Arg.Any<int>()).Returns(new AppraisalCompanyBankingViewModel());
			//act
			var actionResult = Target.Banking(viewModel, null);
			//assert
			actionResult.Should().NotBeNull().And.BeOfType<RedirectToRouteResult>();
			((RedirectToRouteResult)actionResult).RouteValues.Should().HaveCount(1);
			((RedirectToRouteResult)actionResult).RouteValues["action"].Should().Be("Banking");
		}
		public void Proceed_action_should_redirect_to_profile_view()
		{
			const string userEmail = "some email";
			var principal = Substitute.For<IPrincipal>();
			var identity = Substitute.For<IIdentity>();
			identity.Name.Returns(userEmail);
			principal.Identity.Returns(identity);
			var context = Substitute.For<HttpContextBase>();
			context.User.Returns(principal);
			var controllerContext = Substitute.For<ControllerContext>();
			controllerContext.HttpContext.Returns(context);
			var appraisalCompanyAdmin = new AppraiserUser { Company = new AppraisalCompanyDetail { Id = 123 } };
			AppraiserManagement.GetByEmail(userEmail).Returns(appraisalCompanyAdmin);
			var viewModel = new AppraisalCompanyBankingViewModel();
			Target.ControllerContext = controllerContext;
			//act
			var actionResult = Target.Proceed();
			AppraisalCompanyWizardService.Received().SetActiveStatus(appraisalCompanyAdmin.Company.Id, userEmail);
			actionResult.Should().NotBeNull().And.BeOfType<RedirectToRouteResult>();
			((RedirectToRouteResult)actionResult).RouteValues.Should().HaveCount(3);
			((RedirectToRouteResult)actionResult).RouteValues["action"].Should().Be(NameHelper.AppraiserProfile.Index);
			((RedirectToRouteResult)actionResult).RouteValues["area"].Should().Be(NameHelper.AppraiserProfile.Area);
			((RedirectToRouteResult)actionResult).RouteValues["controller"].Should().Be(NameHelper.AppraiserProfile.Controller);
		}
		public void SaveAppraisalCompanyBanking_should_populate_fields_correctly()
		{
			var appraisalCompanyBanking = new AppraisalCompanyBankingViewModel()
			{
				AccountNumber = "accno",
				AccountType = Model.Enums.AccountType.Checking,
				BankAccount = "acc",
				BankAddress = new DVS.Logic.ViewModels.AddressViewModel()
				{
					City = "city",
					State = "AL",
					Street = "street",
					Street2 = "street2",
					ZIP = "zip"
				},
				BankingInstitution = "inst",
				RoutingNumber = "rno"
			};

			CryptographicProvider.EncryptString(appraisalCompanyBanking.AccountNumber).Returns(new CryptographicResult<string>(true, appraisalCompanyBanking.AccountNumber));
			CryptographicProvider.EncryptString(appraisalCompanyBanking.BankAccount).Returns(new CryptographicResult<string>(true, appraisalCompanyBanking.BankAccount));
			CryptographicProvider.EncryptString(appraisalCompanyBanking.BankingInstitution).Returns(new CryptographicResult<string>(true, appraisalCompanyBanking.BankingInstitution));
			CryptographicProvider.EncryptString(appraisalCompanyBanking.RoutingNumber).Returns(new CryptographicResult<string>(true, appraisalCompanyBanking.RoutingNumber));

			AppraisalCompanyDetail dbCompanyDetails = new AppraisalCompanyDetail() { Status = AppraisalCompanyStatus.Active };
			AppraisalCompanyManagement.GetAppraisalCompanyById(Arg.Any<int>()).Returns(dbCompanyDetails);
			//act
			Target.SaveAppraisalCompanyBanking(0, appraisalCompanyBanking);

			dbCompanyDetails.BankingDetails.Should().NotBeNull();
			dbCompanyDetails.BankingDetails.AccountNumber.Should().Be(appraisalCompanyBanking.AccountNumber);
			dbCompanyDetails.BankingDetails.AccountType.Should().Be(appraisalCompanyBanking.AccountType);
			dbCompanyDetails.BankingDetails.BankAccount.Should().Be(appraisalCompanyBanking.BankAccount);
			dbCompanyDetails.BankingDetails.BankingInstitution.Should().Be(appraisalCompanyBanking.BankingInstitution);
			dbCompanyDetails.BankingDetails.RoutingNumber.Should().Be(appraisalCompanyBanking.RoutingNumber);
			dbCompanyDetails.BankingDetails.BankAddress.City.Should().Be(appraisalCompanyBanking.BankAddress.City);
			dbCompanyDetails.BankingDetails.BankAddress.Street.Should().Be(appraisalCompanyBanking.BankAddress.Street);
			dbCompanyDetails.BankingDetails.BankAddress.Street2.Should().Be(appraisalCompanyBanking.BankAddress.Street2);
			dbCompanyDetails.BankingDetails.BankAddress.ZIP.Should().Be(appraisalCompanyBanking.BankAddress.ZIP);
			appraisalCompanyBanking.BankAddress.State.Should().Contain(dbCompanyDetails.BankingDetails.BankAddress.State);
		}
		public void banking_action_should_populate_account_number_with_old_value()
		{
			//arrange
			var oldModel= new AppraisalCompanyBankingViewModel { AccountNumber = "oldnumber" };
			var viewModel = new AppraisalCompanyBankingViewModel { AccountNumber = "newnumber" };
			var appraiserUser = new AppraiserUser
			{
				Company = new AppraisalCompanyDetail
				{
					Id = 1
				}
			};
			AppraisalCompanyProfileService.GetAppraisalCompanyBanking(Arg.Any<int>()).Returns(oldModel);

			var controllerContext = Substitute.For<ControllerContext>();
			controllerContext.HttpContext.User.Identity.Name.Returns(String.Empty);
			AppraiserManagement.GetByEmail(Arg.Any<string>()).Returns(appraiserUser);
			Target.ControllerContext = controllerContext;

			//act
			Target.Banking(viewModel, null);

			//assert			
			AppraisalCompanyProfileService.Received().SaveAppraisalCompanyBanking(1, Arg.Is<AppraisalCompanyBankingViewModel>(b => b.AccountNumber==oldModel.AccountNumber));		
		}
		public ActionResult Banking(int id, AppraisalCompanyBankingViewModel appraisalCompanyBanking, int? nextStep)
		{
			var oldCompanyBanking = _appraisalCompanyWizardService.GetAppraisalCompanyBanking(id);
			appraisalCompanyBanking.AccountNumber = oldCompanyBanking.AccountNumber;

			_appraisalCompanyWizardService.SaveAppraisalCompanyBanking(id, appraisalCompanyBanking);
			CommitProviderInstance.Commit();
			return RedirectToStep(id, nextStep ?? (int)TabSteps.Banking);
		}
		private ActionResult GetBankingView(AppraisalCompanyBankingViewModel appraisalCompanyBanking)
		{
			ViewBag.CurrentStep = (int)TabSteps.Banking;
			return View(NameHelper.AppraisalCompanyDetails.Banking, appraisalCompanyBanking);
		}
		public ActionResult Banking(AppraisalCompanyBankingViewModel appraisalCompanyBanking, int? nextStep)
		{
			int appraisalCompanyId = GetAppraisalCompanyId();
			var oldCompanyBanking = _appraisalCompanyWizardService.GetAppraisalCompanyBanking(appraisalCompanyId);
			appraisalCompanyBanking.AccountNumber = oldCompanyBanking.AccountNumber;

			_appraisalCompanyWizardService.SaveAppraisalCompanyBanking(appraisalCompanyId, appraisalCompanyBanking);
			CommitProviderInstance.Commit();
			return RedirectToStep(nextStep);
		}
		public ActionResult ApplyAccountNumber(int id, AppraisalCompanyBankingViewModel appraisalCompanyBanking)
		{
			if (ModelState.IsValid)
			{
				_appraisalCompanyWizardService.SaveAppraisalCompanyBanking(id, appraisalCompanyBanking);
				CommitProviderInstance.Commit();
				TempData[_bankingNotificationMessageKey] = true;
			}
			TempData[AppraisalCompanyBankingKey] = appraisalCompanyBanking;
			return RedirectToStep(id, (int)TabSteps.Banking);
		}
		private ActionResult GetBankingView(AppraisalCompanyBankingViewModel appraisalCompanyBanking)
		{
			ViewBag.CurrentStep = (int)TabIndex.Banking;
			CompanyWizzardMenuManager.RefreshContext();
			return View(NameHelper.AppraisalCompanyWizard.Banking, appraisalCompanyBanking);
		}
		public ActionResult ApplyAccountNumber(AppraisalCompanyBankingViewModel appraisalCompanyBanking)
		{
			if (ModelState.IsValid)
			{
				_appraisalCompanyWizardService.SaveAppraisalCompanyBanking(GetAppraisalCompanyId(), appraisalCompanyBanking);
				CommitProviderInstance.Commit();
				TempData[_bankingNotificationMessageKey] = true;
			}
			TempData[AppraisalCompanyBankingKey] = appraisalCompanyBanking;
			return RedirectToAction(NameHelper.AppraisalCompanyProfile.Banking);
		}
		public ActionResult Banking(AppraisalCompanyBankingViewModel appraisalCompanyBanking, int? nextStep, bool? isSubmit = null)
		{
			const int currentStep = (int)TabIndex.Banking;

			if ((nextStep ?? currentStep) <= currentStep || ModelState.IsValid)
			{
				var oldCompanyBanking = _appraisalCompanyService.GetAppraisalCompanyBanking(GetAppraisalCompanyId());
				appraisalCompanyBanking.AccountNumber = oldCompanyBanking.AccountNumber;

				_appraisalCompanyService.SaveAppraisalCompanyBanking(GetAppraisalCompanyId(), appraisalCompanyBanking);
				if (isSubmit ?? false)
				{
					TempData["ShowProceedPopup"] = true;
					TempData[_appraisalCompanyBankingKey] = appraisalCompanyBanking;
				}
				else if (!nextStep.HasValue || nextStep.Value == currentStep)
				{
					TempData["SaveDraft"] = true;
				}
				CommitProviderInstance.Commit();
				return RedirectToStep(nextStep ?? currentStep);
			}
			TempData[_appraisalCompanyBankingKey] = appraisalCompanyBanking;
			return RedirectToAction(NameHelper.AppraisalCompanyWizard.Banking);
		}
		public ActionResult ApplyAccountNumber(AppraisalCompanyBankingViewModel appraisalCompanyBanking)
		{
			bool? bankingInfoSaved = false;
			if (ModelState.IsValid)
			{
				_appraisalCompanyService.SaveAppraisalCompanyBanking(GetAppraisalCompanyId(), appraisalCompanyBanking);
				CommitProviderInstance.Commit();
				bankingInfoSaved = true;
			}
			TempData[_appraisalCompanyBankingKey] = appraisalCompanyBanking;
			return RedirectToAction(NameHelper.AppraisalCompanyWizard.Banking, new { bankingInfoSaved = bankingInfoSaved });
		}
		public ActionResult Banking(bool? bankingInfoSaved = null)
		{
			if (!IsTabAvailable(TabIndex.Banking))
			{
				int lastCompletedStep = GetAppraisalCompanyLastCompletedStep();
				return RedirectToStep(lastCompletedStep);
			}

			var appraisalCompanyBanking = TempData[_appraisalCompanyBankingKey] as AppraisalCompanyBankingViewModel ?? _appraisalCompanyService.GetAppraisalCompanyBanking(GetAppraisalCompanyId());
			if (appraisalCompanyBanking == null)
			{
				appraisalCompanyBanking = new AppraisalCompanyBankingViewModel();
			}

			ViewBag.BankingInfoSaved = bankingInfoSaved;
			ViewBag.IsEditMode = false;
			ViewBag.ToShowTIN = true;
			ViewBag.CompanyId = GetAppraisalCompanyId();
			ViewBag.RouteValues = new
			{
				area = NameHelper.AppraisalCompanyWizard.Area,
				controller = NameHelper.AppraisalCompanyWizard.Controller,
				action = NameHelper.AppraisalCompanyWizard.ChangeTINInformation
			};

			return GetBankingView(appraisalCompanyBanking);
		}
示例#14
0
		public void SaveAppraisalCompanyBanking(int appraisalCompanyId, AppraisalCompanyBankingViewModel appraisalCompanyBanking)
		{
			var appraisalCompany = _appraisalCompanyManagement.GetAppraisalCompanyById(appraisalCompanyId);
			if (appraisalCompany.BankingDetails == null)
			{
				appraisalCompany.BankingDetails = new AppraisalCompanyBanking();
			}
			appraisalCompany.BankingDetails.BankAccount = _cryptographicProvider.EncryptString(appraisalCompanyBanking.BankAccount).Value;
			appraisalCompany.BankingDetails.BankingInstitution = _cryptographicProvider.EncryptString(appraisalCompanyBanking.BankingInstitution).Value;
			appraisalCompany.BankingDetails.AccountNumber = _cryptographicProvider.EncryptString(appraisalCompanyBanking.AccountNumber).Value;
			appraisalCompany.BankingDetails.RoutingNumber = _cryptographicProvider.EncryptString(appraisalCompanyBanking.RoutingNumber).Value;
			if (appraisalCompany.BankingDetails.BankAddress == null)
			{
				appraisalCompany.BankingDetails.BankAddress = new Address();
			}
			if (!_referenceManagement.HasReferenceKey(ReferenceType.AccountTypes, (int)appraisalCompanyBanking.AccountType))
				throw new ArgumentOutOfRangeException("Unknown banking account type: " + appraisalCompany.BankingDetails.AccountType);
			appraisalCompany.BankingDetails.AccountType = appraisalCompanyBanking.AccountType;

			_addressManager.FillAddress(appraisalCompany.BankingDetails.BankAddress, appraisalCompanyBanking.BankAddress);

			if (appraisalCompanyBanking.TINType.HasValue && !appraisalCompanyBanking.TINType.Value.Equals(Constants.Text.NoSelectionKey))
			{
				appraisalCompany.TINTypeId = appraisalCompanyBanking.TINType;
			}
			else if (appraisalCompanyBanking.TINType.HasValue)
			{
				appraisalCompany.TINTypeId = null;
			}
		}
示例#15
0
		public AppraisalCompanyBankingViewModel GetAppraisalCompanyBanking(int appraisalCompanyId)
		{
			var appraisalCompany = _appraisalCompanyManagement.GetAppraisalCompanyById(appraisalCompanyId);
			if (appraisalCompany == null)
			{
				throw new ArgumentException("company id");
			}
			var result = new AppraisalCompanyBankingViewModel();
			result.BankAddress = new AddressViewModel();
			if (appraisalCompany.BankingDetails != null)
			{
				result.AccountNumber = _cryptographicProvider.DecryptString(appraisalCompany.BankingDetails.AccountNumber).Value;
				result.AccountType = appraisalCompany.BankingDetails.AccountType;
				result.BankAccount = _cryptographicProvider.DecryptString(appraisalCompany.BankingDetails.BankAccount).Value;
				result.BankingInstitution = _cryptographicProvider.DecryptString(appraisalCompany.BankingDetails.BankingInstitution).Value;
				result.RoutingNumber = _cryptographicProvider.DecryptString(appraisalCompany.BankingDetails.RoutingNumber).Value;
				if (appraisalCompany.BankingDetails.BankAddress != null)
				{
					result.BankAddress = _addressManager.GetAddressViewModel<AddressViewModel>(appraisalCompany.BankingDetails.BankAddress);
				}
				result.TIN = _cryptographicProvider.DecryptString(appraisalCompany.TIN).Value;
				result.TINType = appraisalCompany.TINTypeId;
			}
			return result;
		}