protected void StaffListView_ItemCommand(object sender, ListViewCommandEventArgs e) { if (e.CommandName == "AddTerritory") { var territoryToAdd = e.Item.FindControl("TerritoryToAdd") as TextBox; if (territoryToAdd != null) { string addId = territoryToAdd.Text; addId = addId.Substring(addId.IndexOf("(") + 1, addId.IndexOf(")") - addId.IndexOf("(") - 1); string territoryName = territoryToAdd.Text.Replace(addId, "").Replace("()", ""); var assignment = new TerritoryAssignment() { EmployeeId = int.Parse(e.CommandArgument.ToString()), TerritoryId = addId }; var controller = new HumanResourcesController(); controller.AssignEmployeeTerritory(assignment); territoryToAdd.Text = ""; DataBind(); // Force all child controls to bind MessageBox.Text = $"Assigned {territoryName}"; e.Handled = true; // Only really required for built-in supported commands like "Update" } } if (e.CommandName.Equals("FireEmployee")) { string targetUrl = $"~/Admin/FireStaff.aspx?eid={e.CommandArgument}"; Response.Redirect(targetUrl, true); } }
protected void Terminate_Click(object sender, EventArgs e) { //if (IsValid) { int employeeId = int.Parse(EmployeeId.Value); List <TerritoryAssignment> reassignedTerritories = new List <TerritoryAssignment>(); DateTime firedOn = DateTime.Parse(TerminationDate.Text); foreach (RepeaterItem item in TerritoryReassignmentRepeater.Items) { var tidControl = item.FindControl("TerritoryId") as HiddenField; var sidControl = item.FindControl("EmployeeDropDown") as DropDownList; int sid; if (int.TryParse(sidControl.SelectedValue, out sid)) { TerritoryAssignment reassignment = new TerritoryAssignment() { EmployeeId = sid, TerritoryId = tidControl.Value }; reassignedTerritories.Add(reassignment); } } HumanResourcesController controller = new HumanResourcesController(); controller.FireEmployee(employeeId, reassignedTerritories, firedOn); } }
public void RemoveTerritoryAssignment(TerritoryAssignment assignment) { using (var context = new NorthwindContext()) { var employee = context.Employees.Find(assignment.EmployeeId); var territory = context.Territories.Find(assignment.TerritoryId); employee.Territories.Remove(territory); context.SaveChanges(); } }
protected void StaffTerritoryId_ItemDeleting(object sender, ListViewDeleteEventArgs e) { var controller = new HumanResourcesController(); var assignment = new TerritoryAssignment() { EmployeeId = int.Parse(e.Keys["StaffId"].ToString()), TerritoryId = e.Keys["TerritoryId"].ToString() }; controller.RemoveTerritoryAssignment(assignment); DataBind(); // Force all child controls to bind }