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 AppraiserUserStatus ToUserStatus(AppraisalCompanyStatus appraisalCompanyStatus)
		{
			return _mapper[appraisalCompanyStatus];
		}
Exemple #3
0
		private void ChangeStatusOfAppraiserUsers(AppraisalCompanyDetail companyDetail, AppraisalCompanyStatus newStatus, AppraisalCompanyStatus oldStatus)
		{
			if (oldStatus == AppraisalCompanyStatus.Applied && newStatus == AppraisalCompanyStatus.Active)
				return;

			var userMapper = new CompanyUserMapper();
			var historyMapper = new CompanyStatusHistoryMapper();

			foreach (var appraiserUser in _appraiserManagement.GetUsersForCompany(companyDetail.Id))
			{
				if (appraiserUser.User.Roles.Any(e => e.RoleType != RoleType.Appraiser) || appraiserUser.Status == AppraiserUserStatus.Applied)
					continue;
				if (newStatus == AppraisalCompanyStatus.Suspended && appraiserUser.Status == AppraiserUserStatus.Inactive)
					continue;
                if ((newStatus == AppraisalCompanyStatus.Inactive || newStatus == AppraisalCompanyStatus.Suspended) && (appraiserUser.Status == AppraiserUserStatus.Applied))
                    continue;

				var appraiserUserStatus = userMapper.ToUserStatus(newStatus);
                
				if (newStatus == AppraisalCompanyStatus.Active)
				{
					var historyForCompany = _trackingRepository.GetAppraisalCompanyStatusHistory(companyDetail.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)
							{
								appraiserUserStatus = userMapper.ToUserStatus(historyMapper.Mapp(lastHistory.NewValue));
							}
						}
						else
						{
							appraiserUserStatus = userMapper.ToUserStatus(historyMapper.Mapp(lastHistory.OldValue));
						}
					}
				}

				appraiserUser.Status = appraiserUserStatus;
			}
		}
Exemple #4
0
		private void ChangeStatusOfBranches(AppraisalCompanyDetail companyDetail, AppraisalCompanyStatus newStatus, AppraisalCompanyStatus oldStatus)
		{
			var historyMapper = new CompanyStatusHistoryMapper();

			foreach (var branche in companyDetail.Branches)
			{
				if (branche.Status == AppraisalCompanyStatus.Inactive && newStatus == AppraisalCompanyStatus.Suspended)
				{
					continue;
				}

				var brancheNewStatus = newStatus;
				if (newStatus == AppraisalCompanyStatus.Active)
				{
					var historyForCompany = _trackingRepository.GetAppraisalCompanyStatusHistory(companyDetail.Id).FirstOrDefault(e => e.OldValue == AppraisalCompanyStatus.Active.ToString());
					if (historyForCompany != null)
					{
						var history = _trackingRepository.GetAppraisalCompanyBranchStatusHistory(branche.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)
							{
								brancheNewStatus = historyMapper.Mapp(lastHistory.NewValue);
							}
						}
						else
						{
							brancheNewStatus = historyMapper.Mapp(lastHistory.OldValue);
						}
					}
				}
				branche.Status = brancheNewStatus;
				_appraisalBrancheChangeStatusNotification.StatusChanged(branche, branche.Status, oldStatus);
			}
		}
Exemple #5
0
		public void StatusChanged(AppraisalCompanyDetail companyDetail, AppraisalCompanyStatus newStatus,
															AppraisalCompanyStatus oldStatus)
		{
			ChangeStatusOfAdminUsers(companyDetail, newStatus, oldStatus);
			ChangeStatusOfAppraiserUsers(companyDetail, newStatus, oldStatus);//NOTE: order of call this two function is very important, you should'n change this order
			ChangeStatusOfBranches(companyDetail, newStatus, oldStatus);//NOTE: order of call this two function is very important, you should'n change this order
		}
Exemple #6
0
		private void ChangeStatusOfAdminUsers(AppraisalCompanyDetail companyDetail, AppraisalCompanyStatus newStatus, AppraisalCompanyStatus oldStatus)
		{
			if (oldStatus == AppraisalCompanyStatus.Applied)
			{
				var companyStatusMapper = new CompanyUserMapper();
				var rolesOfAdmin = new[] { RoleType.AppraisalCompanyAdmin, RoleType.CompanyAdminAndAppraiser };
				foreach (var appraiserUser in _appraiserManagement.GetUsersForCompany(companyDetail.Id))
				{
					if (appraiserUser.User.Roles.Any(e => rolesOfAdmin.Contains(e.RoleType)))
					{
                        if (appraiserUser.Status == AppraiserUserStatus.Applied && newStatus == AppraisalCompanyStatus.Active)
							appraiserUser.Status = companyStatusMapper.ToUserStatus(newStatus);
					}
				}
			}
		}
Exemple #7
0
		public void SetCompanyStatus(int appraisalCompanyId, AppraisalCompanyStatus status)
		{
			var companyDetails = _appraisalCompanyRepository.GetById(appraisalCompanyId);
			if (companyDetails.Status != status)
			{
				var oldStatus = companyDetails.Status;
				companyDetails.Status = status;
				_appraisalCompanyChangeStatusNotification.StatusChanged(companyDetails, status, oldStatus);
			}
		}
Exemple #8
0
		public void UpdateAppraisalCompanyDetails(int appraisalCompanyId, string companyName, AppraisalCompanyStatus companyStatus)
		{
			var appraisalCompany = _appraisalCompanyManagement.GetAppraisalCompanyById(appraisalCompanyId);
			appraisalCompany.CompanyName = companyName;
			appraisalCompany.Status = companyStatus;			
		}
Exemple #9
0
		public void UpdateAppraisalCompanyStatus(int appraisalCompanyId, AppraisalCompanyStatus companyStatus)
		{
			//var appraisalCompany = _appraisalCompanyManagement.GetAppraisalCompanyById(appraisalCompanyId);
			//appraisalCompany.Status = companyStatus;
			_appraisalCompanyManagement.SetCompanyStatus(appraisalCompanyId, companyStatus);
		}
Exemple #10
0
		public void SetStatus(object brunchId, AppraisalCompanyStatus status)
		{
			if (_branchAcceses.AllowEditStatusOfBranch())
			{
				_branchesService.SetStatus(brunchId, status);
			}
		}
Exemple #11
0
		public void SetStatus(object brunchId, AppraisalCompanyStatus status)
		{
			var targetBranch = GetAllBranches().FirstOrDefault(e => e.BranchId == (brunchId ?? string.Empty).ToString());
			if (targetBranch != null)
			{
				targetBranch.Status = status;
				bool geocodingIsResolved;
				_appraisalCompanyBranchesService.EditBranche(targetBranch, CurrentCompanyService.CurrentCompany, out geocodingIsResolved);
			}
		}