public IActionResult UpdateCompetition(int id) { ArtGalleryContext context = new ArtGalleryContext(); UpdateCompetitionViewModel CompetitionVM = new UpdateCompetitionViewModel(); var Competition = context.Competition.Where(A => A.CompetitionId == id).FirstOrDefault(); var images = context.Image.Where(I => I.PostId == id).ToList(); //var tags = context.PostTag.Include(T => T.Tag).Where(PT => PT.PostId == id).ToList(); //CompetitionVM.UpdatedPost.Category = Competition.Category.Name; CompetitionVM.UpdatedPost.CompetitionTitle = Competition.Title; CompetitionVM.UpdatedPost.CompetitionCaption = Competition.Caption; //CompetitionVM.UpdatedPost.SubCategory = Competition.SubCategory.Name; CompetitionVM.UpdatedPost.CompetitionImage = (IFormFile)context.Image.Where(I => I.PostId == id).ToList(); //CompetitionVM.PostTags = (IEnumerable<PostTag>)tags; var CurrentUserId = _userManager.GetUserId(User as ClaimsPrincipal); var AccountFirstName = context.Account.Where(A => A.Id == CurrentUserId).Select(A => A.FirstName).FirstOrDefault(); var ProfileImageName = context.ProfileImage.Where(PI => PI.AccountId == CurrentUserId).Select(PI => PI.ImageName).FirstOrDefault(); CompetitionVM.FullName = AccountFirstName; CompetitionVM.ProfilePicture = ProfileImageName; return(View(CompetitionVM)); }
public async Task <IActionResult> UpdateCompetition(UpdateCompetitionViewModel updateCompetition) { ////EF core start ArtGalleryContext GetCompetition = new ArtGalleryContext(); AddCompetitionViewModel AVM = new AddCompetitionViewModel(); var TargetCompetition = GetCompetition.Competition.FirstOrDefault(O => O.CompetitionId == updateCompetition.UpdatedPost.CompetitionId); //Find the psot //var PostTag = GetCompetition.PostTag.Include(a => a.Tag).FirstOrDefault(O => O.PostId == updatePost.Post.PostId); //Find the first PostTag for the target Psot //var PostTags = GetCompetition.PostTag.Where(A => A.PostId == updatePost.Post.PostId).Include(A => A.Tag).ToList(); //Get list of PostTag for the target Psot //var CompetitionImage = GetCompetition.Image.Where(I => I.CompetitionId == updateCompetition.UpdatedPost.CompetitionId).Where(I => I.IsPrimary == true).FirstOrDefault(); //Post.Body = Post.Body; TargetCompetition.Title = updateCompetition.UpdatedPost.CompetitionTitle; //Replace edited title to target TargetCompetition.Caption = updateCompetition.UpdatedPost.CompetitionCaption; //Replace edited Caption to target //TargetCompetition.Category.Name = updateCompetition.UpdatedPost.Category; //Replace edited Category to target //TargetCompetition.SubCategory.Name = updateCompetition.UpdatedPost.SubCategory; //Replace edited title to target GetCompetition.Competition.Update(TargetCompetition); GetCompetition.SaveChanges(); #region EditPosteImage if (updateCompetition.UpdatedPost.CompetitionImage != null) { var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "img/Competition"); string path = Path.Combine(uploadsRootFolder, /*CompetitionImage.Name*/ ""); if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } //GetCompetition.Image.Remove(CompetitionImage); GetCompetition.SaveChanges(); if (!Directory.Exists(uploadsRootFolder)) { Directory.CreateDirectory(uploadsRootFolder); } if (updateCompetition.UpdatedPost.CompetitionImage == null || updateCompetition.UpdatedPost.CompetitionImage.Length == 0) { await Response.WriteAsync("Error"); } var filePath = Path.Combine(uploadsRootFolder, updateCompetition.UpdatedPost.CompetitionImage.FileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await updateCompetition.UpdatedPost.CompetitionImage.CopyToAsync(fileStream).ConfigureAwait(false); } Guid guidImage = new Guid(); ArtGalleryContext CompetitionImageContext = new ArtGalleryContext(); Image ImageCompetition = new Image(); ImageCompetition.Name = updateCompetition.UpdatedPost.CompetitionImage.FileName; ImageCompetition.ImageName = guidImage + updateCompetition.UpdatedPost.CompetitionImage.FileName; ImageCompetition.PostId = updateCompetition.UpdatedPost.CompetitionId; ImageCompetition.IsPrimary = true; CompetitionImageContext.Image.Add(ImageCompetition); CompetitionImageContext.SaveChanges(); } #endregion #region EditTags //foreach (var AT in PostTags) //{ // bool exist = false; // foreach (var inputtag in updatePost.Tags) // { // if (inputtag == AT.Tag.Name) // { // exist = true; // } // } // if (exist == false) // { // GetPost.PostTag.Remove(AT); // await GetPost.SaveChangesAsync(); // } //} #endregion ////EF core end return(new RedirectResult("Competition")); }