/// <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; } }