コード例 #1
0
ファイル: Program.cs プロジェクト: Tec4Gen/Sgu-Sharp
        static void Main(string[] args)
        {
            var  _driverLogic   = new DriverLogic();
            var  _carLogic      = new CarLogic();
            var  _workItemLogic = new WorkItemLogic();
            bool flag           = true;

            while (flag)
            {
                Console.WriteLine();
                Console.WriteLine("1) Посмотреть всех воителей");
                Console.WriteLine("2) Добавить водителя");
                Console.WriteLine("3) Удалить водителя");

                Console.WriteLine("4) Посмотреть все автомобили");
                Console.WriteLine("5) Добавить автомобиль");
                Console.WriteLine("6) Удалить автомобиль");

                Console.WriteLine("7) Посмотреть расписание");
                Console.WriteLine("8) Добавить в расписание");
                Console.WriteLine("9) Удалить из раписания");
                Console.WriteLine("10) Посмотреть на определенную дату");
                Console.WriteLine("11) Посмотреть на промежуток дат");
                Console.WriteLine();
                Console.Write("Выберите действие => ");

                int.TryParse(Console.ReadLine(), out int action);

                switch (action)
                {
                case 1:
                    _driverLogic.Show();
                    break;

                case 2:
                    Console.WriteLine("Введите");
                    Console.Write("Имя:");
                    string lastName = Console.ReadLine();
                    Console.Write("Фамилию:");
                    string firstName = Console.ReadLine();
                    Console.Write("Отчество:");
                    string middleName = Console.ReadLine();

                    _driverLogic.Add(new Entities.Driver
                    {
                        FistName   = firstName,
                        LastName   = lastName,
                        MiddleName = middleName,
                    });

                    break;

                case 3:
                    Console.WriteLine("Введите id:");

                    if (int.TryParse(Console.ReadLine(), out int id))
                    {
                        _driverLogic.DeleteById(id);
                    }
                    else
                    {
                        Console.WriteLine("не число попробуйте снова");
                    }
                    break;

                case 4:
                    _carLogic.Show();
                    break;

                case 5:
                    Console.WriteLine("Введите");
                    Console.Write("Марку:");
                    string mark = Console.ReadLine();
                    Console.Write("Модель:");
                    string model = Console.ReadLine();


                    _carLogic.Add(new Entities.Car
                    {
                        Mark  = mark,
                        Model = model,
                    });
                    break;

                case 6:
                    Console.WriteLine("Введите id:");

                    if (int.TryParse(Console.ReadLine(), out int idCar))
                    {
                        _carLogic.DeleteById(idCar);
                    }
                    else
                    {
                        Console.WriteLine("не число попробуйте снова");
                    }
                    break;

                default:
                    break;

                case 7:
                    _workItemLogic.Show();
                    break;

                case 8:
                    Console.WriteLine("Введите");
                    Console.Write("Дату в формате mm/dd/yyyy:");
                    string date = Console.ReadLine();
                    Console.Write("Введите id водителя и id машины:");
                    if (int.TryParse(Console.ReadLine(), out int personeId) && int.TryParse(Console.ReadLine(), out int carId))
                    {
                        var      persone = _driverLogic.GetById(personeId);
                        var      car     = _carLogic.GetById(carId);
                        DateTime datePasre;
                        if (car == null)
                        {
                            Console.WriteLine("Такой машины нет");
                            break;
                        }
                        if (persone == null)
                        {
                            Console.WriteLine("Такого водителя нет");
                            break;
                        }
                        try
                        {
                            datePasre = DateTime.ParseExact(date, "MM/dd/yyyy", null);
                            _workItemLogic.Add(new Entities.WorkItem
                            {
                                Car      = car,
                                Driver   = persone,
                                WorkDate = datePasre
                            });
                        }
                        catch
                        {
                            Console.WriteLine("Введите нормальную дату!!!");
                            break;
                        }
                    }
                    break;

                case 9:
                    Console.WriteLine("Введите id:");

                    if (int.TryParse(Console.ReadLine(), out int idWorkItem))
                    {
                        _workItemLogic.DeleteById(idWorkItem);
                    }
                    break;

                case 10:
                    Console.WriteLine("Введите дату :");
                    DateTime datePasreFind;
                    Console.Write("Дату в формате mm/dd/yyyy:");
                    string dateFind = Console.ReadLine();
                    try
                    {
                        datePasreFind = DateTime.ParseExact(dateFind, "MM/dd/yyyy", null);
                        var items1 = _workItemLogic.GetByDate(datePasreFind);

                        Console.WriteLine($"расписание на {datePasreFind.Date}");
                        foreach (var item in items1)
                        {
                            Console.WriteLine($" {item.WorkDate.Date:MM/dd/yyyy} " +
                                              $"{item.Driver.LastName} {item.Driver.FistName} {item.Driver.MiddleName} " +
                                              $"{item.Car.Mark} {item.Car.Model}");
                        }
                    }
                    catch
                    {
                        throw;
                    }

                    break;

                case 11:
                    Console.WriteLine("Введите дату :");
                    DateTime datePasreFirst;
                    DateTime datePasreSecond;
                    Console.Write("Первая дата в формате mm/dd/yyyy:");
                    string dateFirst = Console.ReadLine();
                    Console.Write("вторая дата в формате mm/dd/yyyy:");
                    string dateSecond = Console.ReadLine();
                    try
                    {
                        datePasreFirst  = DateTime.ParseExact(dateFirst, "MM/dd/yyyy", null);
                        datePasreSecond = DateTime.ParseExact(dateSecond, "MM/dd/yyyy", null);
                        var items = _workItemLogic.GetByDateInterval(datePasreFirst, datePasreSecond);

                        Console.WriteLine($"расписание на {datePasreFirst.Date:MM/dd/yyyy} по {datePasreSecond.Date:MM/dd/yyyy}");

                        foreach (var item in items)
                        {
                            Console.WriteLine($" {item.WorkDate.Date:MM/dd/yyyy} " +
                                              $"{item.Driver.LastName} {item.Driver.FistName} {item.Driver.MiddleName} " +
                                              $"{item.Car.Mark} {item.Car.Model}");
                        }
                    }
                    catch
                    {
                        Console.WriteLine("Введите нормальную дату!!!");
                        break;
                    }
                    break;
                }

                Console.WriteLine("Выйти из приложения? Y/N");
                string cmd = Console.ReadLine();

                switch (cmd)
                {
                case "Y":
                    flag = false;
                    break;

                case "N":
                    break;

                default:
                    Console.WriteLine("Не подходит, повторите");
                    goto case "Y";
                }
            }

            Console.ReadLine();
        }