public static Staff CreateStaff(StaffType staffType)
        {
            switch (staffType)
            {
            case StaffType.teachingStaff:
                TeachingStaff teachingStaff = new TeachingStaff();
                AskCommonDetails(teachingStaff);
                teachingStaff.Subject       = InputStaffProperties.AskSubject();
                teachingStaff.AssignedClass = InputStaffProperties.AskClass();
                return(teachingStaff);

            case StaffType.administrativeStaff:
                AdminstrativeStaff adminStaff = new AdminstrativeStaff();
                AskCommonDetails(adminStaff);
                adminStaff.Post = InputStaffProperties.AskPost();
                return(adminStaff);

            case StaffType.supportStaff:
                SupportStaff supportStaff = new SupportStaff();
                AskCommonDetails(supportStaff);
                supportStaff.Post = InputStaffProperties.AskPost();
                return(supportStaff);

            default:
                return(null);
            }
        }
 public static void AskCommonDetails(Staff staff)
 {
     staff.Name        = InputStaffProperties.AskName();
     staff.StaffId     = InputStaffProperties.AskStaffID();
     staff.Address     = InputStaffProperties.AskAddress();
     staff.PhoneNumber = InputStaffProperties.AskPhoneNumber();
     staff.Salary      = InputStaffProperties.AskSalary();
 }
        private static void InsertRow(DataTable dataTable)
        {
            DataRow   dataRow   = dataTable.NewRow();
            StaffType staffType = InputStaffProperties.AskStaffType();

            dataRow["StaffName"]   = InputStaffProperties.AskName();
            dataRow["PhoneNumber"] = InputStaffProperties.AskPhoneNumber();
            dataRow["Salary"]      = InputStaffProperties.AskSalary();
            Address address = InputStaffProperties.AskAddress();

            dataRow["HouseName"] = address.HouseName;
            dataRow["City"]      = address.City;
            dataRow["State"]     = address.State;
            dataRow["PinCode"]   = address.Pin;
            dataRow["StaffType"] = (int)staffType;

            string specificData;
            int    classAssigned = 0;

            if (staffType == StaffType.teachingStaff)
            {
                specificData  = InputStaffProperties.AskSubject();
                classAssigned = Convert.ToInt32(InputStaffProperties.AskClass());
            }
            else
            {
                specificData = InputStaffProperties.AskPost();
            }

            dataRow["SpecificData"]  = specificData;
            dataRow["ClassAssigned"] = classAssigned;

            dataTable.Rows.Add(dataRow);
            Console.WriteLine("\nInsertion Successfull\nDo you want to add more Staff?(y/n)\n");
            char choice = Convert.ToChar(Console.ReadLine());

            if (choice == 'y')
            {
                InsertRow(dataTable);
            }
        }
Exemplo n.º 4
0
        private static void ActionMenu(IStaffOperator staffOperator)
        {
            int       actionChoice;
            StaffType staffType;
            int       staffId;


            Console.WriteLine("\nChoose Action\n1.Add Staff\n2.View Staff Details\n3.View All Staff of type\n4.Update Staff Details\n5.Remove Staff\n6.Bulk Insertion(For DB only)\n7.Exit\n"); //Action Menu
            actionChoice = Convert.ToInt32(Console.ReadLine());

            switch (actionChoice)
            {
            case 1:
                Staff newStaff = StaffHelper.CreateStaff(InputStaffProperties.AskStaffType());
                staffOperator.InsertStaff(newStaff);

                break;

            case 2:
                staffId = InputStaffProperties.AskStaffID();
                var staff = staffOperator.GetStaffByStaffId(staffId);
                if (staff != null)
                {
                    StaffHelper.ViewDetails(staff);
                }
                else
                {
                    Console.WriteLine("\nStaff not found!!");
                }

                break;

            case 3:
                staffType = InputStaffProperties.AskStaffType();
                List <Staff> lstStaff = staffOperator.GetAllStaffByStaffType(staffType);
                if (lstStaff != null)
                {
                    foreach (Staff _staff in lstStaff)
                    {
                        StaffHelper.ViewDetails(_staff);
                    }
                }
                else
                {
                    Console.WriteLine("\nNo staff of type {0}!!", staffType);
                }


                break;

            case 4:
                staffId = InputStaffProperties.AskStaffID();
                string    staffName    = InputStaffProperties.AskName();
                string    phoneNumber  = InputStaffProperties.AskPhoneNumber();
                double    salary       = InputStaffProperties.AskSalary();
                Address   address      = InputStaffProperties.AskAddress();
                StaffType?staffTypeNew = staffOperator.FindStaffType(staffId);
                string    specificData;
                if (staffTypeNew == StaffType.teachingStaff)
                {
                    specificData = InputStaffProperties.AskClass();
                }
                else
                {
                    specificData = InputStaffProperties.AskPost();
                }
                if (staffOperator.UpdateStaff(staffId, staffName, phoneNumber, salary, address, specificData))
                {
                    Console.WriteLine("\nStaff {0} updated", staffId);
                }
                else
                {
                    Console.WriteLine("\nStaff not found!!");
                }
                break;

            case 5:
                staffId = InputStaffProperties.AskStaffID();
                if (staffOperator.DeleteStaff(staffId))
                {
                    Console.WriteLine("\nStaff {0} removed", staffId);
                }
                else
                {
                    Console.WriteLine("\nStaff not found!!");
                }

                break;

            case 6:
                Type type = staffOperator.GetType();
                if (type.Equals(typeof(DatabaseStaffOperator)))
                {
                    DatabaseStaffOperator dbStaffOperator = (DatabaseStaffOperator)staffOperator;
                    if (dbStaffOperator.BulkInsertion(DatabaseHelper.CollectBulkData()))
                    {
                        Console.WriteLine("\nBulk inserion succesful!!");
                    }
                    else
                    {
                        Console.WriteLine("\nBulk insertion failed");
                    }
                }
                else
                {
                    Console.WriteLine("\nBulk insertion can only be perfomed on Database");
                }
                break;

            case 7:
                System.Environment.Exit(0);
                break;

            default:
                break;
            }
            ActionMenu(staffOperator);
        }