public Task <ApiResponse <AdvertDto> > AddAdvertAsync(NewAdvertDto advert) { if (advert == null) { throw new ArgumentNullException(nameof(advert)); } return(PostAsync <NewAdvertDto, ApiResponse <AdvertDto> >(_advertOptions.AddAdvertUrl, advert)); }
public async Task <IActionResult> AddAdvertAsync([FromBody] NewAdvertDto advert) { string id = User.Claims.Where(x => x.Type.Equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")).FirstOrDefault().Value; if (!advert.UserId.Equals(id)) { throw new Exception($"{nameof(advert)} Access denied"); } return(ApiResult(await _advertManager.CreateAsync(advert))); }
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)); }