Beispiel #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            getIncomingPersonID();
            loadCorrectPanel();

            if (isEmployee)
            {
                empToEdit = new Employee();
                using (var db = new BenefitsContext())
                {
                    empToEdit = db.Employees.FirstOrDefault(p => p.employeeID == incomingPersonID);
                }
                label_employeeBeingEdited.Text = $"Currently editing: {empToEdit.firstName} {empToEdit.lastName}";
                TextBox_EmployeeFirstName.Text = empToEdit.firstName;
                TextBox_EmployeeLastName.Text  = empToEdit.lastName;
            }
            else if (isDependent)
            {
                depToEdit = new Dependent();
                using (var db = new BenefitsContext())
                {
                    depToEdit = db.Dependents.FirstOrDefault(p => p.id == incomingPersonID);
                }
                label_dependentBeingEdited.Text = $"Currently editing: {depToEdit.firstName} {depToEdit.lastName}";
                textBox_dependentFName.Text     = depToEdit.firstName;
                textBox_dependentLName.Text     = depToEdit.lastName;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Submits and applies appropriate changes whether the person being edited is an
        /// employee or dependent.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void button_SubmitChanges_Click(object sender, EventArgs e)
        {
            var db = new BenefitsContext();

            if (isDependent)
            {
                Dependent toSubmit = db.Dependents.FirstOrDefault(p => p.id == depToEdit.id);
                char      firstInitialBeforeChanges = toSubmit.firstName.ToLower().First();
                getChangedNames(toSubmit);
                char firstInitialAfterChanges = toSubmit.firstName.ToLower().First();
                alterDependentDiscount(toSubmit, firstInitialBeforeChanges, firstInitialAfterChanges);

                db.SaveChanges();
                Response.Redirect($"CloserDetails?id={toSubmit.employeeID}");
            }
            else if (isEmployee)
            {
                Employee toSubmit = db.Employees.FirstOrDefault(p => p.employeeID == empToEdit.employeeID);
                char     firstInitialBeforeChanges = toSubmit.firstName.ToLower().First();
                getChangedNames(toSubmit);
                char firstInitialAfterChanges = toSubmit.firstName.ToLower().First();

                alterEmployeeDiscount(toSubmit, firstInitialBeforeChanges, firstInitialAfterChanges);
                db.SaveChanges();
                Response.Redirect($"CloserDetails?id={toSubmit.employeeID}");
            }
        }
Beispiel #3
0
        /// <summary>
        /// Submits a brand new employee with dependents, or adds a dependent to an existing
        /// employee. The latter entails database updates for dependent status, cost, etc.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void button_submitEmployeeWithDependent_Click(object sender, EventArgs e)
        {
            if (incomingEmployeeID == 0) // if the employee is brand new
            {
                string   emp_fName   = TextBox_EmployeeFirstName.Text;
                string   emp_lName   = TextBox_EmployeeLastName.Text;
                Employee newEmployee = createStandardEmployeeWithDependents(emp_fName, emp_lName);

                using (var db = new BenefitsContext())
                {
                    db.Employees.Add(newEmployee);
                    db.SaveChanges();
                }
                createDependentsFromFields(newEmployee);
                Response.Redirect("ViewEmployees.aspx");
            }
            else // if the employee exists and is getting added dependents
            {
                using (var db = new BenefitsContext())
                {
                    Employee toUpdate = db.Employees.FirstOrDefault(p => p.employeeID == incomingEmployeeID);
                    if (toUpdate.hasDependent == false)
                    {
                        toUpdate.hasDependent = true;
                    }
                    createDependentsFromFields(toUpdate);
                    db.SaveChanges();
                }
                // redirect back to their closer details page
                Response.Redirect($"CloserDetails?id={incomingEmployeeID}");
            }
        }
Beispiel #4
0
        /// <summary>
        /// Deletes the employee by getting the employee number from the view state.
        /// This is achieved because the delete buttons come paired with IDs to match their
        /// corresponsing people.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void button_DeleteEmployee_Click(object sender, EventArgs e)
        {
            string[] buttonIDComponents  = new string[0];
            int      employeeToDelete_ID = 0;

            for (int i = 0; i < Request.Form.Count; i++)
            {
                if (Request.Form.AllKeys[i].Contains("Delete"))
                {
                    string buttonNumber = Request.Form.AllKeys[i];
                    buttonIDComponents  = buttonNumber.Split('_');
                    employeeToDelete_ID = int.Parse(buttonIDComponents[1]); // get the employee to delete from their ID number
                }
            }
            using (var db = new BenefitsContext())
            {
                Employee toDelete = db.Employees.FirstOrDefault(p => p.employeeID == employeeToDelete_ID);
                foreach (Dependent d in dependentBelongingToEmployee)
                {
                    Dependent dependentToDelete = db.Dependents.FirstOrDefault(p => p.id == d.id);
                    db.Dependents.Remove(dependentToDelete);
                }
                db.Employees.Remove(toDelete);
                db.SaveChanges();
            }
            Response.Redirect($"ViewEmployees");
        }
Beispiel #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            getIncomingEmployeeID();
            if (incomingEmployeeID != 0)
            {
                // set dependent adding panels to invisible if adding to an existing employee
                Panel_AddSingleEmployee.Visible = false;
                Panel_AddDependents.Visible     = true;
                addingDependentsFromEmployee    = true;

                Label employeeName = new Label();
                using (var db = new BenefitsContext())
                {
                    empToAddDependents = db.Employees.FirstOrDefault(p => p.employeeID == incomingEmployeeID);
                }
                employeeName.Text = $"Adding dependents to: {empToAddDependents.firstName} {empToAddDependents.lastName}";
                panel_IncomingEmployeeInfo.Controls.Add(employeeName);
            }
            else // have the add employee fields visible
            {
                Panel_AddSingleEmployee.Visible = true;
                Panel_AddDependents.Visible     = false;
            }
            generator = new Random();
        }
Beispiel #6
0
 private void initializePeopleLists()
 {
     using (var db = new BenefitsContext())
     {
         employeeToView = db.Employees.FirstOrDefault(p => p.employeeID == incomingEmployeeID);
         dependents     = db.Dependents.ToList();
     }
 }
Beispiel #7
0
        /// <summary>
        /// Cancels adding any more dependents, in the case where a user clicks "add dependents"
        /// but then changes their mind. Adds the employee, and takes the user to the view employees
        /// page.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button_SubmitEmployeeWithNoDependents_Click(object sender, EventArgs e)
        {
            string fname = TextBox_EmployeeFirstName.Text;
            string lname = TextBox_EmployeeLastName.Text;

            Employee newEmployee = createStandardEmployeeNoDependents(fname, lname);

            using (var db = new BenefitsContext())
            {
                db.Employees.Add(newEmployee);
                db.SaveChanges();
            }
            Response.Redirect("~/ViewEmployees.aspx");
        }
Beispiel #8
0
        /// <summary>
        /// Gets the ID of the dependent to delete via the form's viewstate, as the
        /// delete button's ID is generated also with the dependent's ID. From there,
        /// the employee's cost is updated, along with their other resulting totals.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_DeleteDependent_Click(object sender, EventArgs e)
        {
            string[] buttonIDComponents   = new string[0];
            int      dependentToDelete_ID = 0;

            for (int i = 0; i < Request.Form.Count; i++)
            {
                if (Request.Form.AllKeys[i].Contains("Delete"))
                {
                    string buttonNumber = Request.Form.AllKeys[i];
                    buttonIDComponents   = buttonNumber.Split('_');
                    dependentToDelete_ID = int.Parse(buttonIDComponents[1]);
                }
            }

            using (var db = new BenefitsContext())
            {
                Dependent toDelete = db.Dependents.FirstOrDefault(p => p.id == dependentToDelete_ID);
                Employee  toUpdate = db.Employees.First(p => p.employeeID == incomingEmployeeID);

                foreach (Dependent d in dependentBelongingToEmployee)
                {
                    if (d.id == toDelete.id)
                    {
                        dependentBelongingToEmployee.Remove(d);
                        break;
                    }
                }
                if (dependentBelongingToEmployee.Count < 1)
                {
                    toUpdate.hasDependent = false;
                }

                toUpdate.cost -= toDelete.cost;
                toUpdate.deductionsPerPaycheck   = toUpdate.cost / 26;
                toUpdate.paycheckAfterDeductions = toUpdate.paycheckBeforeDeductions - toUpdate.deductionsPerPaycheck;

                db.Dependents.Remove(toDelete);
                db.SaveChanges();
            }
            // reload the page
            Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri);
        }
Beispiel #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int numberOfDataPopulatedRows = 0;

            using (var db = new BenefitsContext())
            {
                employeesInDB = db.Employees.OrderByDescending(p => p.employeeID).ToList();
            }

            #region Cases for dropdown menu changes
            if (DropDown_SortingOptions.Text.Equals("Newest"))
            {
                using (var db = new BenefitsContext())
                {
                    employeesInDB = db.Employees.OrderByDescending(p => p.employeeID).ToList();
                }
            }
            else if (DropDown_SortingOptions.Text.Equals("Oldest"))
            {
                using (var db = new BenefitsContext())
                {
                    employeesInDB = db.Employees.OrderBy(p => p.employeeID).ToList();
                }
            }
            else if (DropDown_SortingOptions.Text.Equals("Last name"))
            {
                using (var db = new BenefitsContext())
                {
                    employeesInDB = db.Employees.OrderBy(p => p.lastName).ToList();
                }
            }
            else if (DropDown_SortingOptions.Text.Equals("First name"))
            {
                using (var db = new BenefitsContext())
                {
                    employeesInDB = db.Employees.OrderBy(p => p.firstName).ToList();
                }
            }
            else if (DropDown_SortingOptions.Text.Equals("Dependents (high to low)"))
            {
                using (var db = new BenefitsContext())
                {
                    employeesInDB = db.Employees.OrderByDescending(p => p.Dependents.Count).ToList();
                }
            }
            else if (DropDown_SortingOptions.Text.Equals("Dependents (low to high)"))
            {
                using (var db = new BenefitsContext())
                {
                    employeesInDB = db.Employees.OrderBy(p => p.Dependents.Count).ToList();
                }
            }
            #endregion

            foreach (Employee emp in employeesInDB)
            {
                TableCell idCell                = new TableCell();
                TableCell lastCell              = new TableCell();
                TableCell firstCell             = new TableCell();
                TableCell depNumCell            = new TableCell();
                TableCell costPerYearCell       = new TableCell();
                TableCell paycheckDeductionCell = new TableCell();
                TableCell amountPerPaycheckCell = new TableCell();
                TableCell viewDetailsButtonCell = new TableCell();

                idCell.Text    = emp.employeeNumber.ToString();
                lastCell.Text  = emp.lastName;
                firstCell.Text = emp.firstName;
                List <Dependent> dependentsInDB = new List <Dependent>();
                int dependentsCount             = 0;
                using (var db = new BenefitsContext())
                {
                    dependentsInDB = db.Dependents.ToList();
                }
                foreach (Dependent dependent in dependentsInDB)
                {
                    if (dependent.employeeID == emp.employeeID)
                    {
                        dependentsCount++;
                    }
                }

                depNumCell.Text            = dependentsCount.ToString();
                costPerYearCell.Text       = emp.cost.ToString("C2");
                amountPerPaycheckCell.Text = emp.paycheckAfterDeductions.ToString("C2");
                paycheckDeductionCell.Text = emp.deductionsPerPaycheck.ToString("C2");

                Button Button_ViewDetails = new Button();
                Button_ViewDetails.ID       = $"ViewDetails_{emp.employeeID}";
                Button_ViewDetails.Text     = "View/Edit Details";
                Button_ViewDetails.CssClass = "btn";
                Button_ViewDetails.Click   += new EventHandler(Button_ViewDetails_Click);
                viewDetailsButtons.Add(Button_ViewDetails);
                viewDetailsButtonCell.Controls.Add(Button_ViewDetails);

                TableRow row = new TableRow();

                row.Cells.Add(idCell);
                row.Cells.Add(lastCell);
                row.Cells.Add(firstCell);
                row.Cells.Add(depNumCell);
                row.Cells.Add(costPerYearCell);
                row.Cells.Add(paycheckDeductionCell);
                row.Cells.Add(amountPerPaycheckCell);
                row.Cells.Add(viewDetailsButtonCell);

                Table_EmployeeView.Rows.Add(row);
                numberOfDataPopulatedRows++;
            }
            if (numberOfDataPopulatedRows > 1)
            {
                sortingButtonsPanel.Visible = true;
            }
        }
Beispiel #10
0
        /// <summary>
        /// Create the employee based off of their text boxes being filled;
        /// then cycle through the form's viewstate to collect information
        /// from the generated text boxes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button_SubmitWithDependents_Click(object sender, EventArgs e)
        {
            /// PART 1: CREATE THE EMPLOYEE AND ADD THEM TO DB
            string employee_fname = TextBox_EmployeeFirstName.Text;
            string employee_lname = TextBox_EmployeeLastName.Text;

            Employee newEmployee = createStandardEmployeeWithDependents(employee_fname, employee_lname);

            using (var db = new BenefitsContext())
            {
                db.Employees.Add(newEmployee);
                db.SaveChanges();
            }

            /// PART 2: CYCLE THROUGH ALL YOUR FIELDS AND ADD DEPENDENTS BASED ON THE EXISTING
            /// FIELDS
            for (int i = 0; i < Request.Form.Count; i++)
            {
                if (Request.Form.AllKeys[i].Contains("dep_FirstName")) // indicates that the text boxes for names exist
                {
                    Dependent newDependent = new Dependent();
                    newDependent.cost = 500;

                    int ParamStartPoint = Request.Form.AllKeys[i].IndexOf("dep_First");
                    int ParamNameLength = Request.Form.AllKeys[i].Length - ParamStartPoint - 1;

                    string[] ControlName = Request.Form.AllKeys[i].Substring(ParamStartPoint, ParamNameLength).Split('$');

                    if (ControlName[0] == "dep_FirstName")
                    {
                        newDependent.firstName = Request.Form[i];
                    }
                    i++;
                    if (Request.Form.AllKeys[i].Contains("dep_LastName")) // indicates that the text boxes exist
                    {
                        int ParamStartPoint2 = Request.Form.AllKeys[i].IndexOf("dep_Last");
                        int ParamNameLength2 = Request.Form.AllKeys[i].Length - ParamStartPoint2 - 1;

                        string[] ControlName2 = Request.Form.AllKeys[i].Substring(ParamStartPoint2, ParamNameLength2).Split('$');

                        if (ControlName2[0] == "dep_LastName")
                        {
                            newDependent.lastName = Request.Form[i];
                        }
                    }
                    apply10PercentOffIfApplicable(newDependent);
                    newEmployee.cost       += newDependent.cost;
                    newDependent.employeeID = newEmployee.employeeID; // we have the info to add the dependent!
                    using (var db = new BenefitsContext())
                    {
                        db.Dependents.Add(newDependent);
                        Employee employeeToUpdate = db.Employees.Find(newEmployee.employeeID);
                        employeeToUpdate.cost = newEmployee.cost;
                        employeeToUpdate.deductionsPerPaycheck    = employeeToUpdate.cost / 26;
                        employeeToUpdate.paycheckBeforeDeductions = 2000;
                        employeeToUpdate.paycheckAfterDeductions  = employeeToUpdate.paycheckBeforeDeductions - employeeToUpdate.deductionsPerPaycheck;
                        db.SaveChanges();
                    }
                }
            }
            Response.Redirect("~/ViewEmployees.aspx");
        }
Beispiel #11
0
        /// <summary>
        /// Helper to cycle through many dependent fields, taking into account the two
        /// different cases. 1) Adding a brand new employee with dependents, and 2)
        /// Adding brand new dependents to an existing employee.
        /// </summary>
        /// <param name="newEmployee"></param>
        private void createDependentsFromFields(Employee newEmployee)
        {
            for (int i = 0; i < Request.Form.Count; i++)
            {
                Dependent newDependent = new Dependent();

                if (Request.Form.AllKeys[i].Contains("dep_firstname"))
                {
                    int      dep_firstNameIndex  = Request.Form.AllKeys[i].IndexOf("dep_firstname");
                    int      dep_firstNameLength = Request.Form.AllKeys[i].Length - dep_firstNameIndex;
                    string[] dep_firstNameValue  = Request.Form.AllKeys[i].Substring(dep_firstNameIndex, dep_firstNameLength).Split('$');

                    if (dep_firstNameValue[0].Contains("dep_firstname"))
                    {
                        if (passedFirstDependentField) // multiple dependents
                        {
                            string[] firstnames = Request.Form[i].Split(',');
                            if (firstnames[0].Equals(""))
                            {
                                break;
                            }
                            i++;
                            string[] lastNames = Request.Form[i].Split(',');
                            for (int extraDependentCount = 0; extraDependentCount < firstnames.Length; extraDependentCount++)
                            {
                                newDependent            = new Dependent();
                                newDependent.employeeID = newEmployee.employeeID;

                                if (!firstnames[extraDependentCount].Equals("") && !lastNames[extraDependentCount].Equals(""))
                                {
                                    newDependent.firstName = firstnames[extraDependentCount];
                                    newDependent.lastName  = lastNames[extraDependentCount];
                                    newDependent.cost      = 500;
                                    apply10PercentOffIfApplicable(newDependent);
                                    using (var db = new BenefitsContext())
                                    {
                                        Employee toUpdate = db.Employees.FirstOrDefault(p => p.employeeID == newEmployee.employeeID);
                                        toUpdate.cost += newDependent.cost;
                                        toUpdate.deductionsPerPaycheck   = toUpdate.cost / 26;
                                        toUpdate.paycheckAfterDeductions = toUpdate.paycheckBeforeDeductions - toUpdate.deductionsPerPaycheck;

                                        db.Dependents.Add(newDependent);
                                        db.SaveChanges();
                                    }
                                }
                            }
                        }
                        string firstName = Request.Form[i];
                        i++;
                        string lastName = Request.Form[i];
                        newDependent = createInitialDependent(newEmployee.employeeID, firstName, lastName);
                        if (addingDependentsFromEmployee)
                        {
                            newDependent.employeeID = incomingEmployeeID;
                        }
                        else
                        {
                            newDependent.employeeID = newEmployee.employeeID;
                        }
                    }

                    if (!passedFirstDependentField)
                    {
                        using (var db = new BenefitsContext())
                        {
                            if (!addingDependentsFromEmployee)
                            {
                                Employee toUpdate = db.Employees.FirstOrDefault(p => p.employeeID == newEmployee.employeeID);
                                toUpdate.cost += newDependent.cost;
                                toUpdate.deductionsPerPaycheck   = toUpdate.cost / 26;
                                toUpdate.paycheckAfterDeductions = toUpdate.paycheckBeforeDeductions - toUpdate.deductionsPerPaycheck;
                            }
                            else
                            {
                                Employee toUpdate = db.Employees.FirstOrDefault(p => p.employeeID == incomingEmployeeID);
                                toUpdate.cost += newDependent.cost;
                                toUpdate.deductionsPerPaycheck   = toUpdate.cost / 26;
                                toUpdate.paycheckAfterDeductions = toUpdate.paycheckBeforeDeductions - toUpdate.deductionsPerPaycheck;
                            }
                            db.Dependents.Add(newDependent);
                            db.SaveChanges();
                        }
                        passedFirstDependentField = true;
                    }
                }
            }
        }