public async Task <CreateOperationalTaskViewModel> CreateAdHocTask(IOperationalTaskModel model) { model.JobId = await taskIdGenerator.AdHoc(); var addressList = new List <JobAddress>(); addressList.Add(new JobAddress { HousingDepartmentId = model.DepartmentId, Address = model.Address }); await messageBus.Publish(new CreateJobCommand(model.JobId, model.CategoryId, model.Title, JobTypeEnum.AdHock, model.CreatorId, RoleType.Coordinator, addressList, null, null)); var jobAssignId = Guid.NewGuid(); CreateOperationalTaskAssignCommand adHockAssignCommand = GetCreateOperationalTaskAssignCommand(model, model.JobId, jobAssignId); await messageBus.Publish(adHockAssignCommand); var dayAssignId = Guid.NewGuid(); CreateDayAssignCommand dayAssign = GetCreateDayAssignCommand(model, dayAssignId, jobAssignId); await messageBus.Publish(dayAssign); await SetStatusAfterCreation(dayAssignId, model.TeamLeadId); CreateOperationalTaskViewModel result = new CreateOperationalTaskViewModel { Id = model.JobId, DayAssignId = dayAssignId, DepartmentId = model.DepartmentId }; return(result); }
private CreateDayAssignCommand GetCreateDayAssignCommand(IOperationalTaskModel model, Guid assignId, Guid jobAssignId, int weekNumber) { DateTime assignedDate = GetAssignedDate(model.Date.Value, model.Time.Value); var dayOfWeek = assignedDate.GetWeekDayNumber(); var result = new CreateDayAssignCommand(assignId, model.JobId, jobAssignId, assignedDate) { EstimatedMinutes = (int?)model.Estimate, DepartmentId = model.DepartmentId, GroupId = model.GroupId, UserIdList = model.UserIdList.ToList(), Address = model.Address, StatusId = JobStatus.Pending, WeekNumber = weekNumber, TeamLeadId = model.TeamLeadId, IsAssignedToAllUsers = model.IsAssignedToAllUsers, WeekDay = dayOfWeek, Comment = model.Comment, ResidentName = model.ResidentName, ResidentPhone = model.ResidentPhone, Type = model.Type, IsUrgent = model.IsUrgent }; return(result); }
public async Task <CreateOperationalTaskViewModel> CreateOtherTask(IOperationalTaskModel model) { int weekNumber = CalendarHelper.GetWeekNumber(model.Date.Value); model.JobId = await taskIdGenerator.Other(); var addressList = new List <JobAddress>(); addressList.Add(new JobAddress { HousingDepartmentId = model.DepartmentId, Address = model.Address }); await messageBus.Publish(new CreateJobCommand(model.JobId, Guid.Empty, model.Title, JobTypeEnum.Other, model.CreatorId, RoleType.Coordinator, addressList, null, null)); var jobAssignId = Guid.NewGuid(); CreateOperationalTaskAssignCommand tenantkAssignCommand = GetCreateOperationalTaskAssignCommand(model, model.JobId, jobAssignId, weekNumber); await messageBus.Publish(tenantkAssignCommand); var dayAssignId = Guid.NewGuid(); CreateDayAssignCommand dayAssign = GetCreateDayAssignCommand(model, dayAssignId, jobAssignId, weekNumber); await messageBus.Publish(dayAssign); await SetStatusAfterCreation(dayAssignId, model.TeamLeadId); CreateOperationalTaskViewModel result = new CreateOperationalTaskViewModel { Id = model.JobId, DepartmentId = model.DepartmentId, DayAssignId = dayAssignId }; return(result); }
private CreateDayAssignCommand GetCreateDayAssignCommand(IOperationalTaskModel model, Guid assignId, Guid jobAssignId) { var dayOfWeek = model.Date.Value.GetWeekDayNumber(); var result = new CreateDayAssignCommand(assignId, model.JobId, jobAssignId, model.Date) { EstimatedMinutes = (int?)model.Estimate, DepartmentId = model.DepartmentId, GroupId = model.GroupId, UserIdList = model.UserIdList.ToList(), Address = model.Address, StatusId = JobStatus.Pending, WeekNumber = CalendarHelper.GetWeekNumber(model.Date.Value), WeekDay = dayOfWeek, TeamLeadId = model.TeamLeadId, IsAssignedToAllUsers = model.IsAssignedToAllUsers }; return(result); }