Пример #1
0
      static void Main(string[] args)
      {
          signalHandler += HandleConsoleSignal;
          ConsoleHelper.SetSignalHandler(signalHandler, true);
          //create tables
          Department.CreateDepartmentData();
          ManagerDB.CreateManagerData();
          EmployeeDB.CreateEmployeeData();
          Console.WriteLine("Programm begin. For help press Alt + 'h'. Enter command : ");

          ConsoleKeyInfo res;
          char           r;

          Console.WriteLine();
          //we accept commands until we press alt + q
          do
          {
              res = Console.ReadKey(true);
              r   = res.KeyChar;
              switch (res.Modifiers)
              {
              case ConsoleModifiers.Alt:
                  AltSelection(res);
                  break;

              case ConsoleModifiers.Shift:
                  ShiftSelection(res);
                  break;

              default: Console.WriteLine("Unknown command");
                  break;
              }
          }while ((r != 'q') || (res.Modifiers != ConsoleModifiers.Alt));

          EmployeeDB.employeeTable.WriteXml("employee.xml");
          ManagerDB.managerTable.WriteXml("managerTable.xml");
          Console.Clear();
          Console.WriteLine("program terminated");
      }
Пример #2
0
        //method for deleted a row with replace
        public static bool DeleteRow(DataRow row)
        {
            string msg = "Manager is removed only with replacement\n" +
                         "to replace with an a new manager press 'n'\n" +
                         "to replace with an existing employee press 'e'\n" +
                         "to replace with an existing manager press 'm'\n";

            string CurrentManagerId   = row[0].ToString();
            string DepartmentName     = row[5].ToString();
            string CurrentManagerName = $"{row[1]} {row[2]} (id: {row[0]})";
            string DepartmentID       = Department.GetId(DepartmentName).ToString();
            char   key = DataBase.GetChar(msg);


            switch (key)
            {
            case 'n':                                                      //replace with a new manager
                if (DataBase.AddRowForReplace(managerTable, DepartmentID)) //if added a new manager
                {
                    managerTable.Rows.Remove(row);                         //remove the existing manager
                    //replace the value of the existing manager with the new manager in the users table
                    EmployeeDB.ChangeManeger(manager: CurrentManagerName, newManager: GetLastManager());
                    return(true);
                }
                break;

            case 'm':                                // replace one existing manager with another existing manager
                Console.WriteLine("enter ID existing manager: ");
                string exManId = Console.ReadLine(); // getting id
                if (CheckId(exManId))                // if value valid
                {
                    DataRow existingManager = GetRowById(exManId);
                    if (row[5].Equals(existingManager[5])) // if the departments are the same
                    {
                        managerTable.Rows.Remove(row);     //remove  manager
                        EmployeeDB.ChangeManeger(manager: CurrentManagerName, newManager: GetLastManager());
                        return(true);
                    }
                    else
                    {
                        Console.WriteLine("Manager departments must match\n");
                    }
                }
                else
                {
                    Console.WriteLine("Invalid manager ID");
                }
                break;

            case 'e':                                                     // replace the existing manager with an employee
                Console.WriteLine("enter ID existing employee: ");
                string exEmpId = Console.ReadLine();                      // getting employee ID
                if (DataBase.CheckId(EmployeeDB.employeeTable, exEmpId))  // if the ID is valid
                {
                    DataRow rowEmployee = EmployeeDB.GetRowById(exEmpId); //geting employee row
                    // add an employee as a manager
                    AddRow(new string[] { rowEmployee[1].ToString(), rowEmployee[2].ToString(),
                                          rowEmployee[3].ToString(), rowEmployee[4].ToString(), DepartmentID });
                    // delete an employee
                    EmployeeDB.DeleteRow(rowEmployee);
                    managerTable.Rows.Remove(row);
                    EmployeeDB.ChangeManeger(manager: CurrentManagerName, newManager: GetLastManager());
                    return(true);
                }
                else
                {
                    Console.WriteLine("Invalid employee ID");
                }
                break;

            default:
                Console.WriteLine("Unknown command");
                break;
            }
            return(false);
        }