public async Task <IActionResult> PostCreate() { if (!ModelState.IsValid) { return(View(ProjectViewModel)); } var project = ProjectViewModel.Project; // get the selected types ids string typesList = ""; typesList += ProjectViewModel.TypesList; if (typesList.Length > 0) { var projectTypesIds = typesList.Split(","); // Insert relations to ProjectsType table foreach (var id in projectTypesIds) { var projectsType = new ProjectsType() { ProjectId = ProjectViewModel.Project.Id, ProjectTypeId = long.Parse(id) }; project.ProjectsTypes.Add(projectsType); } } await _context.Projects.AddAsync(project); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IActionResult> PostEdit() { if (!ModelState.IsValid) { return(View(ProjectViewModel)); } var project = ProjectViewModel.Project; var projectInDb = await _context.Projects.Include(p => p.ProjectsTypes).SingleOrDefaultAsync(p => p.Id == project.Id); if (projectInDb == null) { return(NotFound()); } // update changes projectInDb.Name = project.Name; projectInDb.CustomerId = project.CustomerId; // remove the old types projectInDb.ProjectsTypes.Clear(); // get the selected types ids string typesList = ""; typesList += ProjectViewModel.TypesList; if (typesList.Length > 0) { var projectTypesIds = typesList.Split(","); // Insert relations to ProjectsType table foreach (var id in projectTypesIds) { var projectsType = new ProjectsType() { ProjectId = ProjectViewModel.Project.Id, ProjectTypeId = long.Parse(id) }; projectInDb.ProjectsTypes.Add(projectsType); } } await _context.SaveChangesAsync(); return(RedirectToAction("Get", new { id = projectInDb.Id })); }