Esempio n. 1
0
        public override void DisplayFooter(int option)
        {
            while (true)
            {
                if (option == 1)
                {
                    Employee emp = AddEmployee();
                    if (ConfirmAdd(emp))
                    {
                        int empID      = UseDB.InsertEmployee(emp.FName, emp.LName);
                        var daysOfWeek = new string[] { "DailyDefault", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
                        foreach (string day in daysOfWeek)
                        {
                            UseDB.InsertUpdateDailyAvailability(day, empID, new TimeSpan(8, 0, 0), new TimeSpan(17, 0, 0));
                        }
                    }

                    Console.Clear();
                    this.DisplayScreen();
                }
                else if (option == 2)
                {
                    int empID = RemoveEmployee();
                    if (ConfirmRemove(empID))
                    {
                        UseDB.DeleteEmployee(empID);
                        UseDB.DeleteDailyAvailability(empID);
                    }
                    Console.Clear();
                    this.DisplayScreen();
                }
            }
        }
        public void SetAvailability()
        {
            var    daysOfWeek = new string[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
            string empIDStr;
            int    employeeID;
            string dayOfWeek;
            string startTime;
            string endTime;
            bool   isValidDay = false;

            //Get Employee ID
            while (true)
            {
                Console.WriteLine("Enter the ID of the Employee whose availability you wish to modify: ");
                empIDStr = Console.ReadLine();
                if (Int32.TryParse(empIDStr, out employeeID))
                {
                    break;
                }
            }

            //Get DayOfWeek to Modify
            while (true)
            {
                Console.WriteLine("Type the day of the week to change it's availability (i.e. 'Monday' no abbreviations): ");
                dayOfWeek = Console.ReadLine();
                foreach (String day in daysOfWeek)
                {
                    if (String.Equals(day, dayOfWeek, StringComparison.OrdinalIgnoreCase))
                    {
                        dayOfWeek  = day;
                        isValidDay = true;
                        break;
                    }
                }
                if (!String.IsNullOrEmpty(dayOfWeek) && isValidDay)
                {
                    break;
                }
                else
                {
                    Console.WriteLine("Try again. Invalid Input");
                }
            }

            //Get Beginning of Employee's Availability
            while (true)
            {
                string pattern = @"\d{1,2}\:\d{1,2}";

                Console.WriteLine("What time does the Employee's availability begin on {0} (hh:mm)':", dayOfWeek);
                string hoursMinutes = Console.ReadLine();
                if (Regex.IsMatch(hoursMinutes, pattern))
                {
                    string[] hhmmString = hoursMinutes.Split(':');
                    int      hhInt      = Int32.Parse(hhmmString[0]);
                    int      mmInt      = Int32.Parse(hhmmString[1]);

                    if ((hhInt >= 0 && hhInt <= 23) &&
                        (mmInt >= 0 && mmInt <= 59))
                    {
                        //if (mmInt >= 0 && mmInt < 15)
                        //{
                        //    mmInt = 0;
                        //}
                        //else if (mmInt >= 15 && mmInt < 30)
                        //{
                        //    mmInt = 15;
                        //}
                        //else if (mmInt >= 30 && mmInt < 45)
                        //{
                        //    mmInt = 30;
                        //}
                        //else if (mmInt >= 45 && mmInt < 60)
                        //{
                        //    mmInt = 45;
                        //}
                        startTime = hoursMinutes;
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Invalid Input. Try Again.");
                }
            }
            //Get the end of an Employee's Availability
            while (true)
            {
                string pattern = @"\d{1,2}\:\d{1,2}";

                Console.WriteLine("What time does the Employee's availability end on {0} (hh:mm)':", dayOfWeek);
                string hoursMinutes = Console.ReadLine();
                if (Regex.IsMatch(hoursMinutes, pattern))
                {
                    string[] hhmmString = hoursMinutes.Split(':');
                    int      hhInt      = Int32.Parse(hhmmString[0]);
                    int      mmInt      = Int32.Parse(hhmmString[1]);

                    if ((hhInt >= 0 && hhInt <= 23) &&
                        (mmInt >= 0 && mmInt <= 59))
                    {
                        //if (mmInt >= 0 && mmInt < 15)
                        //{
                        //    mmInt = 0;
                        //}
                        //else if (mmInt >= 15 && mmInt < 30)
                        //{
                        //    mmInt = 15;
                        //}
                        //else if (mmInt >= 30 && mmInt < 45)
                        //{
                        //    mmInt = 30;
                        //}
                        //else if (mmInt >= 45 && mmInt < 60)
                        //{
                        //    mmInt = 45;
                        //}
                        endTime = hoursMinutes;
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Invalid Input. Try Again.");
                }
            }

            UseDB.InsertUpdateDailyAvailability(dayOfWeek, employeeID, TimeSpan.Parse(startTime), TimeSpan.Parse(endTime));
            Console.Clear();
            this.DisplayScreen();
        }