public async Task <CreateAdResponse> CreateAd(CreateAdRequest request, CancellationToken cancellationToken) { var identityUser = await _identityService.GetCurrentIdentityUserId(cancellationToken); if (identityUser == null) { throw new NoUserForAdCreationException( $"Попытка создания объявления [{request.Name}] без пользователя."); } var domainUser = await _userRepository.FindById(new Guid(identityUser.Id), cancellationToken); if (!domainUser.Active) { throw new UserNoHaveRightToCreateAdException("Данный пользователь заблокирован, свяжитесь с администрацией для уточнения деталей."); } var ad = _mapper.Map <Domain.Ad>(request); ad.OwnerId = new Guid(identityUser.Id); ad.Status = Domain.Shared.Statuses.OnSale; await _repository.Save(ad, cancellationToken); foreach (var photoId in request.Photos) { await _photoService.SetAdOwnerPhoto(new SetAdOwnerPhotoRequest() { Id = photoId, AdOwnerId = ad.Id, }, cancellationToken); } return(_mapper.Map <CreateAdResponse>(ad)); }
/// <summary> /// 插入 /// </summary> /// <param name="request"></param> /// <returns></returns> public CreateAdResponse CreateAd(CreateAdRequest request) { using (var client = DbFactory.GetClient()) { var ad = new Ad { AdPlaceId = request.AdPlaceId, Title = request.Title, ImagePath = request.ImagePath, TargetUrl = request.TargetUrl, OrderIndex = 0, IsShow = true }; ad.Id = client.Insertable(ad).ExecuteReturnBigIdentity(); _eventPublisher.EntityCreated(ad); return(new CreateAdResponse()); } }
public Task <ApiResponse> CreateAsync(CreateAdRequest request) => _client.PostAsync("ads-service/ads", request);