Beispiel #1
0
        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());
        }