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}"));
        }
예제 #3
0
        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();
        }