public IActionResult Edit(int?id)
        {
            try
            {
                if (id != null)
                {
                    List <SlideLanguage> slideLanguages = _baselDb.Slides
                                                          .SelectMany(x => x.SlideLanguages
                                                                      .Where(z => z.Slide.Id == id))
                                                          .Include(a => a.Slide)
                                                          .ToList();

                    SlideModelEdit slideModelEdit = new SlideModelEdit()
                    {
                        Id = slideLanguages.Select(x => x.SlideId).FirstOrDefault(),

                        EngHeader = slideLanguages.Where(x => x.LanguageId == 1).Select(x => x.Header).SingleOrDefault(),
                        AzHeader  = slideLanguages.Where(x => x.LanguageId == 2).Select(x => x.Header).SingleOrDefault(),
                        RuHeader  = slideLanguages.Where(x => x.LanguageId == 3).Select(x => x.Header).SingleOrDefault(),

                        EngTitle = slideLanguages.Where(x => x.LanguageId == 1).Select(x => x.Title).SingleOrDefault(),
                        AzTitle  = slideLanguages.Where(x => x.LanguageId == 2).Select(x => x.Title).SingleOrDefault(),
                        RuTitle  = slideLanguages.Where(x => x.LanguageId == 3).Select(x => x.Title).SingleOrDefault(),

                        EngDescription = slideLanguages.Where(x => x.LanguageId == 1).Select(x => x.Description).SingleOrDefault(),
                        AzDescription  = slideLanguages.Where(x => x.LanguageId == 2).Select(x => x.Description).SingleOrDefault(),
                        RuDescription  = slideLanguages.Where(x => x.LanguageId == 3).Select(x => x.Description).SingleOrDefault(),

                        EngFooter = slideLanguages.Where(x => x.LanguageId == 1).Select(x => x.Footer).SingleOrDefault(),
                        AzFooter  = slideLanguages.Where(x => x.LanguageId == 2).Select(x => x.Footer).SingleOrDefault(),
                        RuFooter  = slideLanguages.Where(x => x.LanguageId == 3).Select(x => x.Footer).SingleOrDefault(),

                        OldImage = slideLanguages.Select(x => x.Slide).Select(z => z.Image).FirstOrDefault()
                    };
                    return(View(slideModelEdit));
                }
            }
            catch (Exception exp)
            {
                return(View(exp.Message));
            }
            return(View());
        }
        public async Task <IActionResult> Edit(SlideModelEdit slideModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (slideModel?.Id != null)
                    {
                        List <SlideLanguage> slideLanguages = _baselDb.Slides
                                                              .SelectMany(x => x.SlideLanguages
                                                                          .Where(z => z.Slide.Id == slideModel.Id))
                                                              .Include(a => a.Slide)
                                                              .ToList();

                        foreach (SlideLanguage item in slideLanguages)
                        {
                            if (item.LanguageId == 1)
                            {
                                item.Header      = slideModel.EngHeader;
                                item.Title       = slideModel.EngTitle;
                                item.Description = slideModel.EngDescription;
                                item.Footer      = slideModel.EngFooter;
                            }
                            else if (item.LanguageId == 2)
                            {
                                item.Header      = slideModel.AzHeader;
                                item.Title       = slideModel.AzTitle;
                                item.Description = slideModel.AzDescription;
                                item.Footer      = slideModel.AzFooter;
                            }
                            else if (item.LanguageId == 3)
                            {
                                item.Header      = slideModel.RuHeader;
                                item.Title       = slideModel.RuTitle;
                                item.Description = slideModel.RuDescription;
                                item.Footer      = slideModel.RuFooter;
                            }
                        }

                        Slide slide = slideLanguages.Select(x => x.Slide).FirstOrDefault();

                        string imageName = slideModel.Image == null ? slideModel.OldImage : slideModel.Image.FileName;

                        if (imageName != null)
                        {
                            if (slide.Image != imageName)
                            {
                                if (slideModel.Image.ContentType.Contains("image/"))
                                {
                                    string ImageName = string.Empty;

                                    string fileLocationDelete = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\lib\\image", slide.Image);

                                    if (System.IO.File.Exists(fileLocationDelete))
                                    {
                                        System.IO.File.Delete(fileLocationDelete);

                                        ImageName = DateTime.Now.ToString("yyyyMMddHHmmssss") + slideModel.Image.FileName;

                                        string fileLocationAdd = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\lib\\image", ImageName);

                                        using (FileStream fileStream = new FileStream(fileLocationAdd, FileMode.Create))
                                        {
                                            await slideModel.Image.CopyToAsync(fileStream);
                                        }

                                        slide.Image = ImageName;

                                        _baselDb.Slides.Update(slide);

                                        await _baselDb.SaveChangesAsync();

                                        return(RedirectToAction("Index"));
                                    }
                                    else
                                    {
                                        ModelState.AddModelError("", "File is not exists");
                                    }
                                }
                                else
                                {
                                    ModelState.AddModelError("", "You can upload only image");
                                }
                            }
                            await _baselDb.SaveChangesAsync();

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            ModelState.AddModelError("", "Image is not found");
                        }
                    }
                }
            }
            catch (Exception exp)
            {
                return(View(exp.Message));
            }
            return(RedirectToAction("Edit"));
        }