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; } }
public AppraiserUserStatus ToUserStatus(AppraisalCompanyStatus appraisalCompanyStatus) { return _mapper[appraisalCompanyStatus]; }
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; } }
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); } }
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 }
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); } } } }
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); } }
public void UpdateAppraisalCompanyDetails(int appraisalCompanyId, string companyName, AppraisalCompanyStatus companyStatus) { var appraisalCompany = _appraisalCompanyManagement.GetAppraisalCompanyById(appraisalCompanyId); appraisalCompany.CompanyName = companyName; appraisalCompany.Status = companyStatus; }
public void UpdateAppraisalCompanyStatus(int appraisalCompanyId, AppraisalCompanyStatus companyStatus) { //var appraisalCompany = _appraisalCompanyManagement.GetAppraisalCompanyById(appraisalCompanyId); //appraisalCompany.Status = companyStatus; _appraisalCompanyManagement.SetCompanyStatus(appraisalCompanyId, companyStatus); }
public void SetStatus(object brunchId, AppraisalCompanyStatus status) { if (_branchAcceses.AllowEditStatusOfBranch()) { _branchesService.SetStatus(brunchId, status); } }
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); } }