Beispiel #1
0
        /// <summary>
        /// Удалить параметр в загруженной БД
        /// </summary>
        /// <param name="Identifier">Идентификатор параметра</param>
        public void RemoveParameter(Guid Identifier)
        {
            bool blocked = false;

            try
            {
                if (mutex.WaitOne(1000))
                {
                    blocked = true;
                    if (state == DataBaseState.Loaded || state == DataBaseState.Saving)
                    {
                        dataBase.Remove(Identifier);
                    }
                    else
                    {
                        throw new InvalidOperationException("База данных не загружена.");
                    }
                }
                else
                {
                    throw new TimeoutException();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                if (blocked)
                {
                    mutex.ReleaseMutex();
                }
            }
        }
Beispiel #2
0
        public void Remove(int[] values)
        {
            DataBase.DataBase db = new DataBase.DataBase();
            FieldInfo         currentIndexInfo = typeof(DataBase.DataBase)
                                                 .GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
                                                 .FirstOrDefault(p => p.FieldType == (typeof(int)));

            FieldInfo fieldValue = typeof(DataBase.DataBase)
                                   .GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
                                   .First(p => p.FieldType == typeof(int[]));

            fieldValue.SetValue(db, values);
            currentIndexInfo.SetValue(db, values.Length);

            db.Remove();
            int currentIndex = (int)currentIndexInfo.GetValue(db);

            Assert.That(currentIndex, Is.EqualTo(values.Length - 1));
        }
Beispiel #3
0
 public void TestInvalidRemove()
 {
     DataBase.DataBase db = new DataBase.DataBase();
     Assert.That(() => db.Remove(), Throws.InvalidOperationException);
 }