public ResponseViewModel CreateTemplateForWeek(ScheduleTemplateViewModel model) { try { var templateRepo = _uow.GetService <IScheduleTemplateRepository>(); var templateDRepo = _uow.GetService <IScheduleTemplateDetailsRepository>(); var template = _mapper.Map <ScheduleTemplate>(model); template.DateCreated = DateTime.Now; template.DateUpdated = DateTime.Now; templateRepo.CreateTemplate(template); _uow.Save(); var details = _mapper.Map <List <ScheduleTemplateDetails> >(model.Details); foreach (var item in details) { item.ScheduleTemplateId = template.Id; } templateDRepo.CreateTemplateDetails(details); _uow.Save(); return(new ResponseViewModel { Message = "Create successfull", Success = true }); } catch (Exception e) { return(new ResponseViewModel { Success = false, Message = e.Message }); } }
public ResponseViewModel UpdateTempalteForWeek(ScheduleTemplateViewModel model) { try { var templateRepo = _uow.GetService <IScheduleTemplateRepository>(); var templateDRepo = _uow.GetService <IScheduleTemplateDetailsRepository>(); var template = _mapper.Map <ScheduleTemplate>(model); template.DateUpdated = DateTime.Now; templateRepo.UpdateTemplate(template); var oldDetails = templateDRepo.GetTemplateDetais(model.Id).ToList(); var newDetails = _mapper.Map <List <ScheduleTemplateDetails> >(model.Details); foreach (var item in newDetails) { if (item.Id != 0) { foreach (var detail in oldDetails) { if (item.Id == detail.Id) { templateDRepo.ActiveTemplateDetail(detail); oldDetails.Remove(detail); break; } else { templateDRepo.DeactiveTemplateeDetail(detail); } } } else { item.ScheduleTemplateId = model.Id; item.ScheduleTemplate = null; item.Specialty = null; templateDRepo.CreateTemplateDetail(item); } } foreach (var item in oldDetails) { templateDRepo.DeactiveTemplateeDetail(item); } _uow.Save(); return(new ResponseViewModel { Message = "Update successfull", Success = true }); } catch (Exception e) { return(new ResponseViewModel { Message = e.Message, Success = false }); } }
public IActionResult UpdateScheduleForWeek([FromBody] ScheduleTemplateViewModel model) { try { var templateDomain = Service <IScheduleTemplateDomain>(); var result = templateDomain.UpdateTempalteForWeek(model); return(Ok(result)); } catch (Exception e) { return(StatusCode(500, new ResponseViewModel { Message = e.Message, Success = false })); } }