public async Task <ActionResult <JobResponseModel> > Schedule(JobCreateRequestModel model) { var services = await this.garageService.Services(model.DepartmentId); JobScheduleData scheduleJobModel = new JobScheduleData() { CreatedByEmployeeId = this.currentEmployeeService.CurrentEmployeeId, CreateByEmployeeName = this.currentEmployeeService.EmployeeName, DeadLine = DateTime.UtcNow, DepartmentId = model.DepartmentId, PurchasedServices = services.Where(x => model.PurchasedServices.Contains(x.Id)).Select(s => new PurchasedServiceModel() { Name = s.Name, Id = s.Id, Price = s.Price, }), VehicleId = model.VehicleId, }; JobResponseModel scheludeJob = await jobSchedulerService.Schedule( scheduleJobModel, this.currentEmployeeService.GarageRole.ToString(), this.currentEmployeeService.CurrentGarageId.ToString(), this.currentEmployeeService.CurrentEmployeeId.ToString(), this.currentEmployeeService.EmployeeName); return(Created(nameof(Schedule), scheludeJob)); }
public async Task <JobResponseModel> Schedule(JobScheduleData model) { Job job = new Job() { CreatedDate = DateTime.UtcNow, CreatedByEmployeeId = model.CreatedByEmployeeId, CreateByEmployeeName = model.CreateByEmployeeName, DeadLine = DateTime.UtcNow, DepartmentId = model.DepartmentId, JobStatus = JobStatus.Pending, VehicleId = model.VehicleId, }; job.PurchasedServices = model.PurchasedServices.Select(ps => new JobService() { Name = ps.Name, Price = ps.Price, ServiceId = ps.Id }).ToList(); this.dbContext.Add(job); await this.dbContext.SaveChangesAsync(); var scheduledJob = new JobResponseModel() { AssignedEmployeeId = job.AssignedEmployeeId, CreatedByEmployeeId = job.CreatedByEmployeeId, CreateByEmployeeName = job.CreateByEmployeeName, AssignedEmployeeName = job.AssignedEmployeeName, CreatedDate = job.CreatedDate, DeadLine = job.DeadLine, DepartmentId = job.DepartmentId, FinishedDate = job.FinishedDate, Id = job.Id, JobStatus = job.JobStatus, PurchasedServices = job.PurchasedServices.Select(s => new PurchasedServiceModel() { Name = s.Name, Price = s.Price, Id = s.ServiceId, }), StratedDate = job.StratedDate, VehicleId = job.VehicleId, }; return(scheduledJob); }