Esempio n. 1
0
        /// <summary>
        /// Загрузить из файла информацию о списке компаний и их связях
        /// </summary>
        /// <param name="fileName">Имя файла, из которого читаются данные</param>
        /// <returns>Список компаний и их связей, null в случае ошибки (вообще, будет выброшено исключение)</returns>
        static void LoadInfoFromFile()
        {
            string fileName = string.Empty;

            while (true)
            {
                Console.WriteLine("Введите имя файла БЕЗ расширения, из которого вы хотите осуществить загрузку данных:");
                fileName = Console.ReadLine();
                if (fileName.Intersect(Path.GetInvalidFileNameChars()).Any())
                {
                    Console.WriteLine("Введенное имя файла содержит недопустимые символы.");
                    continue;
                }
                break;
            }
            fileName += ".bin";
            if (!File.Exists(fileName))
            {
                throw new FileNotFoundException("Файл с именем " + fileName + " не существует/не найден.");
            }
            BinaryFormatter           bf        = new BinaryFormatter();
            CompaniesAndRelationsPool companies = null;

            using (FileStream fs = new FileStream(fileName, FileMode.Open))
            {
                object readData = bf.Deserialize(fs);
                if (readData is CompaniesAndRelationsPool)
                {
                    companies = readData as CompaniesAndRelationsPool;
                }
                else
                {
                    throw new FormatException("В указанном файле " + fileName + " не было объекта, пригодного для десериализации в тип CompaniesPool.");
                }
            }
            CompaniesRelations = companies;
            Console.WriteLine("Данные успешно загружены из файла.");
            Console.WriteLine();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            CompaniesRelations = new CompaniesAndRelationsPool();
            CompaniesRelations.Initialize();
            int input = -1;

            while (true)
            {
                do
                {
                    ShowMenu();
                }while (!int.TryParse(Console.ReadLine(), out input));
                Console.Clear();
                try
                {
                    switch (input)
                    {
                    case 1:
                        ShowCompaniesPoolTable();
                        break;

                    case 2:
                        ShowCompaniesTable();
                        break;

                    case 3:
                        ShowRelationsByCompanyTemp();
                        break;

                    case 4:
                        AddNewCompany();
                        break;

                    case 5:
                        AddNewRelation();
                        break;

                    case 6:
                        DeleteCompany();
                        break;

                    case 7:
                        DeleteRelation();
                        break;

                    case 8:
                        SaveInfoToFile();
                        break;

                    case 9:
                        LoadInfoFromFile();
                        break;

                    case 0:
                        Console.WriteLine("Работа программы завершена.");
                        return;

                    default:
                        Console.WriteLine("Команда не распознана. Пожалуйста, введите номер команды, указанный в меню.");
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine();
                }
            }
        }