public async Task <IActionResult> Add([FromBody] ProcedureDto dto) { if (dto == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userManager.GetUserAsync(User); var procedure = dto.MapToProcedure(user.Id); using (var uow = _unitOfWork.Create()) { try { _procedureService.Add(procedure); uow.Commit(); } catch (DbUpdateException) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } catch (RecordNotFoundException ex) { return(NotFound(ex.Message)); } } return(Ok(procedure)); }
public ActionResult Add(ProcedureEntryViewModel procedure) { var master = _masterService.GetBy(procedure.MasterId); var requestedProcedure = _procedureService.Get().FirstOrDefault(p => p.ProcedureId == procedure.ProcedureId); var requestedProcedureTimeStart = (procedure.Date + procedure.StartTime.TimeOfDay).TimeOfDay; var requestedProcedureTimeEnd = (procedure.Date + procedure.StartTime.AddHours(requestedProcedure.Duration).TimeOfDay).TimeOfDay; if (procedure.Date + procedure.StartTime.TimeOfDay < DateTime.Now) { TempData["Message"] = "Выберите дату и время не раньше текущей"; return(RedirectToAction("Main", "Home")); } var procedureEntries = new List <ProcedureEntry>(); procedureEntries.AddRange( master.Schedules.SelectMany(a => a.ProcedureEntries)); var procedures = procedureEntries.Select(d => d.Schedule); foreach (var masterProcedure in procedures) { var procedureTimeStart = (masterProcedure.Date + masterProcedure.StartTime.TimeOfDay).TimeOfDay; var procedureTimeEnd = (masterProcedure.Date + masterProcedure.EndTime.TimeOfDay).TimeOfDay; if (masterProcedure.Date.Date == procedure.Date.Date && requestedProcedureTimeStart >= procedureTimeStart && requestedProcedureTimeStart <= procedureTimeEnd && requestedProcedureTimeEnd >= procedureTimeStart && requestedProcedureTimeEnd >= procedureTimeEnd) { TempData["Message"] = "Мастер занят в это время, вы можете просмотреть <a id='modal'>его расписание</a>"; TempData["MasterSchedule"] = master.Schedules.Where(s => s.Date.Date == procedure.Date.Date); return(RedirectToAction("Main", "Home")); } } var procedureToAdd = Mapper.Map <ProcedureEntryViewModel, ProcedureDto>(procedure); procedureToAdd.ClientLogin = User.Identity.Name; _procedureService.Add(procedureToAdd); TempData["Message"] = "Ваша запись принята"; return(RedirectToAction("Main", "Home")); }
public async Task <ActionResult> Create(ProcedureViewModel procedureViewModel) { if (ModelState.IsValid) { await _procedureService.Add(procedureViewModel.MapToDto()); return(RedirectToAction("Index")); } var procedureCategories = _procedureCategoryService.GetItems(); ViewBag.ProcedureCategoryId = new SelectList(procedureCategories, "Id", "Name", procedureViewModel.ProcedureCategoryId); return(View(procedureViewModel)); }
public ProcedureBl Add(ProcedureBl item) { var dto = _service.Add(item?.ToDto()); return(dto != null ? new ProcedureBl(dto) : null); }