public async Task UnassignJob(Guid dayAssignId, string changeStatusComment, List <IMemberSpentTimeModel> members, JobStatus newJobStatus, Guid?selectedCancellingId, Guid[] uploadedFileIds) { if (!selectedCancellingId.HasValue) { throw new InvalidOperationException("Wrong parameters passed"); } DayAssign dayAssign = dayAssignProvider.Get(dayAssignId); if (IsAllowChangeDayAssignStatus(dayAssign)) { var memberModel = new ChangeDayAssignMembersComand(dayAssign.Id.ToString()) { UserIdList = new List <Guid>(), GroupId = newJobStatus != JobStatus.Pending ? dayAssign.GroupId : null, TeamLeadId = null, IsAssignedToAllUsers = newJobStatus != JobStatus.Pending && dayAssign.IsAssignedToAllUsers }; await messageBus.Publish(memberModel); if (newJobStatus == JobStatus.Pending) { await jobStatusService.Pending(dayAssignId, dayAssign.StatusId, changeStatusComment, members, selectedCancellingId, uploadedFileIds); } else { await jobStatusService.Rejected(dayAssignId, dayAssign.StatusId, changeStatusComment, members, selectedCancellingId, uploadedFileIds); } } }
public async Task Handle(ChangeDayAssignMembersComand message) { var dayAssign = await repository.Get(message.Id); dayAssign.AssignUsers(message.GroupId, message.UserIdList, message.TeamLeadId, message.IsAssignedToAllUsers); await repository.Save(dayAssign); }
public async Task AssignJob(Guid dayAssignId) { IMemberModel member = memberService.GetCurrentUser(); DayAssign dayAssign = dayAssignProvider.Get(dayAssignId); var userIds = dayAssign.UserIdList ?? new List <Guid>(); userIds.Add(member.MemberId); var memberModel = new ChangeDayAssignMembersComand(dayAssign.Id.ToString()) { UserIdList = userIds, GroupId = dayAssign.GroupId, TeamLeadId = dayAssign.TeamLeadId.HasValue ? dayAssign.TeamLeadId : member.MemberId, IsAssignedToAllUsers = dayAssign.IsAssignedToAllUsers && dayAssign.TeamLeadId.HasValue }; await messageBus.Publish(memberModel); await jobStatusService.Assigned(dayAssignId, dayAssign.StatusId); }
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); } }