public ActionResult AddAdvertisment(AdvertismentSaveModel advertisment) { try { if (advertisment == null) { throw new ArgumentNullException(nameof(advertisment)); } _advertismentService.CreateAdvertisment(advertisment); } catch (ArgumentNullException ex) { Log.Error(ex, AdvertismentConstants.ARGUMENT_NULL); return(StatusCode(400)); } catch (DbUpdateException) { return(StatusCode(507)); } catch (Exception) { return(StatusCode(500)); } return(StatusCode(201)); }
/// <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; } }
public ActionResult UpdateAdvertisment(AdvertismentSaveModel advertisment) { try { _advertismentService.UpdateAdvertisment(advertisment); return(StatusCode(StatusCodes.Status200OK)); } catch (ArgumentNullException ex) { Log.Error(ex, AdvertismentConstants.ARGUMENT_NULL); return(StatusCode(StatusCodes.Status400BadRequest)); } catch (DbUpdateException) { return(StatusCode(StatusCodes.Status507InsufficientStorage)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public void CreateAdvertisment(AdvertismentSaveModel saveModel) { try { // check the requester id string requesterId = _userService.GetUserIdForUserNameAsync(saveModel.UserName).Result; /** * Check for existing advert name for user requesting operation */ if (requesterId == null || _adverismentRepository.GetAdvertimentByUserAndName(requesterId, saveModel.AdvertismentName) != null) { throw new Exception("You have already added advertisment with such name"); } // translate object Advertisment advert = new Advertisment { AdvertismentName = saveModel.AdvertismentName, AdvertismentDescription = saveModel.Description, InitialPrice = saveModel.InitialPrice, IsAuction = saveModel.IsAuction, IsBuyNow = saveModel.IsBuyNow, IsPromoted = saveModel.IsPromoted, BuyNowPrice = saveModel.BuyNowPrice, CurrentPrice = saveModel.CurrentPrice, CreatedDateTime = saveModel.CreatedDateTime, CategoryId = saveModel.CategoryId, Status = saveModel.Status, UserId = requesterId }; // get the created advert id - will be required for saving attached photos int id = _adverismentRepository.CreateAdvertisment(advert); // check if advertisment contains any photos attached - if nothing found - finish if (saveModel.Photos == null || saveModel.Photos.Count <= 0) { return; } List <AdvertPhotos> photos = new List <AdvertPhotos>(); saveModel.Photos.ForEach(item => { photos.Add(new AdvertPhotos { AdvertismentId = id, ContentLength = item.ContentLength, ContentType = item.ContentType, PhotoName = item.Name, UserId = requesterId, Content = ConvertBase64StringToByteArray(item.Src), Advertisment = advert }); }); // save the photos _adverismentRepository.SaveAdvertPhotos(photos); } catch (DbUpdateException ex) { Log.Warning(ex, AdvertismentConstants.CANNOT_SAVE_ADVERT); throw; } catch (Exception ex) { Log.Error(ex, ex.Message); throw; } }