public async Task UpdateAd(UpdateAdRequest request, CancellationToken cancellationToken) { var ad = await _repository.FindById(request.Id, cancellationToken); if (ad == null) { throw new NoAdFoundException(request.Id); } var user = await _identityService.GetCurrentIdentityUserId(cancellationToken); if (user.Id != ad.OwnerId.ToString()) { throw new UserNoHaveRightsToEditAdException( $"Попытка редактирония объявления [{request.Name}] пользователем без прав."); } var domainUser = await _userRepository.FindById(new Guid(user.Id), cancellationToken); if (!domainUser.Active) { throw new UserNoHaveRightToCreateAdException("Данный пользователь заблокирован, свяжитесь с администрацией для уточнения деталей."); } foreach (var photoId in request.Photos) { await _photoService.SetAdOwnerPhoto(new SetAdOwnerPhotoRequest() { Id = photoId, AdOwnerId = ad.Id, }, cancellationToken); } await _repository.Save(_mapper.Map(request, ad), cancellationToken); }
/// <summary> /// 更新 /// </summary> /// <param name="request"></param> /// <returns></returns> public UpdateAdResponse UpdateAd(UpdateAdRequest request) { using (var client = DbFactory.GetClient()) { var ad = client.Queryable <Ad>().InSingle(request.Id); if (ad == null) { throw new MozException("找不到该条信息"); } //ad.AdPlaceId = request.AdPlaceId; ad.Title = request.Title; ad.ImagePath = request.ImagePath; ad.TargetUrl = request.TargetUrl; ////ad.Order = request.Order; //ad.IsShow = request.IsShow; client.Updateable(ad).ExecuteCommand(); _eventPublisher.EntityUpdated(ad); return(new UpdateAdResponse()); } }