protected void Page_Load(object sender, EventArgs e) { string crewLeaderRole = ConfigurationManager.AppSettings["crewLeaderRole"]; if (Request.IsAuthenticated) { if (!User.IsInRole(crewLeaderRole)) { Response.Redirect("~/Login.aspx"); } InfoUserControl.TryRun(() => { SecurityController security = new SecurityController(); UserId.Text = (security.GetCurrentUserId(Context.User.Identity.GetUserName())).ToString(); EmployeeController employee = new EmployeeController(); YardID.Text = employee.GetYardID(int.Parse(UserId.Text)).ToString(); //DriverID.Text = "0"; if (!IsPostBack) { PopulateUnitReport(); PopulateRouteStatus(); } }); RefreshCurrentCrews(); } else { Response.Redirect("~/Login.aspx"); } }
protected void AssignDriver() { string category = (FleetCategory.SelectedIndex < 0) ? "" : FleetCategory.SelectedItem.Text.Trim(); int driverId = 0; //Retrieve the selected DriverID foreach (GridViewRow row in EmployeeGridView.Rows) { if ((row.FindControl("SelectedDriver") as RadioButton).Checked == true) { driverId = int.Parse((row.FindControl("EmployeeID") as Label).Text); } } //Checks that a driver is selecetd. then proceed if (driverId == 0) { InfoUserControl.ShowInfo("Please select a driver"); } else { CrewController crewManager = new CrewController(); InfoUserControl.TryRun(() => { crewManager.CreateCrew(int.Parse(SelectUnitDDL.SelectedValue), driverId, category); List <CurrentCrews> crews = crewManager.GetCurrentCrews(int.Parse(YardID.Text)); crews.Sort((x, y) => y.CrewID.CompareTo(x.CrewID)); CrewID.Text = crews.Count <= 0 ? "" : (crews[0].CrewID).ToString(); CloseCrewPane(); }); PopulateUnitReport(); } }
/// <summary> /// This event fires when the user clicks on save unit report /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void UnitReoprtGV_RowCommand(object sender, GridViewCommandEventArgs e) { string command = e.CommandName; if (command == "SaveUnitReport") { int crewId = int.Parse(e.CommandArgument.ToString()); GridViewRow row = ((e.CommandSource as LinkButton).NamingContainer) as GridViewRow; //Gets hold of the GridViewRow string KS = ((row.FindControl("KM_Start") as TextBox).Text); string KE = ((row.FindControl("KM_End") as TextBox).Text); int KmStart = string.IsNullOrEmpty(KS) ? 0 : int.Parse(KS); int KmEnd = string.IsNullOrEmpty(KE) ? 0 : int.Parse(KE); string comment = (row.FindControl("Comment") as TextBox).Text; string crew = (row.FindControl("Unit") as Label).Text; InfoUserControl.TryRun(() => { CrewController crewManager = new CrewController(); crewManager.UpdateCrew(crewId, KmStart, KmEnd, comment); PopulateUnitReport(); }, crew + " was updated successfully!"); } }
/// <summary> /// This method validates the search filters /// </summary> /// <param name="Search"></param> /// <param name="missingCriteria"></param> protected void ValidateSearch(ProcessSearch Search, string missingCriteria) { string criteria = SearchCriteria.Text; if (string.IsNullOrEmpty(criteria)) { InfoUserControl.ShowWarning(missingCriteria); SiteTypeID.Text = SITETYPEID_NOT_DEFINED; } else { if (string.IsNullOrEmpty(TaskOption.SelectedValue)) { InfoUserControl.ShowWarning(TASK_NOT_SELECTED); SiteTypeID.Text = SITETYPEID_NOT_DEFINED; } else { if (SeasonDDL.SelectedIndex == 0) { InfoUserControl.ShowWarning(SEASON_NOT_SELECTED); SiteTypeID.Text = SITETYPEID_NOT_DEFINED; } else { InfoUserControl.TryRun(() => { Search(); }); } } } }
/// <summary> /// This event fires when the user click on the Cancel Button /// It turns off all the controls to make up Crews /// It deletes the crew that is currently being formed /// It refreshes the Current Crews List /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Cancel_Click(object sender, EventArgs e) { EmployeeGridView.Visible = false; SelectUnitDDL.Visible = false; FleetCategory.ClearSelection(); Done.Visible = false; Cancel.Visible = false; CreateCrew.Visible = false; MakeCrew.Visible = true; LastCrews.Visible = true; FleetCategory.Visible = false; //Deletes the crew in formation. InfoUserControl.TryRun(() => { if (!string.IsNullOrEmpty(CrewID.Text)) { int crewId = int.Parse(CrewID.Text); CrewController crewManager = new CrewController(); crewManager.DeleteCrew(crewId); CrewID.Text = ""; RefreshCurrentCrews(); } }); }
/// <summary> /// /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void AllCurrentCrews_ItemCommand(object source, RepeaterCommandEventArgs e) { string caller = e.CommandName; switch (caller) { case "SelectedCrew": CrewID.Text = e.CommandArgument.ToString(); string crew = ""; SiteMenu.Visible = true; Done.Visible = true; JobCardStatusGridView.Visible = false; JobcardTitle.Visible = false; UnitReoprtGV.Visible = false; UnitReportHeader.Visible = false; InfoUserControl.TryRun(() => { FleetController fleet = new FleetController(); crew = fleet.GetUnitDescription(int.Parse(CrewID.Text)); }); InfoUserControl.ShowInfo("You are updating crew " + crew + ""); RefreshCrewMember(); break; case "RemoveMember": InfoUserControl.TryRun(() => { CrewController crewManager = new CrewController(); crewManager.RemoveCrewMember(int.Parse(e.CommandArgument.ToString()), int.Parse(CrewID.Text)); RefreshCurrentCrews(); }); break; case "DeleteJobCard": InfoUserControl.TryRun(() => { CrewController crewManager = new CrewController(); crewManager.DeleteJobCardCrew(int.Parse(e.CommandArgument.ToString())); RefreshCurrentCrews(); }); break; case "DeleteCrew": MessageUserControl.TryRun(() => { CrewController crewManager = new CrewController(); crewManager.DeleteCrew(int.Parse(e.CommandArgument.ToString())); RefreshCurrentCrews(); PopulateUnitReport(); PopulateRouteStatus(); }); break; } }
/// <summary> /// This methods Populates/Refreshes the list of all Current Crews /// It also returns the ID of the last crew created and set on a Label control /// </summary> protected void RefreshCurrentCrews() { InfoUserControl.TryRun(() => { CrewController crewManager = new CrewController(); List <CurrentCrews> crews = crewManager.GetCurrentCrews(int.Parse(YardID.Text)); crews.Sort((x, y) => y.CrewID.CompareTo(x.CrewID)); AllCurrentCrews.DataSource = crews; AllCurrentCrews.DataBind(); }); }
/// <summary> /// This event fires when the user add a job site to a crew or click on the Finish button /// When adding a job site to a crew, it first verifies that a crew is selected /// Then add the Job site /// When user click on the Finish button, it turns off the site menu and the Routes /// It turns on the Job Cards GridView /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void RouteListView_ItemCommand(object sender, ListViewCommandEventArgs e) { string message = ""; string command = e.CommandName; switch (command) { case "AddSite": //Get hold of the row that fired the event ListViewDataItem item = RouteListView.Items[e.Item.DisplayIndex]; DropDownList list = item.FindControl("SelectTask") as DropDownList; InfoUserControl.TryRun(() => { if (string.IsNullOrEmpty(CrewID.Text)) { InfoUserControl.ShowWarning("You must first create or select a Crew before adding a job site!"); } else { int crewId = int.Parse(CrewID.Text); int siteId = int.Parse(e.CommandArgument.ToString()); int taskId = int.Parse(list.SelectedValue); CrewController crewManager = new CrewController(); message = crewManager.AddJobCard(crewId, siteId, taskId); RefreshCurrentCrews(); } }); if (!string.IsNullOrEmpty(message)) { InfoUserControl.ShowInfo("The following Crew(s) are already assigned to this same Site: " + message); RefreshCurrentCrews(); } break; case "Finish": SiteMenu.Visible = false; RouteListView.Visible = false; PopulateRouteStatus(); PopulateUnitReport(); MakeCrew.Visible = true; LastCrews.Visible = true; FleetCategory.Visible = false; ARoute.CssClass = "default-tab"; BRoute.CssClass = "default-tab"; GRoute.CssClass = "default-tab"; WRoute.CssClass = "default-tab"; PRoute.CssClass = "default-tab"; break; } }
/// <summary> /// This event add a new member to a given crew /// It calls the method that adds a new crew member to a crew /// It refreshes the list of current crews /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void EmployeeGridView_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "AddMember") { InfoUserControl.TryRun(() => { CrewController crewManager = new CrewController(); crewManager.AddCrewMember(int.Parse(CrewID.Text), int.Parse(e.CommandArgument.ToString())); RefreshCurrentCrews(); }); } }
/// <summary> /// This Method Populates/Refreshes the list of drivers /// There are two types of drivers: /// 1. Truck Drivers /// 2. Equipment Drivers /// </summary> /// <param name="type">The type specifies the list of drivers to be returned</param> protected void RefreshDriverList(int type) { InfoUserControl.TryRun(() => { int unitId = int.Parse(SelectUnitDDL.SelectedValue); int yardId = int.Parse(YardID.Text); FleetController fleetManager = new FleetController(); List <Driver> drivers = fleetManager.GetTruckDrivers(yardId, unitId, type); EmployeeGridView.DataSource = drivers; EmployeeGridView.DataBind(); }); }
/// <summary> /// This event fires when the user select a unit from the DropDownList control. /// It resets the EmployeeGridView Pager /// It sets Label control for refreshing the EmployeeGridView to "Driver". /// It turns On/Off all the Necessary/Unnecessary columns /// It refreshses the EmployeeGridView /// </summary> /// <param name="sender">The Sender is a DropDownList control</param> /// <param name="e"></param> protected void SelectUnitDDL_SelectedIndexChanged(object sender, EventArgs e) { if (SelectUnitDDL.SelectedIndex == 0) { InfoUserControl.ShowWarning("Please select a Unit before proceeding!"); Done.Visible = false; CreateCrew.Visible = false; EmployeeGridView.Visible = false; Cancel.Visible = false; } else { string category = (FleetCategory.SelectedItem.Text).Trim(); Refresh.Text = "Driver"; FleetController fleetManager = new FleetController(); int unitId = int.Parse(SelectUnitDDL.SelectedValue); string unitDesc = SelectUnitDDL.SelectedItem.Text; if (fleetManager.FoundUnit(unitId, category)) { InfoUserControl.ShowWarning(unitDesc + " is already assigned to a different crew. If you want to update the Crew assigned to this unit, " + "Select the crew in the pane below"); } else { if (category == "Equipments") { EmployeeGridView.PageIndex = 0; EmployeeGridView.Columns[4].Visible = false; EmployeeGridView.Columns[5].Visible = true; EmployeeGridView.Columns[6].Visible = true; EmployeeGridView.Columns[7].Visible = false; EmployeeGridView.Visible = true; Cancel.Visible = true; RefreshDriverList(1); } else if (category == "Trucks") { EmployeeGridView.PageIndex = 0; EmployeeGridView.Visible = true; EmployeeGridView.Columns[4].Visible = true; EmployeeGridView.Columns[5].Visible = true; EmployeeGridView.Columns[6].Visible = true; EmployeeGridView.Columns[7].Visible = false; Cancel.Visible = true; RefreshDriverList(2); } } } }
/// <summary> /// This method populates the Routes on Gridview /// </summary> protected void PopulateSearch() { RouteController routeManager = new RouteController(); List <RouteStatus> route = new List <RouteStatus>(); int yardId = int.Parse(YardID.Text); int taskId = int.Parse(TaskID.Text); int season = int.Parse(SeasonDDL.SelectedValue); string searchCriterion = SearchCriteria.Text; switch (SearchCategory.SelectedIndex) { case 0: InfoUserControl.ShowWarning(CRITERION_IS_MISSING); SiteTypeID.Text = SITETYPEID_NOT_DEFINED; break; case 1: route = routeManager.Get_RouteByPin(int.Parse(SearchCriteria.Text), yardId, taskId, season); break; case 2: //Community route = routeManager.GetRoutesByCommunity(SearchCriteria.Text, yardId, taskId, season); break; case 3: //Description route = routeManager.GetRoutesByDescription(searchCriterion, yardId, taskId, season); break; case 4: //Address route = routeManager.GetRoutesByAddress(searchCriterion, yardId, taskId, season); break; } if (route == null || route.Count == 0) { InfoUserControl.ShowInfo("There is no data retuned with the given search criteria"); RoutesManager(route); } else { RoutesManager(route); } }
/// <summary> /// This method populates JobCards /// </summary> public void PopulateRouteStatus() { InfoUserControl.TryRun(() => { CrewController crewManager = new CrewController(); List <JobCardStatus> cardStatus = crewManager.Get_JobCardStatus(); JobCardStatusGridView.DataSource = cardStatus; JobCardStatusGridView.DataBind(); if (cardStatus.Count > 0) { JobCardStatusGridView.Visible = true; JobcardTitle.Visible = true; } else { JobCardStatusGridView.Visible = false; JobcardTitle.Visible = false; } }); }
protected void Page_Load(object sender, EventArgs e) { string crewLeaderRole = ConfigurationManager.AppSettings["crewLeaderRole"]; if (Request.IsAuthenticated) { if (!User.IsInRole(crewLeaderRole)) { Response.Redirect("~/Login.aspx"); } InfoUserControl.TryRun(() => { SecurityController security = new SecurityController(); UserID.Text = (security.GetCurrentUserId(Context.User.Identity.GetUserName())).ToString(); EmployeeController employee = new EmployeeController(); YardID.Text = employee.GetYardID(int.Parse(UserID.Text)).ToString(); }); if (!Page.IsPostBack) { SearchCategory.Items.Insert(0, "Search Criteria..."); SearchCategory.Items.Insert(1, "Pin"); SearchCategory.Items.Insert(2, "Community"); SearchCategory.Items.Insert(3, "Description"); SearchCategory.Items.Insert(4, "Address"); SeasonDDL.Items.Insert(0, "Seasons"); int currentSeason = DateTime.Now.Year; for (int season = currentSeason; season >= currentSeason - 10; season--) { ListItem list = new ListItem(season.ToString()); SeasonDDL.Items.Add(list); } } } else { Response.Redirect("~/Login.aspx"); } }
/// <summary> /// This event fires when when the user presses on the Create a Crew button /// It retrives the driver ID /// It calls the method that creates a New Crew /// It populates/refreshes all current crews /// </summary> /// <param name="sender">The sender is a button control</param> /// <param name="e"></param> protected void CreateCrew_Click(object sender, EventArgs e) { int driverId = 0; string category = (FleetCategory.SelectedItem.Text).Trim(); //Retrieve the selected DriverID foreach (GridViewRow row in EmployeeGridView.Rows) { if ((row.FindControl("SelectedDriver") as RadioButton).Checked == true) { driverId = int.Parse((row.FindControl("EmployeeID") as Label).Text); } } //Checks that a driver is selecetd. then proceed if (driverId == 0) { InfoUserControl.ShowInfo("Please select a driver"); } else { DriverID.Text = driverId.ToString(); CrewController crewManager = new CrewController(); InfoUserControl.TryRun(() => { crewManager.CreateCrew(int.Parse(SelectUnitDDL.SelectedValue), driverId, category); Refresh.Text = "Member"; EmployeeGridView.PageIndex = 0; Cancel.Visible = true; CreateCrew.Visible = false; PopulateUnitReport(); RefreshCrewMember(); RefreshCurrentCrews(); InfoUserControl.ShowInfo("Add Crew Members"); List <CurrentCrews> crews = crewManager.GetCurrentCrews(int.Parse(YardID.Text)); crews.Sort((x, y) => y.CrewID.CompareTo(x.CrewID)); CrewID.Text = crews.Count <= 0 ? "" : (crews[0].CrewID).ToString(); }); } }
/// <summary> /// This method populates the GridView for reporting the mileage /// </summary> public void PopulateUnitReport() { int yardId = int.Parse(YardID.Text); CrewController crewManager = new CrewController(); InfoUserControl.TryRun(() => { List <UnitReport> report = crewManager.GetUnitReports(yardId); if (report.Count == 0) { UnitReportHeader.Visible = false; UnitReoprtGV.Visible = false; } else { UnitReportHeader.Visible = true; UnitReoprtGV.Visible = true; report.Sort((x, y) => x.Unit.CompareTo(y.Unit)); UnitReoprtGV.DataSource = report; UnitReoprtGV.DataBind(); } }); }
/// <summary> /// This event fires when the pre-render stage of the page life cycle is complete /// It loads the RoutesGridView /// It turns On/Off the columns inthe GridView that are necessary/unnecessary /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_PreRenderComplete(object sender, EventArgs e) { List <RouteStatus> routes = new List <RouteStatus>(); RouteController routeManager = new RouteController(); int siteTypeId = int.Parse(SiteTypeID.Text); int yardId = int.Parse(YardID.Text); int taskId = int.Parse(TaskID.Text); int searchFlag = int.Parse(SearchFlag.Text); switch (siteTypeId) { case 0: if (SearchFlag.Text == "1") { ValidateSearch(() => { PopulateSearch(); }, ""); } //RoutesManager(routes); if (taskId == 1) { A_Routes(); MenuItem item = RouteMenu.Items[0] as MenuItem; item.Selected = true; } else if (taskId == 7) { G_Routes(); MenuItem item = RouteMenu.Items[2] as MenuItem; item.Selected = true; } else if (taskId == 6) { W_Routes(); MenuItem item = RouteMenu.Items[3] as MenuItem; item.Selected = true; } else if (taskId == 2) { P_Routes(); MenuItem item = RouteMenu.Items[4] as MenuItem; item.Selected = true; } break; //A Routes case 1: InfoUserControl.TryRun(() => { if (searchFlag == 1) { PopulateSearch(); MenuItem item = RouteMenu.Items[0] as MenuItem; item.Selected = true; } else { routes = routeManager.Get_AB_Routes(yardId, siteTypeId, taskId); RoutesManager(routes); } }); A_Routes(); break; //B Routes case 2: InfoUserControl.TryRun(() => { routes = routeManager.Get_AB_Routes(yardId, siteTypeId, taskId); }); RoutesManager(routes); B_Routes(); break; //Grass Routes case 3: InfoUserControl.TryRun(() => { if (searchFlag == 1) { PopulateSearch(); MenuItem item = RouteMenu.Items[2] as MenuItem; item.Selected = true; } else { routes = routeManager.GrassRouteList(yardId); RoutesManager(routes); } }); G_Routes(); break; //Watering Routes case 4: InfoUserControl.TryRun(() => { if (searchFlag == 1) { PopulateSearch(); MenuItem item = RouteMenu.Items[3] as MenuItem; item.Selected = true; } else { routes = routeManager.WateringList(yardId); RoutesManager(routes); } }); W_Routes(); break; //Planting Routes case 5: InfoUserControl.TryRun(() => { if (searchFlag == 1) { PopulateSearch(); MenuItem item = RouteMenu.Items[4] as MenuItem; item.Selected = true; } else { routes = routeManager.PlantingList(yardId); RoutesManager(routes); } }); P_Routes(); break; } }
/// <summary> /// This method fires when the user click on the search button /// It calls the ValidateSearch method that raises notifications /// to the user in case there is an issue with the search criteria /// It sets the TaskID, and SiteTypeID needed to do the search /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void SearchButton_Click(object sender, EventArgs e) { RoutesGridView.PageIndex = 0; RouteController routeManager = new RouteController(); SearchFlag.Text = "1"; if (!string.IsNullOrEmpty(TaskOption.SelectedValue)) { if (TaskOption.SelectedValue == "1") { TaskID.Text = "1"; SiteTypeID.Text = "1"; } else if (TaskOption.SelectedValue == "2") { TaskID.Text = "7"; SiteTypeID.Text = "3"; } else if (TaskOption.SelectedValue == "3") { TaskID.Text = "6"; SiteTypeID.Text = "4"; } else if (TaskOption.SelectedValue == "4") { TaskID.Text = "2"; SiteTypeID.Text = "5"; } } switch (SearchCategory.SelectedIndex) { case 0: InfoUserControl.ShowWarning(CRITERION_IS_MISSING); SiteTypeID.Text = SITETYPEID_NOT_DEFINED; break; case 1: int pin; if (int.TryParse(SearchCriteria.Text, out pin)) { SiteTypeID.Text = "0"; } else { InfoUserControl.ShowWarning(PIN_IS_NOT_A_NUMBER); SiteTypeID.Text = SITETYPEID_NOT_DEFINED; } break; case 2: ValidateSearch(() => { }, COMMUNITY_IS_MISSING); break; case 3: ValidateSearch(() => { }, DESCRIPTION_IS_MISSING); break; case 4: ValidateSearch(() => { }, ADDRESS_IS_MISSING); break; } }