Esempio n. 1
0
        /// <summary>
        /// Updates and existing advertisment
        /// </summary>
        /// <param name="saveModel">The save model <seealso cref="AdvertismentSaveModel"/></param>
        public void UpdateAdvertisment(AdvertismentSaveModel saveModel)
        {
            try
            {
                ArgumentsValidator.Validate(nameof(saveModel), saveModel);
                ArgumentsValidator.Validate(nameof(saveModel.AdvertismentName), saveModel.AdvertismentName);

                string requesterId = _userService.GetUserIdForUserNameAsync(saveModel.UserName).Result;

                ArgumentsValidator.Validate(nameof(requesterId), requesterId);

                /**
                 * Check for existing advert name for user requesting operation
                 */

                Advertisment existingAdvertisement = _adverismentRepository.GetAdvertismentByUserAndId(requesterId, saveModel.AdvertismentId.Value);

                if (existingAdvertisement == null)
                {
                    throw new Exception("No advertisement found");
                }

                existingAdvertisement.AdvertismentId          = existingAdvertisement.AdvertismentId;
                existingAdvertisement.AdvertismentName        = saveModel.AdvertismentName;
                existingAdvertisement.AdvertismentDescription = saveModel.Description;
                existingAdvertisement.InitialPrice            = saveModel.InitialPrice;
                existingAdvertisement.IsAuction       = saveModel.IsAuction;
                existingAdvertisement.IsBuyNow        = saveModel.IsBuyNow;
                existingAdvertisement.IsPromoted      = saveModel.IsPromoted;
                existingAdvertisement.BuyNowPrice     = saveModel.BuyNowPrice;
                existingAdvertisement.CurrentPrice    = saveModel.CurrentPrice;
                existingAdvertisement.CreatedDateTime = saveModel.CreatedDateTime;
                existingAdvertisement.CategoryId      = saveModel.CategoryId;
                existingAdvertisement.Status          = saveModel.Status;
                existingAdvertisement.UserId          = requesterId;

                _adverismentRepository.UpdateAdvertisment(existingAdvertisement);
            }
            catch (DbUpdateException ex)
            {
                Log.Warning(ex, AdvertismentConstants.CANNOT_UPDATE_ADVERT);
                throw;
            }
            catch (Exception ex)
            {
                Log.Error(ex, ex.Message);
                throw;
            }
        }