예제 #1
0
        public async Task <IActionResult> Create([FromBody] AdvertCommand command)
        {
            try
            {
                await _repository.AddAsync(new Advert
                {
                    Active     = command.Active,
                    Date       = command.Date,
                    PropertyId = command.PropertyId,
                    CreatorId  = (await _userManager.FindByNameAsync(User.Identity.Name)).Id,
                    Items      = command.Items?.Select(x => new AdvertItem
                    {
                        Description = x.Value
                    }).ToList()
                });

                await _unitOfWork.Commit();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
예제 #2
0
        public async Task <AdvertResponse> SaveAsync(Advert advert)
        {
            try
            {
                await _advertRepository.AddAsync(advert);

                await _unitOfWork.CompleteAsync();

                return(new AdvertResponse(advert));
            }
            catch (Exception e)
            {
                return(new AdvertResponse($"An error occured when saving the advert: {e.Message}"));
            }
        }
예제 #3
0
        public async Task <AdvertDto> CreateAsync(NewAdvertDto dto)
        {
            if (dto == null)
            {
                throw new ArgumentNullException(nameof(dto));
            }

            if (string.IsNullOrWhiteSpace(dto.Header) || string.IsNullOrWhiteSpace(dto.Description))
            {
                throw new Exception($"{nameof(dto)} Заполните все данные");
            }

            if (dto.Header.Length > 30)
            {
                throw new Exception($"{nameof(dto)} Заголовок не более 30 символов");
            }

            if (dto.Description.Length > 650)
            {
                throw new Exception($"{nameof(dto)} Описание не более 650 символов");
            }

            var advert = _mapper.Map <Advert>(dto);
            var result = await _advertRepository.AddAsync(advert);

            try
            {
                await _advertRepository.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                string mes = ex.Message;
                throw new Exception(ex.Message);
            }
            return(_mapper.Map <AdvertDto>(result));
        }