public async Task <Guid> ChangeDayAssignDate(INewDayAssignModel model) { var year = model.Year != default(int) ? model.Year : DateTime.UtcNow.Year; if (model.WeekDay.HasValue) { model.Date = CalendarHelper.GetDateByWeekAndDayNumber(year, model.WeekNumber, model.WeekDay.Value); } var dayAssign = model.DayAssignId.HasValue ? dayAssignProvider.Get(model.DayAssignId.Value) : null; if (dayAssign == null) { return(await CreateDayAssign(model)); } else { model.Id = model.DayAssignId.Value; await messageBus.Publish(model.Map <ChangeDayAssignDateCommand>()); if (dayAssign.StatusId == JobStatus.Expired) { await jobStatusService.Pending(dayAssign.Id, dayAssign.StatusId); } return(model.DayAssignId.Value); } }
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); }