Beispiel #1
0
        /// <summary>
        /// Метод сохраняет массив объектов в БД. Возвращает StatusDb.
        /// </summary>
        /// <param name="arrayOfObjects">массив объектов, которые будут сохранены в БД</param>
        /// <returns>Возвращает StatusDb</returns>
        public StatusDb SaveToDb(Object[] arrayOfObjects)
        {
            if (arrayOfObjects == null)
            {
                return(StatusDb.ErrorIO);
            }
            BinaryFormatter          formatter = new BinaryFormatter();
            ContainerForArrayFigures figCont   = new ContainerForArrayFigures();
            MemoryStream             mStream   = new MemoryStream();

            formatter.Serialize(mStream, arrayOfObjects);

            using (ConfigureDb db = new ConfigureDb())
            {
                try
                {
                    db.Database.Migrate();
                    figCont.BuffContainer = mStream.ToArray();
                    db.FiguresContainer.Add(figCont);
                    return((StatusDb)db.SaveChanges());
                }
                catch (Npgsql.PostgresException)
                {
                    return(StatusDb.Failed);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Метод загружает данные из таблицы БД.
        /// </summary>
        /// <param name="id">запись в таблице, которую нужно загрузить</param>
        /// <param name="arrayOfObjects">массив типа Object[], в который будут записаны объекты, загруженные из таблицы БД</param>
        /// <returns>Возвращает StatusDb</returns>
        public StatusDb LoadFromDb(int id, out Object[] arrayOfObjects)
        {
            BinaryFormatter formatter = new BinaryFormatter();

            using (ConfigureDb db = new ConfigureDb())
            {
                arrayOfObjects = null;
                try
                {
                    if (!db.FiguresContainer.Any())
                    {
                        return(StatusDb.Failed);
                    }

                    ContainerForArrayFigures entryArrayFigureses = db.FiguresContainer.Find(id);
                    if (entryArrayFigureses == null)
                    {
                        return(StatusDb.ErrorId);
                    }

                    MemoryStream mStream = new MemoryStream(entryArrayFigureses.BuffContainer);
                    arrayOfObjects = (Object[])formatter.Deserialize(mStream);
                }
                catch (Exception ex)
                {
                    if (ex is Npgsql.PostgresException)
                    {
                        return(StatusDb.Failed);
                    }
                    if (ex is System.Net.Sockets.SocketException)
                    {
                        return(StatusDb.ErrorConnected);
                    }
                }
            }

            if (arrayOfObjects == null)
            {
                return(StatusDb.Failed);
            }

            return(StatusDb.Ok);
        }