public void AddPTT(ProjectTechnologyTag projectTechnologyTag)
 {
     _ctx.ProjectTechnologyTags.Add(projectTechnologyTag);
 }
        public async Task <IActionResult> Edit(ProjectViewModel vm)
        {
            var project = new Project
            {
                Id           = vm.Id,
                Title        = vm.Title,
                Summary      = vm.Summary,
                Body         = vm.Body,
                IsCommercial = vm.IsCommercial,
                IsWebProject = vm.IsWebProject
            };


            if (vm.Image == null)
            {
                project.Image = vm.CurrentImage;
            }
            else
            {
                if (!string.IsNullOrEmpty(vm.CurrentImage))
                {
                    _fileManager.RemoveImage(vm.CurrentImage);
                }
                project.Image = await _fileManager.SaveImage(vm.Image);
            }

            if (project.Id > 0)
            {
                _projectRepo.UpdateProject(project);
            }
            else
            {
                _projectRepo.AddProject(project);
            }

            var aaa = _repoptt.GetAllPTT();

            foreach (var tag in vm.AvailableTechnologyTags)
            {
                var bbb = new ProjectTechnologyTag
                {
                    ProjectID       = project.Id,
                    TechnologyTagID = tag.Id
                };
                if (aaa.Any(x => x.ProjectID == bbb.ProjectID && x.TechnologyTagID == bbb.TechnologyTagID) && tag.Selected == false)
                {
                    _repoptt.RemovePTT(bbb.ProjectID, bbb.TechnologyTagID);
                }
                else if (!aaa.Any(x => x.ProjectID == bbb.ProjectID && x.TechnologyTagID == bbb.TechnologyTagID) && tag.Selected == true)
                {
                    _repoptt.AddPTT(bbb);
                }
            }

            if (await _repo.SaveChangesAsync())
            {
                return(Redirect($"/Portfolio/Project/{project.Id}"));
            }
            else
            {
                return(View(project));
            }
        }