Example #1
0
        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"));
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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());
        }
Example #5
0
        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());
        }
Example #6
0
 private IEnumerable <projectComponent> getChildren(projectComponent projectComponent)
 {
     return((from pc in Context.projectComponent
             where pc.projectComponentID == projectComponent.ID
             select pc).ToList());
 }