public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } projectComponent = await Context.projectComponent.FindAsync(id); if (projectComponent == null) { return(NotFound()); } // AUTHORIZATION if (projectComponent.creatingUserID != getLoggedInUserId()) { return(Forbid()); } Context.projectComponent.Remove(projectComponent); //Handle other actions needed. Child project components will be orphaned, so we will deleteChildComponents(projectComponent, this.Context); await Context.SaveChangesAsync(); return(RedirectToPage("./Index")); }
public void deleteChildComponents(projectComponent projectComponent, ApplicationDbContext Context) { var children = getChildren(projectComponent); if (children.Any()) { foreach (var pc in children) { Context.projectComponent.Remove(pc); deleteChildComponents(pc, Context); } } }
private projectComponentViewModel populateVitrualModelFromProjectComponent(projectComponent projectComponent) { var projectComponentVM = new projectComponentViewModel(); projectComponentVM.completionDate = projectComponent.completionDate; projectComponentVM.completionDeadline = projectComponent.completionDeadline; projectComponentVM.componentDescription = projectComponent.componentDescription; projectComponentVM.componentStatus = projectComponent.componentStatus; projectComponentVM.componentType = projectComponent.componentType; projectComponentVM.projectComponentID = projectComponent.projectComponentID; projectComponentVM.startDate = projectComponent.startDate; projectComponentVM.title = projectComponent.title; return(projectComponentVM); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } projectComponent = await Context.projectComponent.FirstOrDefaultAsync(m => m.ID == id); if (projectComponent == null) { return(NotFound()); } // AUTHORIZATION if (projectComponent.creatingUserID != getLoggedInUserId()) { return(Forbid()); } return(Page()); }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } projectComponent = await Context.projectComponent.FirstOrDefaultAsync(m => m.ID == id); if (projectComponent == null) { return(NotFound()); } parentComponent = projectComponent; componentList = (from pc in Context.projectComponent where pc.projectComponentID == projectComponent.ID select pc) .Include(pc => pc.childComponents) .Include(pc => pc.projectUpdates) .ToList(); currentProject = await GetProjectAsync(projectComponent.projectID, true, true, true); //AUTHORIZATION bool loginUserIsComponentOwner = (projectComponent.creatingUserID == getLoggedInUserId()); if (loginUserIsComponentOwner && (await Context.project.FirstOrDefaultAsync (m => m.ID == projectComponent.projectID)) .isPublic == false) { return(Forbid()); } if (loginUserIsComponentOwner) { viewingUserCanDelete = true; viewingUserCanEdit = true; } return(Page()); }
private IEnumerable <projectComponent> getChildren(projectComponent projectComponent) { return((from pc in Context.projectComponent where pc.projectComponentID == projectComponent.ID select pc).ToList()); }