public async Task <FormattedJobAssignViewModel> GetJobAssigns(string jobId, UploadedContentEnum?contentType) { IMemberModel currentUser = memberService.GetCurrentUser(); IJob job = await jobService.GetJobById(jobId); var result = new FormattedJobAssignViewModel(); if (job.RelationGroupList.Any() && job.ParentId != null) { Guid housingDepartmentId = job.RelationGroupList.First().HousingDepartmentId; IEnumerable <Guid> relationGroupIdList = job.RelationGroupList.Select(x => x.RelationGroupId).ToList(); JobAssign globalGroupedJobAssign = jobService.GetGlobalJobAssignForGroupedTask(job); List <JobAssign> jobAssigns = jobService.GetJobAssignList(relationGroupIdList); result.GlobalAssign = globalGroupedJobAssign.Map <JobAssignViewModel>(); result.Assigns = jobAssigns.Where(i => !i.IsGlobal && i.HousingDepartmentIdList.Contains(housingDepartmentId)).Select(i => i.Map <JobAssignViewModel>()).ToList(); result.AddressList = jobService.GetRelatedAddressListForHousingDepartment(relationGroupIdList, housingDepartmentId, isParent: false); result.IsGroupedJob = true; result.IsChildJob = job.ParentId != null; } else { IFormattedJobAssign jobAssign = jobService.GetAllByJobIdFormatted(jobId, currentUser.IsAdmin() ? null : currentUser.ActiveManagementDepartmentId); result = Mapper.Map <FormattedJobAssignViewModel>(jobAssign); } result.CurrentUser = currentUser; result.GlobalAssign.UploadList = GetUploadListModel(result.GlobalAssign.UploadList, contentType); foreach (var assign in result.Assigns) { assign.UploadList = GetUploadListModel(assign.UploadList, contentType); } return(result); }
public async Task <JobAssignViewModel> SaveWeekList(ChangeJobAssignWeekListModel model) { JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId); if (!jobAssign.IsGlobal) { foreach (var week in model.WeekList) { week.IsDisabled = week.ChangedBy == WeekChangedBy.Administrator; } } bool isLocalIntervalChanged = !jobAssign.IsGlobal; await messageBus.Publish(new ChangeJobAssignWeeksCommand(jobAssign.Id, model.WeekList, model.ChangedByRole, isLocalIntervalChanged)); jobAssign.WeekList = model.WeekList; if (jobAssign.IsGlobal) { await jobService.CopyGlobalJobAssignToLocalIfLocalIntervalWasntChanged(jobAssign.Id, model.JobId, model.DepartmentId); await jobService.CopyParentGlobalJobAssignToChildren(jobAssign.Id, model.JobId); } managementHubs.Clients.All.refreshWeekPlanGridTasks(); managementHubs.Clients.All.refreshWeekPlanListTasks(); return(jobAssign.Map <JobAssignViewModel>()); }
public async Task <JobAssignViewModel> LockInterval(ChangeJobAssignLockIntervalModel model) { JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId); await messageBus.Publish(new ChangeLockIntervalValueCommand(jobAssign.Id, model.IsLocked)); jobAssign.IsLocked = model.IsLocked; return(jobAssign.Map <JobAssignViewModel>()); }
public async Task <JobAssignViewModel> SaveTillYear(ChangeJobAssignTillYearModel model) { JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId); bool isLocalIntervalChanged = !jobAssign.IsGlobal; await messageBus.Publish(new ChangeJobAssignTillYearCommand(jobAssign.Id, model.TillYear, model.ChangedByRole, isLocalIntervalChanged)); jobAssign.TillYear = model.TillYear; if (jobAssign.IsGlobal) { await jobService.CopyGlobalJobAssignToLocalIfLocalIntervalWasntChanged(jobAssign.Id, model.JobId, model.DepartmentId); await jobService.CopyParentGlobalJobAssignToChildren(jobAssign.Id, model.JobId); } return(jobAssign.Map <JobAssignViewModel>()); }
public async Task <JobAssignViewModel> SaveJobShedule(ChangeJobSheduleModel model) { JobAssign jobAssign = await jobService.CreateOrGetJobAssign(model.AssignId, model.JobId, model.DepartmentId); FillCorrectDayPerWeekModel(model.DayPerWeekList, jobAssign); bool isLocalIntervalChanged = !jobAssign.IsGlobal; await messageBus.Publish(new ChangeJobAssignSheduleCommand(jobAssign.Id, model.DayPerWeekList, model.RepeatsPerWeek, model.ChangedByRole, isLocalIntervalChanged)); jobAssign.DayPerWeekList = model.DayPerWeekList; jobAssign.RepeatsPerWeek = model.RepeatsPerWeek; if (jobAssign.IsGlobal) { await jobService.CopyGlobalJobAssignToLocalIfLocalIntervalWasntChanged(jobAssign.Id, model.JobId, model.DepartmentId); await jobService.CopyParentGlobalJobAssignToChildren(jobAssign.Id, model.JobId); } return(jobAssign.Map <JobAssignViewModel>()); }