Beispiel #1
0
        public void Save(List <Human> humen, string filePath)
        {
            string message;

            if (!File.Exists(filePath))
            {
                message = "Файл будет создан";
            }
            else
            {
                message = "Файл будет перезаписан";
            }

            ThrowEventOperationFile?.Invoke(message, filePath);

            try
            {
                using (FileStream file = new(filePath, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    XmlSerializer xml = new(typeof(List <Human>));
                    xml.Serialize(file, humen);
                    file.Flush();
                }

                message = "Данные записаны на файл";
            }
            catch (InvalidOperationException ex)
            {
                message = ex.InnerException.Message;
            }
            finally
            {
                ThrowEventOperationFile?.Invoke(message, filePath);
            }
        }
        public List <Human> Load(string filePath)
        {
            string message = null;

            try
            {
                FileInfo fileInfo = new(filePath);
                if (!fileInfo.Extension.Equals(".dat", StringComparison.OrdinalIgnoreCase))
                {
                    throw new FileLoadException($"Недопустимый формат файла: {fileInfo.Extension}, ожидался файл расширения .dat");
                }

                ThrowEventOperationFile?.Invoke("Попытка получения данных", filePath);

                if (File.Exists(filePath))
                {
                    List <Human> collection;

                    using (FileStream file = new(filePath, FileMode.Open, FileAccess.Read))
                    {
                        BinaryFormatter binary = new();
                        collection = (List <Human>)binary.Deserialize(file);
                    }

                    message = "Данные получены успешно";
                    return(collection);
                }
                else
                {
                    message = "Файл с расширением .dat не найден";
                    return(null);
                }
            }
            catch (SerializationException ex)
            {
                message = ex.Message;
                return(null);
            }
            catch (SecurityException ex)
            {
                message = ex.Message;
                return(null);
            }
            catch (FileLoadException ex)
            {
                message = ex.Message;
                return(null);
            }
            finally
            {
                ThrowEventOperationFile?.Invoke(message, filePath);
            }
        }
Beispiel #3
0
        public void Save(List <Human> humen, string filePath)
        {
            string message;

            if (!File.Exists(filePath))
            {
                message = "Файл будет создан";
            }
            else
            {
                message = "Файл будет перезаписан";
            }

            ThrowEventOperationFile?.Invoke(message, filePath);

            try
            {
                using (FileStream file = new(filePath, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    string json  = JsonSerializer.Serialize(humen, typeof(List <Human>), _jsonOptions);
                    byte[] bytes = Encoding.UTF8.GetBytes(json);
                    file.Write(bytes, 0, bytes.Length);
                }

                message = "Данные записаны на файл";
            }
            catch (ArgumentException ex)
            {
                message = ex.Message;
            }
            catch (NotSupportedException ex)
            {
                message = ex.Message;
            }
            finally
            {
                ThrowEventOperationFile?.Invoke(message, filePath);
            }
        }
Beispiel #4
0
        public void Save(List <Human> humen, string filePath)
        {
            string message;

            if (!File.Exists(filePath))
            {
                message = "Файл будет создан";
            }
            else
            {
                message = "Файл будет перезаписан";
            }

            ThrowEventOperationFile?.Invoke(message, filePath);

            try
            {
                using (FileStream file = new(filePath, FileMode.OpenOrCreate))
                {
                    BinaryFormatter binary = new();
                    binary.Serialize(file, humen);
                    file.Flush();
                }

                message = "Данные записаны на файл";
            }
            catch (SerializationException ex)
            {
                message = ex.Message;
            }
            catch (SecurityException ex)
            {
                message = ex.Message;
            }
            finally
            {
                ThrowEventOperationFile?.Invoke(message, filePath);
            }
        }
Beispiel #5
0
        public List <Human> Load(string filePath)
        {
            string message = null;

            try
            {
                FileInfo fileInfo = new(filePath);
                if (!fileInfo.Extension.Equals(".json", StringComparison.OrdinalIgnoreCase))
                {
                    throw new FileLoadException($"Недопустимый формат файла: {fileInfo.Extension}, ожидался файл расширения .json");
                }

                ThrowEventOperationFile?.Invoke("Попытка получения данных", filePath);

                if (File.Exists(filePath))
                {
                    List <Human> collection = null;

                    using (FileStream file = new(filePath, FileMode.Open, FileAccess.Read))
                    {
                        bool complete = false;
                        while (complete != true)
                        {
                            var resultOperation = JsonSerializer.DeserializeAsync <List <Human> >(file);
                            if (resultOperation.IsCompleted)
                            {
                                collection = resultOperation.Result;
                                complete   = true;
                            }
                        }


                        file.Flush();
                    }

                    message = "Данные получены успешно";
                    return(collection);
                }
                else
                {
                    message = "Файл с расширением .json не найден";
                    return(null);
                }
            }
            catch (JsonException ex)
            {
                message = ex.Message;
                return(null);
            }
            catch (NotSupportedException ex)
            {
                message = ex.Message;
                return(null);
            }
            catch (FileLoadException ex)
            {
                message = ex.Message;
                return(null);
            }
            finally
            {
                ThrowEventOperationFile?.Invoke(message, filePath);
            }
        }