Exemple #1
0
		public void StatusChanged(AppraisalCompanyBranch companyBranch, AppraisalCompanyStatus newStatus,
															AppraisalCompanyStatus oldStatus)
		{
			var statusMapper = new CompanyUserMapper();
			var historyMapper = new CompanyStatusHistoryMapper();

			foreach (var appraiserUser in _appraiserManagement.GetUsersForBranch(companyBranch.Id))
			{
				if (appraiserUser.User.Roles.Count != 1 || appraiserUser.User.Roles.First().RoleType != RoleType.Appraiser || appraiserUser.Status == AppraiserUserStatus.Applied)
					continue;
				if (appraiserUser.Status == AppraiserUserStatus.Inactive && newStatus == AppraisalCompanyStatus.Suspended)
					continue;

				var userStatus = statusMapper.ToUserStatus(newStatus);
				if (newStatus == AppraisalCompanyStatus.Active)
				{
					var historyForCompany = _trackingRepository.GetAppraisalCompanyBranchStatusHistory(companyBranch.Id).FirstOrDefault(e => e.OldValue == AppraisalCompanyStatus.Active.ToString());
					if (historyForCompany != null)
					{
						var history = _trackingRepository.GetAppraiserStatusHistory(appraiserUser.User.Id).ToArray();
						var lastHistory = history.FirstOrDefault(e => e.ChangeEntity.ChangeSet.Date == historyForCompany.ChangeEntity.ChangeSet.Date);

						if (lastHistory == null)
						{
							lastHistory = history.FirstOrDefault(e => e.ChangeEntity.ChangeSet.Date <= historyForCompany.ChangeEntity.ChangeSet.Date);
							if (lastHistory != null)
							{
								userStatus = statusMapper.ToUserStatus(historyMapper.Mapp(lastHistory.NewValue));
							}
						}
						else
						{
							userStatus = statusMapper.ToUserStatus(historyMapper.Mapp(lastHistory.OldValue));
						}
					}
				}

				appraiserUser.Status = userStatus;
			}
		}
Exemple #2
0
		public void GetAppraiserCompanyInfo_should_throw_exception_if_illegal_branch_id_passed()
		{
			string email = "*****@*****.**";
			int branchId = 1;
			var branch = new AppraisalCompanyBranch()
			{
				Id = branchId,
				Name = "branch 1"
			};
			var company = new AppraisalCompanyDetail()
			{
				Id = 1,
				CompanyName = "company",
				Branches = new List<AppraisalCompanyBranch>(new AppraisalCompanyBranch[] { branch }),
				Contact = new AppraisalCompanyContact() { PhysicalAddress = new Address() { City = "Minsk" } }
			};
			var user = new User()
			{
				Email = email,
				Roles = new List<Role>(new Role[] { Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin) })
			};
			var appraiser = new AppraiserUser()
			{
				Id = 1,
				User = user,
				Branch = branch,
				Company = company,
			};

			AppraiserManager.GetByEmail(Arg.Any<string>()).Returns(appraiser);
			AppraiserManager.GetById(Arg.Any<int>()).Returns(appraiser);
			AppraiserAccessManager.IsOtherUserDataAvailable(Arg.Any<int?>()).Returns(true);

			// act
			Target.Invoking(a => a.GetAppraiserCompanyInfo(email, null, branchId + 1)).ShouldThrow<ArgumentException>();
		}
Exemple #3
0
		public void SaveAppraisalCompanyBranches(int appraisalCompanyId, AppraisalCompanyBranchesViewModel viewModel)
		{
			var company = _appraisalCompanyRepository.GetById(appraisalCompanyId);

			if (company != null)
			{
				foreach (var branche in viewModel.AppraisalCompanyBranchItems)
				{
					var existsBranch = company.Branches.FirstOrDefault(e => e.Id.ToString() == branche.BranchId);

					if (existsBranch != null)
					{
						existsBranch.Name = branche.Name;
						if (existsBranch.Status != branche.Status)
						{
							var oldStatus = existsBranch.Status;
							existsBranch.Status = branche.Status;
							_appraisalBrancheChangeStatusNotification.StatusChanged(existsBranch, existsBranch.Status, oldStatus);
						}
						if (existsBranch.Address == null)
							existsBranch.Address = new Address();

						existsBranch.Address.City = branche.AddressViewModel.City;
						existsBranch.Address.State = branche.AddressViewModel.State.Substring(0, 2);
						existsBranch.Address.Street = branche.AddressViewModel.Street;
						existsBranch.Address.Street2 = branche.AddressViewModel.Street2;
						existsBranch.Address.ZIP = branche.AddressViewModel.ZIP;
					}
					else
					{
						var newBranche = new AppraisalCompanyBranch();
						newBranche.Name = branche.Name;
						newBranche.Status = branche.Status;
						newBranche.Address = new Model.Entities.Address
																	{
																		City = branche.AddressViewModel.City,
																		State = branche.AddressViewModel.State.Substring(0, 2),
																		Street = branche.AddressViewModel.Street,
																		Street2 = branche.AddressViewModel.Street2,
																		ZIP = branche.AddressViewModel.ZIP
																	};
						company.Branches.Add(newBranche);
					}
				}

				_appraisalCompanyRepository.Update(company);
			}
		}
Exemple #4
0
		public void GetAppraiserCompanyInfo_should_return_AppraiserUserCompanyInfoViewModel()
		{
			string email = "*****@*****.**";
			int branchId = 1;
			var branch = new AppraisalCompanyBranch()
			{
				Id = branchId,
				Name = "branch 1",
				Status = AppraisalCompanyStatus.Active
			};
			var company = new AppraisalCompanyDetail()
			{
				Id = 1,
				CompanyName = "company",
				Branches = new List<AppraisalCompanyBranch>(new AppraisalCompanyBranch[] { branch }),
				Contact = new AppraisalCompanyContact() { PhysicalAddress = new Address() { City = "Minsk" } }
			};
			var user = new User()
			{
				Email = email,
				Roles = new List<Role>(new Role[] { Singletones.ReferenceManager.GetRole(RoleType.AppraisalCompanyAdmin) })
			};
			var appraiser = new AppraiserUser()
			{
				Id = 1,
				User = user,
				Branch = branch,
				Company = company,
			};

			UsersManager.GetById(Arg.Any<int>()).Returns(user);
			UsersManager.GetByEmail(Arg.Any<string>()).Returns(user);
			AppraiserManager.GetById(Arg.Any<int>()).Returns(appraiser);
			AppraiserManager.GetByEmail(Arg.Any<string>()).Returns(appraiser);
			AppraiserAccessManager.IsOtherUserDataAvailable(Arg.Any<int?>()).Returns(true);

			// act
			var actual = Target.GetAppraiserCompanyInfo(email, null, branchId);
			actual.Should().NotBeNull().And.BeOfType<AppraiserUserCompanyInfoViewModel>();
			actual.CompanyID.Should().Be(company.Id);
			actual.BranchID.Should().Be(branch.Id);
		}