static void Main(string[] args)
        {
            while (true)
            {
                /// users chooses from one of these prompts
                Console.WriteLine("Choose from one of the options below?");
                Console.WriteLine("--------------------------------------");
                Console.WriteLine("1. Show all deparments");
                Console.WriteLine("2. Show specific department by Id");
                Console.WriteLine("3. Add new department");
                Console.WriteLine("4. Update department Id");
                Console.WriteLine("5. Delete department by Id");
                Console.WriteLine("6. Show all employees");
                Console.WriteLine("7. Show specific employee by Id");
                Console.WriteLine("8. Add a new employee");
                Console.WriteLine("9. Update an employee");
                Console.WriteLine("10. Delete an employee");


                var choice = Console.ReadLine();
                DepartmentRepository departments = new DepartmentRepository();
                EmployeeRepository   employees   = new EmployeeRepository();

                switch (Int32.Parse(choice))
                {
                case 1:

                    Console.WriteLine("Getting all Departments:");
                    Console.WriteLine();

                    List <Department> allDepartments = departments.GetAllDepartments();

                    foreach (Department dept in allDepartments)
                    {
                        Console.WriteLine($"{dept.Id} {dept.DeptName}");
                    }
                    break;

                case 2:

                    Console.WriteLine("Enter department Id.");
                    var deptChoice = int.Parse(Console.ReadLine());
                    Console.WriteLine($"Getting department {deptChoice}");

                    Department singleDepartment = departments.GetDepartmentById(deptChoice);

                    Console.WriteLine($"{singleDepartment.Id}. {singleDepartment.DeptName}");
                    break;

                case 3:

                    Console.WriteLine("Enter the name of new department.");
                    var        deptName      = Console.ReadLine();
                    Department newDepartment = new Department
                    {
                        DeptName = deptName
                    };

                    departments.AddDepartment(newDepartment);
                    Console.WriteLine($"Add new {deptName} to Departments.");


                    break;

                case 4:

                    //Console.WriteLine("Enter the name of the department you wish to update.");
                    //var deptName = Console.ReadLine();

                    break;

                case 5:

                    Console.WriteLine("Enter the Id of the deptarment you would like to delete.");
                    var deleteChoice = int.Parse(Console.ReadLine());

                    departments.DeleteDepartment(deleteChoice);
                    Console.WriteLine($"Department with Id of {deleteChoice} was deleted.");

                    break;

                case 6:

                    Console.WriteLine("Getting all employees");
                    Console.WriteLine("");

                    List <Employee> allEmployees = employees.GetAllEmployees();

                    foreach (Employee e in allEmployees)
                    {
                        Console.WriteLine($"{e.Id}. {e.FirstName} {e.LastName}");
                    }

                    break;

                case 7:

                    Console.WriteLine("Enter employee by Id.");
                    var employeeId = int.Parse(Console.ReadLine());
                    Console.WriteLine($"Getting employee {employeeId}");

                    Employee singleEmployee = employees.GetEmployeeById(employeeId);

                    Console.WriteLine($"{singleEmployee.Id} {singleEmployee.FirstName} {singleEmployee.LastName}");

                    break;

                case 8:

                    Console.WriteLine("Enter the first name of new employee.");
                    var eFirstName = Console.ReadLine();

                    Console.WriteLine("Enter the last name of new employee.");
                    var eLastName = Console.ReadLine();

                    Console.WriteLine("Enter departmentId of new employee.");
                    var eDeptName = int.Parse(Console.ReadLine());


                    Employee newEmployee = new Employee
                    {
                        FirstName    = eFirstName,
                        LastName     = eLastName,
                        DepartmentId = eDeptName
                    };

                    employees.AddEmployee(newEmployee);
                    Console.WriteLine($"Add new {eFirstName} {eLastName} to employees.");


                    break;

                case 9:

                    //Console.WriteLine("Enter the name of the department you wish to update.");
                    //var deptName = Console.ReadLine();

                    break;

                case 10:

                    Console.WriteLine("Enter the Id of the employee you would like to delete.");
                    var deleteEmployee = int.Parse(Console.ReadLine());

                    employees.DeleteEmployee(deleteEmployee);
                    Console.WriteLine($"Department with Id of {deleteEmployee} was deleted.");

                    break;

                default:
                    break;
                }
            }
        }
        static void Main(string[] args)
        {
            var departmentRepo = new DepartmentRepository();

            Console.WriteLine("Getting All Departments:");
            Console.WriteLine();

            List <Department> allDepartments = departmentRepo.GetAllDepartments();

            foreach (Department dept in allDepartments)
            {
                Console.WriteLine($"{dept.Id} {dept.DepartmentName}");
            }

            var hardCodedId       = 3;
            var departmentWithId3 = departmentRepo.GetDepartmentById(hardCodedId);

            Console.WriteLine(".............................");
            Console.WriteLine($"Department with Id {hardCodedId} is {departmentWithId3.DepartmentName}");

            var employeeRepo = new EmployeeRepository();

            List <Employee> allEmployees = employeeRepo.GetAllemployees();

            foreach (Employee person in allEmployees)
            {
                Console.WriteLine($"{person.Id} {person.FirstName} {person.LastName} working in {person.DeptName}");
            }

            var employee1 = employeeRepo.GetEmployeeById(1);

            Console.WriteLine(".............................");
            Console.WriteLine($"Employee with Id 1 is {employee1.FirstName} {employee1.LastName} works in {employee1.DeptName}");

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            //ADDING UPDATING DEPTS

            //var newDept = new Department();

            //Console.WriteLine("What dept would you like to add?");

            //newDept.DepartmentName = Console.ReadLine();


            //departmentRepo.AddDepartment(newDept);

            //Console.WriteLine("what Dept Id to change?");
            //var deptToUpdate = Int32.Parse(Console.ReadLine());

            //Console.WriteLine("what to call it?");
            //var newDeptName = Console.ReadLine();



            //departmentRepo.UpdateDepartment(deptToUpdate, new Department { DepartmentName = newDeptName });

            //delete department

            //departmentRepo.DeleteDepartment(1);

            //ADDING NEW EMPLOYEE

            //employeeRepo.AddEmployee(new Employee { FirstName = "jojo", LastName = "bob", DepartmentId = 1 });

            //UPDATING EMPLOYEE

            // employeeRepo.UpdateEmployee(4, new Employee { FirstName = "hoho", LastName = "bob", DepartmentId = 1 });

            //DELETE EMPLOYEE

            employeeRepo.DeleteEmployee(4);
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            var departmentRepo = new DepartmentRepository();

            var allDepartments = departmentRepo.GetAllDepartments();

            Console.WriteLine("All Departments");
            Console.WriteLine("----------------");
            foreach (var dept in allDepartments)
            {
                Console.WriteLine(dept.DepartmentName);
            }

            var hardCodeId = 3;

            var departmentWithId3 = departmentRepo.GetDepartmentById(hardCodeId);

            Console.WriteLine("-----------------");
            Console.WriteLine($"Department with id {hardCodeId} is {departmentWithId3.DepartmentName}");


            var employeeRepo = new EmployeeRepository();

            var allEmployees = employeeRepo.GetAllEmployees();

            Console.WriteLine("All Employees");
            Console.WriteLine("----------------");
            foreach (var emp in allEmployees)
            {
                Console.WriteLine(emp.FirstName);
                Console.WriteLine(emp.LastName);
            }

            var empHardCodeId = 3;

            var empWithId3 = employeeRepo.GetEmployeeById(empHardCodeId);

            Console.WriteLine("-----------------");
            Console.WriteLine($"Department with id {empHardCodeId} is {empWithId3.FirstName} {empWithId3.LastName}");

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            var allEmployeesWithDept = employeeRepo.GetAllEmployeesWithDepartment();

            Console.WriteLine("Employees with Department");
            Console.WriteLine("------------------");
            foreach (var emp in allEmployeesWithDept)
            {
                Console.WriteLine(emp.FirstName);
                Console.WriteLine(emp.LastName);
                Console.WriteLine(emp.Department);
            }

            var legal = new Department();

            Console.WriteLine("What department would you like to add?");

            legal.DepartmentName = Console.ReadLine();

            departmentRepo.AddDepartment(legal);

            Console.WriteLine("What Department (ID) would you like to update?");
            var departmentToUpdate = Int32.Parse(Console.ReadLine());

            Console.WriteLine("What should the new department name be called?");
            var newDepartmentName = Console.ReadLine();

            departmentRepo.UpdateDepartment(departmentToUpdate, new Department {
                DepartmentName = newDepartmentName
            });

            departmentRepo.DeleteDepartment(7);
            departmentRepo.DeleteDepartment(8);
            departmentRepo.DeleteDepartment(9);
        }
        static void Main(string[] args)
        {
            //// Get All Departments
            //var departmentRepo = new DepartmentRepository();
            //var allDepartments = departmentRepo.GetAllDepartments();

            //Console.WriteLine("All Departments");
            //Console.WriteLine("---------------");
            //foreach (var dept in allDepartments)
            //{
            //    Console.WriteLine(dept.DepartmentName);
            //}
            //// Get Department by Id
            //var hardCodedId = 3;
            //var departmentWithId3 = departmentRepo.GetDepartmentById(hardCodedId);
            //Console.WriteLine("---------------");
            //Console.WriteLine($"Department with id {hardCodedId} is {departmentWithId3.DepartmentName}");


            // Get all Employees
            var employeeRepo = new EmployeeRepository();
            var allEmployees = employeeRepo.GetAllEmployees();

            Console.WriteLine("All Employees");
            Console.WriteLine("---------------");
            foreach (var employee in allEmployees)
            {
                Console.WriteLine($"{employee.FirstName} {employee.LastName} {employee.DeptName}");
            }

            // Get Employee by Id
            var employeeHardCodedId = 3;
            var employeeWithId4     = employeeRepo.GetEmployeeById(employeeHardCodedId);

            Console.WriteLine("---------------");
            Console.WriteLine($"Employee with id {employeeHardCodedId} is {employeeWithId4.FirstName}{employeeWithId4.LastName}");

            Console.WriteLine();
            Console.WriteLine();


            Console.WriteLine("-----------------");

            //// Add a new Department
            //var legal = new Department();
            //Console.WriteLine("What department do you like to add?");
            //legal.DepartmentName = Console.ReadLine();
            //departmentRepo.AddDepartment(legal);

            //// Update a Department
            //Console.WriteLine("What Department (ID) would you like to update?");
            //var departmentToUpdate = Int32.Parse(Console.ReadLine());
            //Console.WriteLine("What should the new department name be called?");
            //var newDepartmentName = Console.ReadLine();
            //departmentRepo.UpdateDepartment(departmentToUpdate, new Department { DepartmentName = newDepartmentName });

            //// Delete a Department
            //Console.WriteLine("What Department (ID) would you like to delete?");
            //var departmentDelete = Int32.Parse(Console.ReadLine());
            //departmentRepo.DeleteDepartment(departmentDelete);

            //// Add a new Employee
            //var newEmployee = new Employee();
            //Console.WriteLine("What is your Employee's first name?");
            //newEmployee.FirstName = Console.ReadLine();
            //Console.WriteLine("What is your Employee's last name?");
            //newEmployee.LastName = Console.ReadLine();
            //Console.WriteLine("What department does your Employee work in?");
            //newEmployee.DepartmentId = Int32.Parse(Console.ReadLine());

            //employeeRepo.AddEmployee(newEmployee);


            ////// Update an Employee
            //Console.WriteLine("What is the ID of the Employee would you like to update?");
            //var employeeToUpdate = Int32.Parse(Console.ReadLine());

            //var updateEmployee = new Employee();
            //Console.WriteLine("What is the employee's new first name?");
            //updateEmployee.FirstName = Console.ReadLine();
            //Console.WriteLine("What is the employee's new first name?");
            //updateEmployee.LastName = Console.ReadLine();
            //Console.WriteLine("What is the new department (ID) of your employee?");
            //updateEmployee.DepartmentId = Int32.Parse(Console.ReadLine());

            //employeeRepo.UpdateEmployee(employeeToUpdate, updateEmployee);

            //// Delete a Department
            Console.WriteLine("What Employee (ID) would you like to delete?");
            var employeeDelete = Int32.Parse(Console.ReadLine());

            employeeRepo.DeleteEmployee(employeeDelete);
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("What would you like to do?");
                Console.WriteLine("");
                Console.WriteLine("1. Show all departments");
                Console.WriteLine("2. Show specific department by Id");
                Console.WriteLine("3. Add new department");
                Console.WriteLine("4. Update department information");
                Console.WriteLine("5. Delete department by Id");
                Console.WriteLine("6. Show all employees");
                Console.WriteLine("7. Show specific employee by Id");
                Console.WriteLine("8. Show all employees by department");
                Console.WriteLine("9. Add new employee");
                Console.WriteLine("10. Update employee information");
                Console.WriteLine("11. Delete employee by Id");

                var choice = Console.ReadLine();
                DepartmentRepository departmentRepo = new DepartmentRepository();
                EmployeeRepository   employeeRepo   = new EmployeeRepository();

                switch (Int32.Parse(choice))
                {
                case 1:

                    Console.WriteLine("Getting All Departments:");
                    Console.WriteLine();

                    List <Department> allDepartments = departmentRepo.GetAllDepartments();

                    foreach (Department dept in allDepartments)
                    {
                        Console.WriteLine($"{dept.Id} {dept.DeptName}");
                    }
                    break;

                case 2:
                    Console.WriteLine("Enter Id of department");
                    var departmentChoice = int.Parse(Console.ReadLine());
                    Console.WriteLine($"Getting department with Id of {departmentChoice}");
                    Department singleDepartment = departmentRepo.GetDepartmentById(departmentChoice);

                    Console.WriteLine($"{singleDepartment.Id} {singleDepartment.DeptName}");
                    break;

                case 3:
                    Console.WriteLine("Enter the name of the new department");
                    var        departmentName = Console.ReadLine();
                    Department newDepartment  = new Department
                    {
                        DeptName = departmentName
                    };

                    departmentRepo.AddDepartment(newDepartment);
                    Console.WriteLine($"Added the new {departmentName} Department!");
                    break;

                case 4:
                    Console.WriteLine("Update Department Info");
                    //TBD
                    break;

                case 5:
                    Console.WriteLine("Enter the Id of the department you would like to delete");
                    var deleteDeptChoice = int.Parse(Console.ReadLine());

                    departmentRepo.DeleteDepartment(deleteDeptChoice);
                    Console.WriteLine($"Department with the Id of {deleteDeptChoice} has been deleted.");
                    break;

                case 6:
                    Console.WriteLine("Getting All Employees:");
                    Console.WriteLine();

                    List <Employee> allEmployees = employeeRepo.GetAllEmployees();

                    foreach (Employee emp in allEmployees)
                    {
                        Console.WriteLine($"{emp.FirstName} {emp.LastName}");
                    }

                    break;

                case 7:
                    Console.WriteLine("Enter the Id of the employee you would like to view");
                    var      chosenEmployeeId = int.Parse(Console.ReadLine());
                    Employee singleEmployee   = employeeRepo.GetEmployeeById(chosenEmployeeId);

                    Console.WriteLine($"Getting Employee with Id of {chosenEmployeeId}.");

                    Console.WriteLine($"{singleEmployee.Id} {singleEmployee.FirstName} {singleEmployee.LastName}");
                    break;

                case 8:
                    List <Employee> allDepartmentEmployees = employeeRepo.GetAllEmployeesWithDepartment();

                    foreach (Employee emp in allDepartmentEmployees)
                    {
                        Console.WriteLine($"{emp.FirstName} {emp.LastName} - {emp.Department.DeptName}");
                    }
                    break;

                case 9:
                    Console.WriteLine("Enter new employee's first name");
                    var newEmployeeFirstName = Console.ReadLine();
                    Console.WriteLine("Enter new employee's last name");
                    var newEmployeeLastName = Console.ReadLine();
                    Console.WriteLine("Enter new employee's department Id");
                    var newEmployeeDeptId = int.Parse(Console.ReadLine());

                    Employee newEmployee = new Employee
                    {
                        FirstName    = newEmployeeFirstName,
                        LastName     = newEmployeeLastName,
                        DepartmentId = newEmployeeDeptId
                    };

                    employeeRepo.AddEmployee(newEmployee);
                    Console.WriteLine($"Added {newEmployee.FirstName} {newEmployee.LastName} as a new employee!");
                    break;

                case 10:
                    Console.WriteLine("Update Employee Info");
                    //TBD
                    break;

                case 11:
                    Console.WriteLine("Enter the Id of the employee you would like to delete");
                    var deleteEmployeeId = int.Parse(Console.ReadLine());
                    employeeRepo.DeleteEmployee(deleteEmployeeId);
                    Console.WriteLine($"Employee with the Id of {deleteEmployeeId} has been deleted");
                    break;

                default:
                    break;
                }
            }
        }
        static void Main(string[] args)
        {
            //Setting a new instance of the employee repository and dept repo to a variable. Remeber to use the using statement at the top!
            var repo     = new EmployeeRepository();
            var deptRepo = new DepartmentRepository();
            //That both classes has method that gets all employees. Use it and store all them employees in a var.


            var employeeWithId2 = repo.GetEmployeeById(2);


            while (true)
            {
                var departments = deptRepo.GetAllDepartments();
                var employees   = repo.GetAllEmployees();
                Console.WriteLine("Press 1 for Departments: ");
                Console.WriteLine("Press 2 for Employees: ");
                Console.WriteLine("Press 3 for Company Report: ");
                Console.WriteLine("Press 4 to exit: ");

                string option = Console.ReadLine();

                if (option == "1")
                {
                    Console.Clear();
                    Console.WriteLine("---DEPARTMENTS---");
                    Console.WriteLine("Press 1 to add a Department");
                    Console.WriteLine("Press 2 Delete a Department");
                    Console.WriteLine("Press 3 to return to main");
                    string deptOption = Console.ReadLine();

                    switch (Int32.Parse(deptOption))
                    {
                    case 1:
                        Console.Clear();
                        Console.WriteLine("Name of Department?");
                        var        deptNameInput = Console.ReadLine();
                        Department newDepartment = new Department()
                        {
                            DeptName = deptNameInput
                        };
                        deptRepo.AddDepartment(newDepartment);
                        break;

                    case 2:
                        Console.Clear();
                        Console.WriteLine("Delete which Department?");
                        for (var i = 0; i < departments.Count; i++)
                        {
                            Console.WriteLine($"{departments[i].Id}  {departments[i].DeptName}");
                        }
                        var deleteDeptInput = Int32.Parse(Console.ReadLine());
                        deptRepo.DeleteDepartment(deleteDeptInput);
                        break;

                    case 3:
                        break;

                    default:
                        break;
                    }
                }
                else if (option == "2")
                {
                    Console.Clear();
                    Console.WriteLine("---EMPLOYEES---");
                    Console.WriteLine("Press 1 to add an employee");
                    Console.WriteLine("Press 2 to release an Employee");
                    Console.WriteLine("Press 3 to return to main");
                    string empOption = Console.ReadLine();

                    switch (Int32.Parse(empOption))
                    {
                    case 1:
                        Console.Clear();
                        Console.WriteLine("First name of Employee?");
                        var employeeFirstNameInput = Console.ReadLine();
                        Console.WriteLine("Last Name of Employee?");
                        var employeeLastNameInput = Console.ReadLine();
                        Console.WriteLine("Which Department do they work in?");
                        foreach (var dept in departments)
                        {
                            Console.WriteLine($"{dept.Id} {dept.DeptName}");
                        }
                        var employeeDeptChoice = Console.ReadLine();
                        var selectedDept       = departments.Where(dept => int.Parse(employeeDeptChoice) == dept.Id).FirstOrDefault();

                        Employee newEmployee = new Employee()
                        {
                            FirstName = employeeFirstNameInput, LastName = employeeLastNameInput, DepartmentId = selectedDept.Id
                        };
                        repo.AddEmployee(newEmployee);
                        break;

                    case 2:
                        Console.Clear();
                        Console.WriteLine("Employee to be released");
                        for (int i = 0; i < employees.Count; i++)
                        {
                            Console.WriteLine($"{employees[i].Id}  {employees[i].FirstName} {employees[i].LastName}");
                        }
                        var deleteEmployeeInput = Int32.Parse(Console.ReadLine());
                        repo.DeleteEmployee(deleteEmployeeInput);
                        break;

                    case 3:
                        break;

                    default:
                        break;
                    }
                }
                else if (option == "3")
                {
                    Console.Clear();
                    Console.WriteLine("------------------");
                    foreach (var dept in departments)
                    {
                        Console.WriteLine($"{dept.DeptName} has the following employees:");
                        foreach (var employee in employees)
                        {
                            if (employee.DepartmentId == dept.Id)
                            {
                                Console.WriteLine($"{employee.FirstName} {employee.LastName}");
                            }
                        }
                    }
                    Console.WriteLine("------------------");
                }
                else
                {
                    Console.WriteLine("End");
                    break;
                }
            }
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            //Setting a new instance of the employee repository and dept repo to a variable. Remeber to use the using statement at the top!
            var repo     = new EmployeeRepository();
            var deptRepo = new DepartmentRepository();
            //That both classes has method that gets all employees. Use it and store all them employees in a var.


            var employeeWithId2 = repo.GetEmployeeById(2);


            while (true)
            {
                var departments = deptRepo.GetAllDepartments();
                var employees   = repo.GetAllEmployees();
                Console.WriteLine("Welcome to muh Database!!");
                Console.WriteLine("Press 1 for Departments");
                Console.WriteLine("Press 2 for Employee");
                Console.WriteLine("Press 3 for a full report");
                Console.WriteLine("Press 4 to get outta here");

                string option = Console.ReadLine();

                if (option == "1")
                {
                    Console.Clear();
                    Console.WriteLine("---DEPARTMENTS---");
                    Console.WriteLine("Press 1 to add a Department");
                    Console.WriteLine("Press 2 to add a Delete");
                    Console.WriteLine("Press 3 to return");
                    string deptOption = Console.ReadLine();

                    switch (Int32.Parse(deptOption))
                    {
                    case 1:
                        Console.Clear();
                        Console.WriteLine("Name of Department?");
                        var        deptNameInput = Console.ReadLine();
                        Department newDepartment = new Department()
                        {
                            DeptName = deptNameInput
                        };
                        deptRepo.AddDepartment(newDepartment);
                        break;

                    case 2:
                        Console.Clear();
                        Console.WriteLine("Delete which Department?");
                        for (var i = 0; i < departments.Count; i++)
                        {
                            Console.WriteLine($"{departments[i].Id}  {departments[i].DeptName}");
                        }
                        var deleteDeptInput = Int32.Parse(Console.ReadLine());
                        try
                        {
                            deptRepo.DeleteDepartment(deleteDeptInput);
                            break;
                        }
                        catch
                        {
                            Console.Clear();
                            Console.WriteLine("Cannot delete department with working employees.");
                            Console.WriteLine("Please fire or transfer:");
                            Console.WriteLine("");
                            foreach (var employee in employees)
                            {
                                if (employee.DepartmentId == deleteDeptInput)
                                {
                                    Console.WriteLine($"{employee.FirstName} {employee.LastName}");
                                }
                            }
                            Console.WriteLine("Press enter to return");
                            Console.ReadLine();
                            break;
                        }

                    case 3:
                        break;

                    default:
                        break;
                    }
                }
                else if (option == "2")
                {
                    Console.Clear();
                    Console.WriteLine("---EMPLOYEES---");
                    Console.WriteLine("Press 1 to add an employee");
                    Console.WriteLine("Press 2 to Fire an Employee");
                    Console.WriteLine("Press 3 to update an employee");
                    Console.WriteLine("Press 4 to return");
                    string empOption = Console.ReadLine();

                    switch (Int32.Parse(empOption))
                    {
                    case 1:
                        Console.Clear();
                        Console.WriteLine("First name of Employee?");
                        var employeeFirstNameInput = Console.ReadLine();
                        Console.WriteLine("Last Name of Employee?");
                        var employeeLastNameInput = Console.ReadLine();
                        Console.WriteLine("Which Department do they work in?");
                        foreach (var dept in departments)
                        {
                            Console.WriteLine($"{dept.Id} {dept.DeptName}");
                        }
                        var employeeDeptChoice = Console.ReadLine();
                        var selectedDept       = departments.Where(dept => int.Parse(employeeDeptChoice) == dept.Id).FirstOrDefault();

                        Employee newEmployee = new Employee()
                        {
                            FirstName = employeeFirstNameInput, LastName = employeeLastNameInput, DepartmentId = selectedDept.Id
                        };
                        repo.AddEmployee(newEmployee);
                        break;

                    case 2:
                        Console.Clear();
                        Console.WriteLine("Fire which Employee?");
                        for (var i = 0; i < employees.Count; i++)
                        {
                            Console.WriteLine($"{employees[i].Id}  {employees[i].FirstName} {employees[i].LastName}");
                        }
                        var deleteEmployeeInput = Int32.Parse(Console.ReadLine());
                        repo.DeleteEmployee(deleteEmployeeInput);
                        break;

                    case 3:
                        Console.Clear();
                        Console.WriteLine("Who you want to update?");
                        for (var i = 0; i < employees.Count; i++)
                        {
                            Console.WriteLine($"{employees[i].Id}  {employees[i].FirstName} {employees[i].LastName}");
                        }
                        var updateEmployeeInput = Int32.Parse(Console.ReadLine());
                        var selectedEmployee    = repo.GetEmployeeById(updateEmployeeInput);
                        Console.Clear();
                        Console.WriteLine($"{selectedEmployee.FirstName} {selectedEmployee.LastName} who works in {selectedEmployee.Department.DeptName}");
                        Console.WriteLine("");
                        Console.WriteLine("What would you like to update?");
                        Console.WriteLine("1. Name");
                        Console.WriteLine("2. Department");
                        var selectedUpdateInput = Console.ReadLine();
                        switch (Int32.Parse(selectedUpdateInput))
                        {
                        case 1:
                            Console.WriteLine("Enter in new first name?");
                            var newFirstName = Console.ReadLine();
                            Console.WriteLine("Enter in new last name?");
                            var newLastName = Console.ReadLine();
                            selectedEmployee.FirstName = newFirstName;
                            selectedEmployee.LastName  = newLastName;
                            repo.UpdateEmployee(selectedEmployee.Id, selectedEmployee);
                            break;

                        case 2:
                            Console.WriteLine("What department do they work in now?");
                            for (var i = 0; i < departments.Count; i++)
                            {
                                Console.WriteLine($"{departments[i].Id}  {departments[i].DeptName}");
                            }
                            var selectedDeptInput = Int32.Parse(Console.ReadLine());

                            var newDept = departments.First(dept => dept.Id == selectedDeptInput);
                            selectedEmployee.DepartmentId = newDept.Id;
                            repo.UpdateEmployee(selectedEmployee.Id, selectedEmployee);
                            break;

                        default:
                            break;
                        }



                        break;

                    case 4:
                        break;

                    default:
                        break;
                    }
                }
                else if (option == "3")
                {
                    Console.Clear();
                    Console.WriteLine("------------------");
                    foreach (var dept in departments)
                    {
                        Console.WriteLine($"{dept.DeptName} has the following employees:");
                        foreach (var employee in employees)
                        {
                            if (employee.DepartmentId == dept.Id)
                            {
                                Console.WriteLine($"{employee.FirstName} {employee.LastName}");
                            }
                        }
                    }
                    Console.WriteLine("------------------");
                }
                else
                {
                    Console.WriteLine("See ya Later");
                    break;
                }
            }
        }
        static void Main(string[] args)
        {
            var departmentRepo = new DepartmentRepository();

            //Console.WriteLine("Getting All Departments:");
            //Console.WriteLine();

            List <Department> allDepartments = departmentRepo.GetAllDepartments();

            //foreach (Department dept in allDepartments)
            //{
            //    Console.WriteLine($"{dept.Id} {dept.DeptName}");
            //}


            //Console.WriteLine("----------------------------");
            //Console.WriteLine("Getting Department with Id 1");

            //Department singleDepartment = departmentRepo.GetDepartmentById(1);

            //Console.WriteLine($"{singleDepartment.Id} {singleDepartment.DeptName}");

            //Department legalDept = new Department
            //{
            //    DeptName = "Legal"
            //};

            //departmentRepo.AddDepartment(legalDept);

            //Console.WriteLine("-------------------------------");
            //Console.WriteLine("Added the new Legal Department!");

            var employeeRepo = new EmployeeRepository();
            var employees    = employeeRepo.GetAllEmployees();

            //foreach(var employee in employees)
            //{
            //    Console.WriteLine($"{employee.FirstName} {employee.LastName} is in {employee.Department.DeptName}");
            //}

            while (true)
            {
                Console.WriteLine("Select an option ");
                Console.WriteLine("1. Add A Department");
                Console.WriteLine("2. Add An Employee");
                Console.WriteLine("3. Update A Department");
                Console.WriteLine("4. Update An Employee");
                Console.WriteLine("5. Delete A Department");
                Console.WriteLine("6. Delete A Employee");



                switch (int.Parse(Console.ReadLine()))
                {
                case 1:

                    Console.WriteLine("Enter your department name");
                    var        departmentNameEntered = Console.ReadLine();
                    Department newDept = new Department
                    {
                        DeptName = departmentNameEntered
                    };
                    departmentRepo.AddDepartment(newDept);
                    Console.WriteLine("You have added your department!");
                    break;

                case 2:
                    Console.WriteLine("Enter the employees first name");
                    var firstNameEntered = Console.ReadLine();
                    Console.WriteLine("Enter the employees last name");
                    var lastNameEntered = Console.ReadLine();
                    Console.WriteLine("Select the department id");
                    foreach (var department in allDepartments)
                    {
                        Console.WriteLine($" {department.Id} {department.DeptName}");
                    }
                    var      deptIdEntered = int.Parse(Console.ReadLine());
                    Employee newEmployee   = new Employee
                    {
                        FirstName    = firstNameEntered,
                        LastName     = lastNameEntered,
                        DepartmentId = deptIdEntered
                    };
                    employeeRepo.CreateNewEmployee(newEmployee);
                    Console.WriteLine("You have added an employee");
                    break;

                case 3:
                    Console.WriteLine("Enter the department id you want to update");
                    foreach (var department in allDepartments)
                    {
                        Console.WriteLine($" {department.Id} {department.DeptName}");
                    }
                    var DeptId = int.Parse(Console.ReadLine());
                    Console.WriteLine("Enter the updated department name");
                    var updatedDeptName = Console.ReadLine();
                    var updatedDept     = new Department
                    {
                        Id       = DeptId,
                        DeptName = updatedDeptName
                    };
                    departmentRepo.UpdateDepartment(DeptId, updatedDept);

                    break;

                case 4:
                    Console.WriteLine("Enter the id of the employee you want to update");
                    foreach (var employee in employees)
                    {
                        Console.WriteLine($" {employee.Id} {employee.FirstName} {employee.LastName}");
                    }
                    var updatedEmpId = int.Parse(Console.ReadLine());
                    Console.WriteLine("Enter updated first name:");
                    var updatedFirst = Console.ReadLine();
                    Console.WriteLine("Enter updated last name");
                    var updatedLast = Console.ReadLine();
                    Console.WriteLine("Enter the updated department");
                    foreach (var department in allDepartments)
                    {
                        Console.WriteLine($" {department.Id} {department.DeptName}");
                    }
                    var updatedDeptId = int.Parse(Console.ReadLine());

                    var updatedEmployee = new Employee
                    {
                        FirstName    = updatedFirst,
                        LastName     = updatedLast,
                        DepartmentId = updatedDeptId
                    };
                    employeeRepo.UpdateEmployee(updatedEmpId, updatedEmployee);
                    break;

                case 5:
                    Console.WriteLine("Select the department you want to delete");
                    foreach (var department in allDepartments)
                    {
                        Console.Write($"{department.Id} {department.DeptName} ");
                        var relatedEmp = employees.Where(emp => emp.DepartmentId == department.Id).ToList();
                        foreach (var emp in relatedEmp)
                        {
                            Console.Write($" {emp.Id} {emp.FirstName} {emp.LastName}");
                        }
                        Console.WriteLine();
                    }
                    var selectedDept = int.Parse(Console.ReadLine());
                    foreach (var emp in employees)
                    {
                        try
                        {
                            if (emp.Department.Id != selectedDept)
                            {
                                departmentRepo.DeleteDepartment(selectedDept);
                                break;
                            }
                        }
                        catch
                        {
                            Console.WriteLine("Delete the employees in that department first");
                            break;
                        }
                    }
                    break;

                case 6:
                    Console.WriteLine("Select the employee you would like to fire");
                    foreach (var emp in employees)
                    {
                        Console.WriteLine($"{emp.Id} {emp.FirstName} {emp.LastName} {emp.Department.DeptName}");
                    }
                    var empId = int.Parse(Console.ReadLine());
                    employeeRepo.DeleteEmployee(empId);
                    break;

                default:
                    break;
                }
            }
        }