public async Task <IActionResult> DeleteConfirmed(EditProjectDetailViewModel EPDVMD) { var projectAddedTo = await _context.Projects.SingleOrDefaultAsync(Pro => Pro.ID == EPDVMD.ProjectID); var participantToAdd = await _context.Members.SingleOrDefaultAsync(Mem => Mem.ID == EPDVMD.SelectedID); var projectAddedToId = await _context.ProjectRoster.SingleOrDefaultAsync(Pro => Pro.ProjectID == EPDVMD.ProjectID); ProjectRoster chick = new ProjectRoster { ProjectID = projectAddedTo.ID, Project = projectAddedTo, ProjectParticipantID = participantToAdd.ID, ProjectParticipant = participantToAdd }; //this writes a new record to the database _context.ProjectRoster.Attach(chick); _context.ProjectRoster.Remove(chick); // _context.Projects.Remove(projectAddedTo); // _context.ProjectRoster.Remove(projectAddedToId); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> AddProjectMemberParticipant(EditProjectDetailViewModel model) { if (ModelState.IsValid) { try{ var ProjectId = model.ProjectID; var project = await _context.Projects.SingleOrDefaultAsync(m => m.ID == ProjectId); var MemberId = model.SelectedID; var member = await _context.Members.SingleOrDefaultAsync(m => m.ID == MemberId); ProjectRoster participant = new ProjectRoster { ProjectID = ProjectId, Project = project, ProjectParticipantID = MemberId, ProjectParticipant = member }; _context.ProjectRoster.Add(participant); _context.SaveChanges(); } catch (Exception exp) { throw(exp); } return(RedirectToAction(nameof(Details), new { id = model.ProjectID })); } return(View()); }
public async Task <IActionResult> AddConfirmed(EditProjectDetailViewModel EPDVMD) { var projectAddedTo = await _context.Projects.SingleOrDefaultAsync(Pro => Pro.ID == EPDVMD.ProjectID); //change the Members to Clients to add clients and switch back to add Members var participantToAdd = await _context.Members.SingleOrDefaultAsync(Mem => Mem.ID == EPDVMD.SelectedID); // var clientToAdd = await _context.Clients.SingleOrDefaultAsync(Cli => Cli.ID == EPDVMD.SelectedID); ProjectRoster dude = new ProjectRoster { ProjectID = projectAddedTo.ID, Project = projectAddedTo, ProjectParticipantID = participantToAdd.ID, ProjectParticipant = participantToAdd /* * ClientID = clientToAdd.ID, * Client = clientToAdd */ }; //this writes a new record to the database await _context.ProjectRoster.AddAsync(dude); //this saves the change from the write above await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> EditProjectParticipants(string ProjectId, string SelectedID, string ParticipantType) { if (string.IsNullOrWhiteSpace(ProjectId)) { return(NotFound()); } else if (string.IsNullOrWhiteSpace(SelectedID)) { return(View(await getPopulatedEditProjectDetailViewModel(ProjectId, null, "Error: Project Participant not selected."))); } if (ModelState.IsValid) { try { if (ParticipantType == "Client" && !ProjectRosterExists(ProjectId, SelectedID)) { List <Client> clients = await _context.Clients.Where(c => c.Projects.Where(p => p.ProjectID == ProjectId).Any()).ToListAsync(); foreach (Client client in clients) { if (client != null) { ProjectRoster projectRoster = await _context.ProjectRoster.Where(pr => pr.ProjectID == ProjectId && pr.ProjectParticipantID == client.ID).FirstOrDefaultAsync(); if (projectRoster != null) { _context.Remove(projectRoster); } } } } if (!ProjectRosterExists(ProjectId, SelectedID) || ParticipantType == "Member") { ProjectRoster roster = new ProjectRoster(); roster.ProjectID = ProjectId; roster.ProjectParticipantID = SelectedID; _context.Add(roster); await _context.SaveChangesAsync(); } } catch (Exception) { if (!ProjectExists(ProjectId) || !ProjectParticipantExists(SelectedID)) { return(NotFound()); } else if (ProjectRosterExists(ProjectId, SelectedID)) { return(View(await getPopulatedEditProjectDetailViewModel(ProjectId, SelectedID, "Error: Selected Participant has already been added to this project."))); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(await getPopulatedEditProjectDetailViewModel(ProjectId, SelectedID, "Error: An error occured while saving. Please reload the page and try again."))); }
public async Task <IActionResult> AddConfirmed(EditProjectDetailViewModel EPDVMD) { var projectAddedTo = await _context.Projects.SingleOrDefaultAsync(Pro => Pro.ID == EPDVMD.ProjectID); var participantToAdd = await _context.Members.SingleOrDefaultAsync(Mem => Mem.ID == EPDVMD.SelectedID); var clientToAdd = await _context.Clients.SingleOrDefaultAsync(Clen => Clen.ID == EPDVMD.SelectedID); ProjectRoster thing = new ProjectRoster { ProjectID = projectAddedTo.ID, Project = projectAddedTo, ProjectParticipantID = participantToAdd.ID, ProjectParticipant = participantToAdd }; //this writes a new record to the database await _context.ProjectRoster.AddAsync(thing); //this saves the change from the write above await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); //attempt to add client to project, failed. // ProjectRoster anotherThing = new ProjectRoster // { // ProjectID = projectAddedTo.ID, // Project = projectAddedTo, // ProjectParticipantID = clientToAdd.ID, // ProjectParticipant = clientToAdd // }; // //this writes a new record to the database // await _context.ProjectRoster.AddAsync(anotherThing); // //this saves the change from the write above // await _context.SaveChangesAsync(); // return RedirectToAction(nameof(Index)); }
public async Task <IActionResult> EditProjectParticipants(String id, EditProjectDetailViewModel model) { var membersFromDb = _context.Members.ToList(); Member ans = null; foreach (var items in membersFromDb) { if (items.ID == model.SelectedID) { ans = items; } } var projectroster = new ProjectRoster { ProjectID = model.TheProject.ID.ToString(), Project = model.TheProject, ProjectParticipantID = model.SelectedID.ToString(), ProjectParticipant = ans }; _context.ProjectRoster.Add(projectroster); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }