public async Task <IActionResult> CreateDayTemplate([FromBody] DayTemplateModel template) { var result = await _executor .Validate(ModelState) .Map <DayTemplateModelToDayTemplateMapping>(() => template) .Add <ValidateTasksNotDeletedOperation, DayTemplate, DayTemplate>(last => last) .Add <ValidateScheduledTasksOperation, DayTemplate, ScheduledTasksValidationModel>(t => new ScheduledTasksValidationModel(t, t.Tasks, null)) .Add <CreateDayTemplateOperation, DayTemplate, (Guid, DayTemplate)>(t => (User.GetTenantId().Value, t)) .Execute(); return(result.CreateHttpResult()); }
public JsonResult CreateDayTemplate(DayTemplateModel rModel) { if (!ModelState.IsValid) { return(Json(new { ok = false, message = "Validation has failed!" })); } var dayTemplate = Mapper.Map <DayTemplate>(rModel); _dayTemplateRepository.Add(dayTemplate); dayTemplate.Routes.ToList().ForEach(x => x.DayTemplateId = dayTemplate.Id); _dayTemplateRepository.SaveChanges(); return(Json(new { ok = true, templateId = dayTemplate.Id, routeIds = dayTemplate.Routes.OrderBy(x => x.Time).Select(x => x.Id).ToArray() })); }
public JsonResult DeleteDayTemplate(DayTemplateModel rModel) { if (!ModelState.IsValid) { return(Json(new { ok = false, message = "Validation has failed!" })); } var dayTemplate = Mapper.Map <DayTemplate>(rModel); _routeBaseRepository.RemoveRange(_routeBaseRepository.Get().Where(x => x.DayTemplateId == dayTemplate.Id)); _routeBaseRepository.SaveChanges(); dayTemplate.Routes = null; _dayTemplateRepository.Remove(dayTemplate); _dayTemplateRepository.SaveChanges(); return(Json(new { ok = true })); }
public JsonResult SaveDayTemplate(DayTemplateModel rModel) { if (!ModelState.IsValid) { return(Json(new { ok = false, message = "Validation has failed!" })); } var dayTemplate = Mapper.Map <DayTemplate>(rModel); _dayTemplateRepository.Update(dayTemplate); dayTemplate.Routes.ToList().ForEach(x => x.DayTemplateId = dayTemplate.Id); var routesToDelete = _routeBaseRepository.Get() .Where(x => x.DayTemplateId.HasValue && x.DayTemplateId.Value == dayTemplate.Id).ToList().Where(e => dayTemplate.Routes.ToList().All(x => x.Id != e.Id)); _routeBaseRepository.RemoveRange(routesToDelete); _routeBaseRepository.AddOrUpdateRange(dayTemplate.Routes); _dayTemplateRepository.SaveChanges(); _routeBaseRepository.SaveChanges(); return(Json(new { ok = true })); }