Example #1
0
        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)));
        }
Example #2
0
        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)));
        }
Example #4
0
        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.")));
        }
Example #5
0
        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)));
        }