public async Task <IActionResult> Create(CreateCarouselItemViewModel carouselItem)
        {
            if (carouselItem.Type == null)
            {
                if (carouselItem.Image != null)
                {
                    Helpers.Methods.CreateItem(carouselItem.Image);
                }
                else
                {
                    return(NotFound());
                }

                var item = CreateNewCarouselObject(carouselItem);

                if (ModelState.IsValid)
                {
                    _context.Add(item);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                return(View(item));
            }
            return(RedirectToAction(nameof(Index)));
        }
 private CarouselItem CreateNewCarouselObject(CreateCarouselItemViewModel carouselItem)
 {
     return(new CarouselItem()
     {
         Id = carouselItem.Id != default ? carouselItem.Id : carouselItem.Id,
         Title = carouselItem.Title,
         Quote = carouselItem.Quote,
         ImageLink = carouselItem.Image != null ? carouselItem.Image.FileName : carouselItem.ImageLink,
     });
        public async Task <IActionResult> Edit(int id, CreateCarouselItemViewModel carouselItem)
        {
            #region Check Availability
            if (id != carouselItem.Id)
            {
                return(NotFound());
            }
            #endregion

            #region Put Process
            if (carouselItem.Type == null)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        #region Image Checking Process
                        if (carouselItem.Image != null)
                        {
                            if (carouselItem.Image.FileName != carouselItem.ImageLink)
                            {
                                Helpers.Methods.DeleteItem(carouselItem.ImageLink);
                            }

                            Helpers.Methods.CreateItem(carouselItem.Image);
                        }
                        #endregion

                        #region Save New Data
                        _context.Update(CreateNewCarouselObject(carouselItem));

                        await _context.SaveChangesAsync();

                        #endregion
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        #region Catching
                        if (!CarouselItemExists(carouselItem.Id))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                        #endregion
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                return(View(carouselItem));
            }
            #endregion

            return(RedirectToAction(nameof(Index)));
        }