Пример #1
0
		public AppraiserUserCreateViewModel()
		{
			GeneralInfo = new CreateUserGeneralInfoViewModel();
			Contact = new AppraiserUserContactViewModel();
			CompanyInfo = new AppraiserUserCompanyInfoViewModel();
		}
Пример #2
0
		private ActionResult GetContactView(AppraiserUserContactViewModel appraiserContactViewModel, int? userId)
		{
			ViewBag.Header = appraiserContactViewModel.SectionTitle;
			ViewBag.IsOwnPage = appraiserContactViewModel.IsOwnPage;
			ViewBag.CurrentStep = NameHelper.AppraiserProfile.Contact;
			return View(NameHelper.AppraiserProfile.Contact, GetViewModel(appraiserContactViewModel, userId));
		}
Пример #3
0
		public ActionResult Contact(AppraiserUserContactViewModel contactModel, string nextStep, int? userId)
		{
			if (contactModel.EditUserId == 0)
			{
				contactModel.EditUserId = userId.HasValue ? userId.Value : 0;
			}
			if (ModelState.IsValid)
			{
				var validateAddress = new ValidateAddressArg
				{
					City = string.IsNullOrEmpty(contactModel.PhysicalAddress.City) ? string.Empty : contactModel.PhysicalAddress.City,
					State = string.IsNullOrEmpty(contactModel.PhysicalAddress.State) ? string.Empty : contactModel.PhysicalAddress.State,
					Street = string.IsNullOrEmpty(contactModel.PhysicalAddress.Street) ? string.Empty : contactModel.PhysicalAddress.Street,
					ZIP = string.IsNullOrEmpty(contactModel.PhysicalAddress.ZIP) ? string.Empty : contactModel.PhysicalAddress.ZIP
				};

				var geocodingValidationResult = _geocodingValidation.ValidateAddress(validateAddress);
				if (geocodingValidationResult != null && !geocodingValidationResult.IsValid)
				{
					ViewBag.CurrentControllerName = NameHelper.AppraiserProfile.Controller;
					ViewBag.GeocodingErrorMessage = Constants.ErrorMessages.GeocodingVerificationError;
					return GetContactView(contactModel, contactModel.EditUserId);
				}

				_appraiserUserService.SaveAppraiserContact(contactModel, User.Identity.Name);
				CommitProviderInstance.Commit();
				return RedirectToStep(nextStep, contactModel.EditUserId, contactModel.IsOwnPage);
			}

			TempData[_appraiserContactKey] = contactModel;
			return RedirectToStep(NameHelper.AppraiserProfile.Contact, contactModel.EditUserId, contactModel.IsOwnPage);
		}
Пример #4
0
		public void SaveAppraiserUser_should_throw_exception_if_company_admin_assigns_user_to_inactive_branch()
		{
			var companyInfo = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1 };
			companyInfo.Branches = new List<AppraiserUserCompanyInfoBranchViewModel>(new AppraiserUserCompanyInfoBranchViewModel[]
			{
				new AppraiserUserCompanyInfoBranchViewModel() { BranchID = 1, Status = AppraisalCompanyStatus.Inactive}
			});
			var companyAdminRole = Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin);
			User user = new User() { Roles = new List<Role>(new Role[] { companyAdminRole }) };
			_userManager.GetByEmail(Arg.Any<string>()).Returns(user);
			_appraiserService.GetAppraiserCompanyInfo(Arg.Any<string>()).Returns(companyInfo);
			_companyService.GetAppraisalCompanyDetails(Arg.Any<int>()).Returns(new AppraisalCompanyDetailsViewModel() { Status = AppraisalCompanyStatus.Applied });

			var viewContext = new ViewContext();
			viewContext.HttpContext = MockHttpContext.FakeHttpContext();
			IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null);
			viewContext.HttpContext.User.IsInRole(companyAdminRole.RoleType.ToString()).Returns(true);


			_target.CommitProviderInstance = Substitute.For<ICommitProvider>();
			_target.SetFakeControllerContext(viewContext.HttpContext);

			var addressViewModel = new AddressViewModel();
			var appraiserUserContactViewModel = new AppraiserUserContactViewModel { PhysicalAddress = addressViewModel };
			var userModel = new AppraiserUserCreateViewModel()
			{
				GeneralInfo = new CreateUserGeneralInfoViewModel() { RoleType = RoleType.Appraiser },
				Contact = appraiserUserContactViewModel,
			};
			var companyModel = new AppraiserUserCompanyInfoViewModel() { CompanyID = 1, BranchID = 2 };

			// act
			_target.Invoking(a => a.SaveAppraiserUser(userModel, companyModel, true)).ShouldThrow<ArgumentException>();
		}
Пример #5
0
		public PartialViewResult AddPhone()
		{
			var phonesViewModel = new PhonesViewModel();
			phonesViewModel.PhoneItems = new List<PhoneItemViewModel> { new PhoneItemViewModel { Id = Guid.NewGuid().ToString(), PhoneType = PhoneType.Mobile } };
			var appraiserContactViewModel = new AppraiserUserContactViewModel { Phones = phonesViewModel };
			return PartialView("AppraiserTabs/Contact", appraiserContactViewModel);
		}
Пример #6
0
		public void SaveAppraiserContact_should_throw_exception_if_contact_or_loginname_params_are_null()
		{
			var contactViewModel = new AppraiserUserContactViewModel() { TextMsgNumber = "12345678" };
			//act
			Target.Invoking(m => m.SaveAppraiserContact(null, "test")).ShouldThrow<ArgumentNullException>().And.ParamName.Should().Contain("contact");
			Target.Invoking(m => m.SaveAppraiserContact(contactViewModel, null)).ShouldThrow<ArgumentNullException>().And.ParamName.Should().Contain("email");
			Target.Invoking(m => m.SaveAppraiserContact(contactViewModel, String.Empty)).ShouldThrow<ArgumentNullException>().And.ParamName.Should().Contain("email");
		}
Пример #7
0
		public void SaveAppraiserUser_should_throw_exception_if_users_role_is_illegal()
		{
			var viewContext = new ViewContext();
			viewContext.HttpContext = MockHttpContext.FakeHttpContext();
			IPrincipal currentUser = new GenericPrincipal(new GenericIdentity("someUser"), null);
			var dvsAdminRole = Singletones.ReferenceManager.GetRole(RoleType.DvsAdmin);
			viewContext.HttpContext.User.IsInRole(dvsAdminRole.RoleType.ToString()).Returns(true);


			_target.CommitProviderInstance = Substitute.For<ICommitProvider>();
			_target.SetFakeControllerContext(viewContext.HttpContext);

			var addressViewModel = new AddressViewModel();
			var appraiserUserContactViewModel = new AppraiserUserContactViewModel { PhysicalAddress = addressViewModel };
			var userModel = new AppraiserUserCreateViewModel()
			{
				GeneralInfo = new CreateUserGeneralInfoViewModel() { RoleType = RoleType.DvsSuperAdmin },
				Contact = appraiserUserContactViewModel,
			};
			var companyModel = new AppraiserUserCompanyInfoViewModel();

			// act
			_target.Invoking(a => a.SaveAppraiserUser(userModel, companyModel, true)).ShouldThrow<ArgumentException>();
		}
Пример #8
0
		public void CreateAppraiserUser_should_create_user()
		{
			var company = new AppraisalCompanyDetail() { Branches = new List<AppraisalCompanyBranch>() };
			AppraisalCompanyManager.GetAppraisalCompanyById(1).Returns(company);
			var generalInfo = new CreateUserGeneralInfoViewModel()
			{
				Email = "email",
				Password = "******",
				RoleType = RoleType.Appraiser
			};
			IAppraiserUserRepository appUserRepository = Substitute.For<IAppraiserUserRepository>();
			var _taskManager = Substitute.For<ITaskManager>();
			ReferenceManager.GetRoleWithoutCache(RoleType.Appraiser).Returns(new Role() { Id = (int)RoleType.Appraiser });
			AppraiserManager = new AppraiserManagement(Substitute.For<IUserRepository>(), appUserRepository, ReferenceManager, _taskManager, Substitute.For<IAscGovLicenseService>());
			Target = new AppraiserUserService(UsersManager, AppraiserManager,
				ReferenceManager, AppraisalCompanyManager,
				StatusHistoryManager, FeeManager, LicenseManager, AppraiserAccessManager,
				CryptographicProvider, DocumentService, Substitute.For<IGeocodingDataService>());
			var contactInfo = new AppraiserUserContactViewModel() { PhysicalAddress = new AddressViewModel() };
			var companyInfo = new AppraiserUserCompanyInfoViewModel()
			{
				CompanyID = 1
			};
			var appraiser = new AppraiserUserCreateViewModel()
			{
				GeneralInfo = generalInfo,
				Contact = contactInfo,
				CompanyInfo = companyInfo
			};

			var serviceAreaRadiuses = new Dictionary<RefServiceAreaRadiuse, string>();
			serviceAreaRadiuses.Add(new RefServiceAreaRadiuse() { ServiceAreaRadius = 1 }, "123");
			ReferenceManager.GetServiceAreaRadiuses().Returns(serviceAreaRadiuses);

			//act
			Target.CreateAppraiserUser(appraiser);
			appUserRepository.Received().Add(Arg.Any<AppraiserUser>());
		}
Пример #9
0
		public void CreateAppraiserUser_should_throw_exception_if_user_assigned_to_nonexsistent_branch()
		{
			var company = new AppraisalCompanyDetail() { Branches = new List<AppraisalCompanyBranch>() };
			ReferenceManager.GetRole(Arg.Any<RoleType>()).Returns(new Role() { Id = (int)RoleType.Appraiser });
			AppraisalCompanyManager.GetAppraisalCompanyById(1).Returns(company);
			var generalInfo = new CreateUserGeneralInfoViewModel()
			{
				Email = "email",
				Password = "******"
			};
			AppraiserUser appUser = new AppraiserUser();
			appUser.User = new User();
			appUser.User.Roles = new List<Role>() { new Role() { Id = (int)RoleType.Appraiser } };
			AppraiserManager.CheckAndCreateAppraiserUser(Arg.Any<User>(), generalInfo.Password, Arg.Any<AppraiserUserStatus>()).Returns(appUser);
			var contactInfo = new AppraiserUserContactViewModel() { PhysicalAddress = new AddressViewModel() };
			var companyInfo = new AppraiserUserCompanyInfoViewModel()
			{
				CompanyID = 1,
				BranchID = 10
			};
			var appraiser = new AppraiserUserCreateViewModel()
			{
				GeneralInfo = generalInfo,
				Contact = contactInfo,
				CompanyInfo = companyInfo
			};
			//act
			Target.Invoking(a => a.CreateAppraiserUser(appraiser)).ShouldThrow<ArgumentException>();
		}
Пример #10
0
		public void SaveAppraiserContact_should_throw_exception_if_user_is_appraiser_and_PhysicalAddressRequired_is_null()
		{
			var contactInfo = new AppraiserUserContactViewModel();
			AppraiserAccessManager.IsOtherUserDataAvailable(Arg.Any<int?>()).Returns(true);
			var user = new User();
			user.Roles = new List<Role>() { new Role() { Id = (int)RoleType.Appraiser } };
			var appraiserUser = new AppraiserUser() { User = user };

			AppraiserManager.GetByEmail(Arg.Any<string>()).Returns(appraiserUser);
			//act
			Target.Invoking(m => m.SaveAppraiserContact(contactInfo, "*****@*****.**")).ShouldThrow<NullReferenceException>();
		}
Пример #11
0
		public void AppraiserWizard_Contact_invalid_model_post_should_redirect_to_contact_with_model()
		{
			Target.ModelState.AddModelError("test error", "test error");

			var model = new AppraiserUserContactViewModel();
			var actionResult = Target.Contact(model, null);
			Target.TempData.Should().HaveCount(1);
			actionResult.Should().NotBeNull().And.BeOfType<RedirectToRouteResult>();
			((RedirectToRouteResult)actionResult).RouteValues.Should().HaveCount(1);
			((RedirectToRouteResult)actionResult).RouteValues["action"].Should().Be("Contact");
		}
Пример #12
0
		public void AppraiserWizard_Contact_valid_model_post_without_nextstep_should_populate_savedraft_and_redirect_to_itself()
		{
			var model = new AppraiserUserContactViewModel();
			var actionResult = Target.Contact(model, null);
			Target.TempData.Should().HaveCount(1);
			Target.TempData["SaveDraft"].Should().Be(true);
			actionResult.Should().NotBeNull().And.BeOfType<RedirectToRouteResult>();
			((RedirectToRouteResult)actionResult).RouteValues.Should().HaveCount(1);
			((RedirectToRouteResult)actionResult).RouteValues["action"].Should().Be("Contact");
		}
Пример #13
0
		private ActionResult GetContactView(AppraiserUserContactViewModel model)
		{
			ViewBag.CurrentStep = (int)TabIndex.Contact;
			return View(NameHelper.AppraiserWizard.Contact, GetWrappedViewModel(model));
		}
Пример #14
0
		public ActionResult Contact(AppraiserUserContactViewModel contactModel, int? nextStep)
		{
			if ((nextStep ?? (int)TabIndex.Contact) <= (int)TabIndex.Contact || ModelState.IsValid)
			{
				if (!nextStep.HasValue || nextStep.Value == (int)TabIndex.Contact)
				{
					TempData["SaveDraft"] = true;
					_appraiserUserService.SaveAppraiserContact(contactModel, User.Identity.Name);
					SaveLastCompletedStep(TabIndex.Contact, nextStep);
					CommitProviderInstance.Commit();
					return RedirectToStep(SafeConvert.ToEnum<TabIndex>(nextStep) ?? TabIndex.Contact);
				}
				var validateAddress = new ValidateAddressArg
				{
					City = contactModel.PhysicalAddress.City,
					State = contactModel.PhysicalAddress.State,
					Street = contactModel.PhysicalAddress.Street,
					ZIP = contactModel.PhysicalAddress.ZIP
				};
				var geocodingValidationResult = _geocodingValidation.ValidateAddress(validateAddress);
				if (geocodingValidationResult.IsValid)
				{
					_appraiserUserService.SaveAppraiserContact(contactModel, User.Identity.Name);
					SaveLastCompletedStep(TabIndex.Contact, nextStep);
					CommitProviderInstance.Commit();
					return RedirectToStep(SafeConvert.ToEnum<TabIndex>(nextStep) ?? TabIndex.Contact);
				}
				ViewBag.GeocodingErrorMessage = Constants.ErrorMessages.GeocodingVerificationError;
				return GetContactView(contactModel);

			}
			TempData[_appraiserContactKey] = contactModel;
			return RedirectToStep(TabIndex.Contact);
		}