Beispiel #1
0
        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));
        }
Beispiel #2
0
        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"));
        }