Beispiel #1
0
        // Добавление коробки в палету
        private static int AddBoxInPalletFromFile(string[] s_Lines, Guid g_PalletId, int i, Warehouse w_Warehouse)
        {
            // Считывание коробок паллеты
            for (; i < s_Lines.Length && s_Lines[i].Split(':')[0] != "Pallet"; i++)
            {
                // Если коробка, иначе исключение
                if (s_Lines[i].Split(':')[0] == "Box")
                {
                    // Имя
                    string s_Name = s_Lines[i].Split(':')[1].Split(';')[0];
                    // Ширина
                    double d_Width = Convert.ToDouble(s_Lines[i].Split(':')[1].Split(';')[1]);
                    if (d_Width <= 0)
                    {
                        throw new ApplicationException("Неверные данные в файле, введите корректное значение.");
                    }
                    // Высота
                    double d_Height = Convert.ToDouble(s_Lines[i].Split(':')[1].Split(';')[2]);
                    if (d_Height <= 0)
                    {
                        throw new ApplicationException("Неверные данные в файле, введите корректное значение.");
                    }
                    // Глубина
                    double d_Depth = Convert.ToDouble(s_Lines[i].Split(':')[1].Split(';')[3]);
                    if (d_Depth <= 0)
                    {
                        throw new ApplicationException("Неверные данные в файле, введите корректное значение.");
                    }
                    // Вес
                    double d_Weight = Convert.ToDouble(s_Lines[i].Split(':')[1].Split(';')[4]);
                    if (d_Weight <= 0)
                    {
                        throw new ApplicationException("Неверные данные в файле, введите корректное значение.");
                    }
                    // Срок годности либо дата производства
                    object o_Help = s_Lines[i].Split(':')[1].Split(';')[5];
                    string s_Help = o_Help.ToString();
                    if (s_Help.Contains("."))
                    {
                        o_Help = new DateTime(Convert.ToInt32(s_Help.Split('.')[2]), Convert.ToInt32(s_Help.Split('.')[1]), Convert.ToInt32(s_Help.Split('.')[0]));
                    }
                    else
                    {
                        int i_ShelfLife = Convert.ToInt32(s_Help);
                        if (i_ShelfLife <= 0)
                        {
                            throw new ApplicationException("Неверные данные в файле, введите корректное значение.");
                        }
                        o_Help = i_ShelfLife;
                    }

                    // Добавление коробки
                    object[,] o_BoxInformation = new object[1, 6];
                    o_BoxInformation[0, 0]     = s_Name;
                    o_BoxInformation[0, 1]     = d_Width;
                    o_BoxInformation[0, 2]     = d_Height;
                    o_BoxInformation[0, 3]     = d_Depth;
                    o_BoxInformation[0, 4]     = d_Weight;
                    o_BoxInformation[0, 5]     = o_Help;
                    w_Warehouse.AddBoxesInPallet(g_PalletId, o_BoxInformation);
                }
                else
                {
                    throw new ApplicationException("Неверные данные в файле, вид строк с коробками: Box:данные_коробки.");
                }
            }
            return(i);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            // Создание объекта склад
            Console.WriteLine("Введите имя склада:");
            Warehouse w_Warehouse = new Warehouse(Console.ReadLine());

            Console.WriteLine("Склад " + w_Warehouse.GetSetName);

            // Главное меню с вызовами соответствующих функций
            while (true)
            {
                try
                {
                    Console.WriteLine("\nСклад " + w_Warehouse.GetSetName + "\nМеню\n" +
                                      "1. Добавить палеты в склад\n" +
                                      "2. Удалить палеты из склада\n" +
                                      "3. Добавить коробки в заданную палету\n" +
                                      "4. Удалить коробки из заданной палеты\n" +
                                      "5. Содержимое склада\n" +
                                      "6. Содержимое заданной палеты\n" +
                                      "7. Группировка палет\n" +
                                      "8. Вывести 3 палеты\n" +
                                      "9. Добавить данные в склад из файла\n" +
                                      "10. Записать данные из склада в файл\n" +
                                      "11. Выход\n");
                    int i_MenuItem = 0;
                    if (!int.TryParse(Console.ReadLine(), out i_MenuItem))
                    {
                        throw new ApplicationException("Введите корректный пункт меню.");
                    }
                    switch (i_MenuItem)
                    {
                    case 1:
                        Console.WriteLine("1. Добавить палеты в склад");

                        // Массив значений
                        object[,] o_Information = null;
                        // Заполнение информации пользователем
                        Menu.MenuItem1(o_Information);

                        // Добавление
                        w_Warehouse.AddPallets(o_Information);
                        Console.WriteLine("Добавление завершено");
                        break;

                    case 2:
                        Console.WriteLine("2. Удалить палеты из склада");

                        // Массив id
                        Guid[] g_Ids = null;
                        // Заполнение информации пользователем
                        Menu.MenuItem2(g_Ids);

                        // Удаление
                        w_Warehouse.DeletePallets(g_Ids);
                        Console.WriteLine("Удаление завершено");
                        break;

                    case 3:
                        Console.WriteLine("3. Добавить коробки в заданную палету");

                        o_Information = null;
                        // Заполнение информации пользователем
                        Guid g_Id = Menu.MenuItem3(o_Information);

                        // Добавление
                        w_Warehouse.AddBoxesInPallet(g_Id, o_Information);
                        Console.WriteLine("Добавление завершено");
                        break;

                    case 4:
                        Console.WriteLine("4. Удалить коробки из заданной палеты");

                        g_Ids = null;
                        // Заполнение информации пользователем
                        g_Id = Menu.MenuItem4(g_Ids);

                        // Удаление
                        w_Warehouse.DeleteBoxesInPallet(g_Id, g_Ids);
                        Console.WriteLine("Удаление завершено");
                        break;

                    case 5:
                        Console.WriteLine("5. Содержимое склада");
                        OutputInfo.OutputAllPallet(w_Warehouse.GetPallets);
                        break;

                    case 6:
                        Console.WriteLine("6. Содержимое заданной палеты");
                        Console.WriteLine("Введите id палеты:");
                        g_Id = new Guid(Console.ReadLine());
                        OutputInfo.OutputPallet(g_Id, w_Warehouse.GetPallets);
                        break;

                    case 7:
                        Console.WriteLine("7. Группировка палет");
                        OutputInfo.GroupPallets(w_Warehouse.GetPallets);
                        break;

                    case 8:
                        Console.WriteLine("8. Вывести 3 палеты");
                        OutputInfo.OutputTreePallets(w_Warehouse.GetPallets);
                        break;

                    case 9:
                        Console.WriteLine("9. Добавить данные в склад из файла");
                        Console.WriteLine("Введите полный путь к файлу:");
                        string s_Path = Console.ReadLine();
                        GetSetInfoFromFile.ReadFile(s_Path, w_Warehouse);
                        Console.WriteLine("Данные добавлены в склад");
                        break;

                    case 10:
                        Console.WriteLine("10. Записать данные из склада в файл");
                        Console.WriteLine("Введите полный путь к файлу:");
                        s_Path = Console.ReadLine();
                        GetSetInfoFromFile.WriteFile(s_Path, w_Warehouse);
                        Console.WriteLine("Данные записаны в файл");
                        break;

                    case 11:
                        Console.WriteLine("11. Выход");
                        return;

                    default:
                        Console.WriteLine("Введите корректный пункт меню.");
                        break;
                    }
                }
                catch (ApplicationException e_Ex)
                {
                    Console.WriteLine(e_Ex.Message);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Введите корректное значение.");
                }
                catch (Exception e_Ex)
                {
                    Console.WriteLine("Код ошибки: {0}. Обратитесь в службу поддержки.", Math.Abs(e_Ex.HResult));
                }
            }
        }