public async Task <IActionResult> CreateRecord(CreateRecordDto createDto) { try { var recId = await _recordService.AddRecord(createDto.Date, createDto.RecordName, createDto.RecordText); if (createDto.ThemesIds.Length > 0) { await _recordsThemesService.AddRecordTheme(recId, createDto.ThemesIds); } var newRecordUri = $@"{await _appSettingsService.GetHostAndPort()}/api/v1.0/records/{recId}"; return(Created(newRecordUri, recId)); } catch (ArgumentException exc) { return(BadRequest(exc.Message)); } }
public async Task <IActionResult> CreateRecordDto([FromBody] CreateRecordDto createRecord) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var customersByPhone = await customerRepository.FindByPhoneAsync(Shop.OrganizationId, createRecord.CustomerPhone); Customer customer; if (customersByPhone.Length > 0) { customer = customersByPhone.First(); } else { customer = await customerRepository.CreateAsync(Shop.OrganizationId, new Customer { Name = createRecord.CustomerName, Phone = createRecord.CustomerPhone, }); } var(_, validationResult) = await calendarService.CreateAsync(Shop.Id, createRecord.Date, createRecord.WorkerId, new ServiceCalendarRecord { IsOnlineRecord = true, Period = mapper.Map <TimePeriod>(createRecord.Period), ProductIds = new[] { createRecord.ServiceId }, CustomerId = customer.Id, }); if (!validationResult.IsSuccess) { return(BadRequest(mapper.Map <ValidationResultDto>(validationResult))); } return(Ok()); }