Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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());
            }
        }