public async Task <IChangeStatusModel> AssignsMembersGroup(INewDayAssignModel model) { IChangeStatusModel moveToStatusResultModel = new ChangeStatusModel(); DayAssign dayAssign = await CreateOrGetDayAssign(model); try { if (model.IsUnassignedAll) { await jobStatusService.Pending(model.DayAssignId.Value, dayAssign.StatusId); } else if (dayAssign.StatusId != JobStatus.Assigned && model.TeamLeadId.HasValue) { await jobStatusService.Assigned(dayAssign.Id, dayAssign.StatusId); } else if (dayAssign.StatusId != JobStatus.Opened && !model.TeamLeadId.HasValue) { await jobStatusService.Opened(dayAssign.Id, dayAssign.StatusId); } model.Id = dayAssign.Id; await messageBus.Publish(model.Map <ChangeDayAssignMembersComand>()); moveToStatusResultModel.IsSuccessful = true; } catch (NotImplementedException) { moveToStatusResultModel.IsSuccessful = false; } moveToStatusResultModel.DayAssignId = dayAssign.Id; return(moveToStatusResultModel); }
public async Task AssignEmployees(MemberAssignModel model) { IDayAssign dayAssign = GetDayAssign(model.DayAssignId); var currentUser = memberService.GetCurrentUser(); //Janitor can create task only for himself if (currentUser.CurrentRole == RoleType.Janitor) { model.UserIdList = new List <Guid> { currentUser.MemberId }; model.TeamLeadId = currentUser.MemberId; model.GroupId = null; model.IsAssignedToAllUsers = false; } var memberModel = new ChangeDayAssignMembersComand(dayAssign.Id.ToString()) { UserIdList = model.UserIdList, GroupId = model.GroupId, TeamLeadId = model.TeamLeadId, IsAssignedToAllUsers = model.IsAssignedToAllUsers }; await messageBus.Publish(memberModel); if (model.IsUnassignAll) { await jobStatusService.Pending(dayAssign.Id, dayAssign.StatusId); } else if (dayAssign.StatusId != JobStatus.Opened && !model.TeamLeadId.HasValue) { await jobStatusService.Opened(dayAssign.Id, dayAssign.StatusId); } else if (dayAssign.StatusId != JobStatus.Assigned && model.TeamLeadId.HasValue) { await jobStatusService.Assigned(dayAssign.Id, dayAssign.StatusId); } }
public async Task <JobViewModel> GetWeekTask(JobFilterViewModel model) { IJob task = await jobService.GetJobById(model.JobId); var jobAssignId = Guid.Empty; var existingAssignId = model.DayAssignId.HasValue ? model.DayAssignId.Value : Guid.Empty; var dayAssign = dayAssignProvider.Get(existingAssignId); if (dayAssign != null) { JobAssign jobAssign = jobAssignProvider.GetById(dayAssign.JobAssignId); task.Assigns.Add(jobAssign); jobAssignId = dayAssign.JobAssignId; task.DayAssigns.Add(dayAssign); } else { jobAssignId = jobAssignProvider.GetAssignByJobIdAndDepartmentId(model.JobId, model.HousingDepartmentId).Id; //Create new dayAssign and set status "Assigned" var newDayAssignModel = new NewDayAssignViewModel { JobId = model.JobId, DepartmentId = model.HousingDepartmentId, JobAssignId = jobAssignId, CurrentWeekDay = model.CurrentWeekDay, WeekNumber = model.WeekNumber, Date = model.Date }; var createResult = await dayAssignService.CreateDayAssignWithEstimate(newDayAssignModel); if (createResult != Guid.Empty) { var newDayAssign = dayAssignProvider.Get(createResult); await jobStatusService.Assigned(createResult, newDayAssign.StatusId); task.DayAssigns.Add(newDayAssign); } } return(new JobViewModel { Job = task, JobAssignId = jobAssignId }); }