public async Task <IActionResult> Delete(int id, AdvertisementEditServiceModel model) { var creatorUserName = await this.advertisement.CreatorUserName(id); var currentUserName = this.User.Identity.Name; if (creatorUserName != currentUserName) { TempData.AddErrorMessage(WebConstants.ErrorMessageNotAllowedToPage); return(RedirectToAction(nameof(All))); } var exists = await this.advertisement.Exists(id); if (!exists) { TempData.AddErrorMessage(WebConstants.ErrorMessageAdvertisementDontExist); return(RedirectToAction(nameof(All))); } await this.advertisement.Delete(id); TempData.AddSuccessMessage(string.Format(WebConstants.SuccessMessageAdvertisementDeletePlaceholder, model.Name)); return(RedirectToAction(nameof(All))); }
public async Task <IActionResult> Edit(EditBindingModel advertisement) { if (!ModelState.IsValid) { return(Redirect($"/Advertisement/Edit?id={advertisement.Id}")); } var advertisementServiceModel = new AdvertisementEditServiceModel() { Id = advertisement.Id, Name = advertisement.Name, Price = advertisement.Price, Description = advertisement.Description, Condition = advertisement.Condition, CategoryId = advertisement.CategoryId, SubCategoryId = advertisement.SubCategoryId, TownId = advertisement.TownId, Address = advertisement.Address, Number = advertisement.Number, UserId = advertisement.UserId, Images = advertisement.Images }; await advertisementService.EditAsync(advertisementServiceModel); await NotifyOnAdEditAsync(advertisement.Id); return(Redirect($"/Advertisement/Details?id={advertisement.Id}")); }
public async Task EditAsync(AdvertisementEditServiceModel advertisement) { List <string> imageUrls = new List <string>(); if (advertisement.Images != null && advertisement.Images.Count != 0) { imageUrls = advertisement.Images .Select(async x => await cloudinaryService.UploadPictureAsync(x, x.FileName)) .Select(x => x.Result) .ToList(); } var advertisementFromDb = context.Advertisements.SingleOrDefault(a => a.Id == advertisement.Id); if (advertisementFromDb == null) { return; } advertisementFromDb.Name = advertisement.Name; advertisementFromDb.Address = advertisement.Address; advertisementFromDb.CategoryId = advertisement.CategoryId; advertisementFromDb.SubCategoryId = advertisement.SubCategoryId; advertisementFromDb.Condition = advertisement.Condition; advertisementFromDb.Price = advertisement.Price; advertisementFromDb.Description = advertisement.Description; if (imageUrls.Count != 0) { advertisementFromDb.Images = string.Join(GlobalConstants.ImageUrlInDatabaseSeparator, imageUrls); } advertisementFromDb.EditedOn = DateTime.UtcNow; advertisementFromDb.TownId = advertisement.TownId; advertisementFromDb.Number = advertisement.Number; context.Advertisements.Update(advertisementFromDb); await context.SaveChangesAsync(); }