protected void AddComponentMembers(List <person> members, assignment_component rightassignmentcomponent) { try { int assignment_id = int.Parse(Request.QueryString["Assignment"]); int project_id = int.Parse(Request.QueryString["Project"]); // Create new assignment_component_persons foreach (var member in members) { assignment_component_person componentmember = new assignment_component_person { amtc_id = rightassignmentcomponent.amtc_id, amt_id = assignment_id, project_id = project_id, person_id = member.person_id }; ctx.assignment_component_person.Add(componentmember); member.assignment_component_person.Add(componentmember); rightassignmentcomponent.assignment_component_person.Add(componentmember); } ctx.SaveChanges(); } catch (Exception ex) { lbMessages.Text = ex.Message; } }
protected void CreateNewComponent(string componentname, List <person> personstoadd) { try { int assignment_id = int.Parse(Request.QueryString["Assignment"]); int project_id = int.Parse(Request.QueryString["Project"]); var rightassignment = ctx.assignment.Where(amt => amt.amt_id == assignment_id).SingleOrDefault(); if (rightassignment != null) { // Create new assignment_component assignment_component newcomponent = new assignment_component { amt_id = assignment_id, project_id = project_id, name = componentname, finished = false, edited = DateTime.Now }; ctx.assignment_component.Add(newcomponent); // Create new assignment_component_persons foreach (var person in personstoadd) { assignment_component_person componentmember = new assignment_component_person { amtc_id = newcomponent.amtc_id, amt_id = assignment_id, project_id = project_id, person_id = person.person_id }; ctx.assignment_component_person.Add(componentmember); person.assignment_component_person.Add(componentmember); newcomponent.assignment_component_person.Add(componentmember); } ctx.SaveChanges(); divAssignmentComponents.Controls.Clear(); FillComponentList(); lbMessages.Text = String.Empty; } } catch (Exception ex) { lbMessages.Text = ex.Message; } }
protected void RemoveComponentMembers(List <person> members, assignment_component rightassignmentcomponent) { try { foreach (var member in members) { var assignmentcomponentperson_to_remove = ctx.assignment_component_person.Where(acompe => acompe.person_id == member.person_id && acompe.amtc_id == rightassignmentcomponent.amtc_id).SingleOrDefault(); ctx.assignment_component_person.Remove(assignmentcomponentperson_to_remove); } ctx.SaveChanges(); } catch (Exception ex) { lbMessages.Text = ex.Message; } }
protected void btnSaveChanges_Click(object sender, EventArgs e) { try { List <person> assignmentcomponentpersonlist = (List <person>)Session["assignmentcomponentpersons"]; assignment_component sessionassignmentcomponent = (assignment_component)Session["rightassignmentcomponent"]; var rightassignmentcomponent = ctx.assignment_component.Where(amtc => amtc.amtc_id == sessionassignmentcomponent.amtc_id).SingleOrDefault(); List <person> members_to_remove = new List <person>(); List <person> members_to_add = new List <person>(); foreach (ListItem item in cblShowComponentMembers.Items) { if (item.Selected == false && rightassignmentcomponent.assignment_component_person.Any(acompe => acompe.person.username == item.Text)) { members_to_remove.Add(assignmentcomponentpersonlist.Where(p => p.username == item.Text).SingleOrDefault()); } else if (item.Selected == true && !rightassignmentcomponent.assignment_component_person.Any(acompe => acompe.person.username == item.Text)) { members_to_add.Add(assignmentcomponentpersonlist.Where(p => p.username == item.Text).SingleOrDefault()); } } bool madechanges = false; if (txtShowComponentName.Text != rightassignmentcomponent.name) { rightassignmentcomponent.name = txtShowComponentName.Text; madechanges = true; } if (members_to_remove != null) { RemoveComponentMembers(members_to_remove, rightassignmentcomponent); madechanges = true; } if (members_to_add != null) { AddComponentMembers(members_to_add, rightassignmentcomponent); madechanges = true; } if (rightassignmentcomponent.finished != cbComponentFinished.Checked) { rightassignmentcomponent.finished = cbComponentFinished.Checked; ctx.SaveChanges(); madechanges = true; } if (madechanges == true) { divAssignmentComponents.Controls.Clear(); FillComponentList(); lbMessages.Text = String.Empty; } } catch (Exception ex) { lbMessages.Text = ex.Message; } }