Beispiel #1
0
        public void Execute()
        {
            //Статус выполнения чтения данных
            _status = LoadStatus.ReadingData;
            try
            {
                if (_dataFileName == string.Empty)
                {
                    Console.WriteLine("Имя файла не указано");
                    throw new Exception("Имя файла не указано Lab 6");
                }
                if (!(File.Exists(@"C:\Users\Ram\Desktop\КАИ\Конструирование ПО\" + _dataFileName)))
                {
                    Console.WriteLine("Файла не существует");
                    throw new Exception("Файла " + _dataFileName + " не существует! Lab 6");
                }
                //Создание нового списка
                _carsList = new List <Car>();

                //Чтение данных
                StreamReader sr = null;

                using (sr = new StreamReader(@"C:\Users\Ram\Desktop\КАИ\Конструирование ПО\" + _dataFileName))
                {
                    while (!sr.EndOfStream)
                    {
                        //Прочитать очередную строку
                        string str = sr.ReadLine();
                        //Console.WriteLine(str);
                        string[] arr = str.Split('|');
                        //Создать новый объект
                        Car car = new Car()
                        {
                            Mark  = arr[0],
                            Model = arr[1],
                            Price = arr[2]
                        };
                        //Добавить в список
                        _carsList.Add(car);
                        //Вызов делегата после каждой прочитанной строки
                        onAfterRowRead?.Invoke(arr);
                    }
                }
                //Статус чтения данных успешно
                _status = LoadStatus.Succes;
            }
            catch (Exception ex)
            {
                //Статус чтения -"ОШИБКА"
                _status = LoadStatus.ReadingError;
                //Записать в Лог ошибок
                LogUtility.ErrorLog(ex);
            }
        }
        /*Создание метода Execute() для загрузки данных из файла*/
        public List <Participant> Execute()
        {
            //Инициализировать статус выполнения чтения данных
            _status = LoadStatus.ReadingData;

            try
            {
                //Если имя файла не указанно, то вызвать искючение
                if (_dataFileName == string.Empty)
                {
                    throw new Exception("Имя файла не указано!");
                }
                //Если файл не существует, то вызвать искючение
                if (!(File.Exists(path + _dataFileName)))
                {
                    throw new Exception("Файла не существует!");
                }

                //Выполнить загрузку
                //Создание нового списка
                _Transports = new List <Participant>();
                //Чтение данных из файла
                StreamReader sr = null;
                using (sr = new StreamReader(path + _dataFileName))
                {
                    while (!sr.EndOfStream)
                    {
                        //Прочитать очередную строку
                        string str = sr.ReadLine();
                        //Разделить строку на отдельные поля
                        string[] arr = str.Split('|');
                        //Cоздать новый объект
                        Participant transport = new Participant()
                        {
                            //Записать значения полей в свойства объекта
                            surname          = arr[0],
                            team_name        = arr[1],
                            number_of_balls  = arr[2],
                            place_in_the_end = arr[3]
                        };
                        //Добавить объект в список
                        _Transports.Add(transport);

                        //Вызов делегата после каждой прочитанной строки
                        onAfterRowConvert?.Invoke(arr);
                    }
                }
                //Cтатус чтения данных в успешно
                _status = LoadStatus.Success;
            }
            catch (Exception ex)
            {
                //Статус чтения изменить на ошибочный
                _status = LoadStatus.ReadingError;
                //Запись в журнал ошибок
                LogUtility.ErrorLog(ex);
            }

            return(_Transports);
            //для тестирования собственного исключения
            //return null;
        }