示例#1
0
    protected void CreateProjectGroup(int project_id)
    {
        try
        {
            // Add the selected group and project to a new project group
            var rightgroup   = ctx.group.Where(g => g.name == ddlGroupList.SelectedItem.Text).FirstOrDefault();
            var rightproject = ctx.project.Where(pr => pr.project_id == project_id).FirstOrDefault();

            if (rightgroup != null && rightproject != null)
            {
                var projectgroup = new project_group
                {
                    group_id   = rightgroup.group_id,
                    project_id = rightproject.project_id,
                    supporting = false
                };

                rightgroup.project_group.Add(projectgroup);
                rightproject.project_group.Add(projectgroup);
                ctx.SaveChanges();
            }

            // Insert a new project_person for each member of the selected group
            if (rightgroup != null && rightproject != null)
            {
                var           groupmember_ids = ctx.group_member.Where(gm => gm.group_id == rightgroup.group_id).ToList();
                List <person> groupmembers    = new List <person>();

                foreach (var groupmember in groupmember_ids)
                {
                    groupmembers.Add(ctx.person.Where(p => p.person_id == groupmember.person_id).SingleOrDefault());
                }

                foreach (var member in groupmembers)
                {
                    var prope = new project_person
                    {
                        project_id = rightproject.project_id,
                        person_id  = member.person_id,
                        group_id   = rightgroup.group_id,
                        project_person_supporting = false
                    };

                    member.edited = DateTime.Now;
                    member.project_person.Add(prope);
                    rightproject.project_person.Add(prope);
                }

                rightproject.edited = DateTime.Now;

                ctx.SaveChanges();
            }
        }
        catch (Exception ex)
        {
            lbmessages.Text = ex.Message;
        }
    }
示例#2
0
    protected void gvGroups_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Add the selected group to the project
        string group_name = (gvGroups.SelectedRow.Cells[0].Controls[0] as LinkButton).Text;
        string project_id = String.Empty;


        // Fill the project_group database table as well
        try
        {
            List <group> searchlistgroups = (List <group>)Session["SearchListGroups"];
            project_id = Request.QueryString["Project"];

            int to_add_projectid = int.Parse(project_id);

            if (project_id != String.Empty)
            {
                var addedgroup   = ctx.group.Where(g => g.name == group_name).SingleOrDefault();
                var addedproject = ctx.project.Where(pr => pr.project_id == to_add_projectid).SingleOrDefault();

                bool checklegit = false;

                foreach (var group in searchlistgroups)
                {
                    if (group.group_id == addedgroup.group_id)
                    {
                        checklegit = true;
                    }
                }

                // Add the selected group and project to a new project group
                if (addedgroup != null && addedproject != null && checklegit == true)
                {
                    var prg = new project_group
                    {
                        group_id   = addedgroup.group_id,
                        project_id = addedproject.project_id,
                        supporting = true
                    };

                    addedproject.edited = DateTime.Now;
                    addedgroup.edited   = DateTime.Now;

                    addedproject.project_group.Add(prg);
                    addedgroup.project_group.Add(prg);
                }

                // Insert a new project_person for each member of the selected group
                if (addedgroup != null && addedproject != null && checklegit == true)
                {
                    var           groupmember_ids = ctx.group_member.Where(gm => gm.group_id == addedgroup.group_id).ToList();
                    List <person> groupmembers    = new List <person>();

                    foreach (var groupmember in groupmember_ids)
                    {
                        groupmembers.Add(ctx.person.Where(p => p.person_id == groupmember.person_id).SingleOrDefault());
                    }

                    foreach (var member in groupmembers)
                    {
                        var prope = new project_person
                        {
                            project_id = addedproject.project_id,
                            person_id  = member.person_id,
                            group_id   = addedgroup.group_id,
                            project_person_supporting = true
                        };

                        member.edited = DateTime.Now;
                        member.project_person.Add(prope);
                        addedproject.project_person.Add(prope);
                    }

                    addedproject.edited = DateTime.Now;

                    ctx.SaveChanges();
                }
            }
            else
            {
                lbMessages.Text = "No Group Specified";
            }
        }
        catch (Exception ex)
        {
            lbMessages.Text = ex.Message;
        }

        if (project_id != String.Empty)
        {
            Response.Redirect(String.Format(Request.ApplicationPath + "Project.aspx?Project={0}", project_id));
        }
    }