Ejemplo n.º 1
0
        public void CloneTest()
        {
            var src = new EditableList <int> {
                1, 2, 3
            };
            var clone = (EditableList <int>)src.Clone();

            Assert.AreEqual(src.Count, clone.Count);
            Assert.AreEqual(src.NewItems.Count, clone.NewItems.Count);
            Assert.AreEqual(src.DelItems.Count, clone.DelItems.Count);

            src.AcceptChanges();

            clone = (EditableList <int>)src.Clone();

            Assert.AreEqual(src.Count, clone.Count);
            Assert.AreEqual(src.NewItems.Count, clone.NewItems.Count);
            Assert.AreEqual(src.DelItems.Count, clone.DelItems.Count);

            src.RemoveAt(1);

            clone = (EditableList <int>)src.Clone();

            Assert.AreEqual(src.Count, clone.Count);
            Assert.AreEqual(src.NewItems.Count, clone.NewItems.Count);
            Assert.AreEqual(src.DelItems.Count, clone.DelItems.Count);
        }
Ejemplo n.º 2
0
 public static void DeepAcceptChanges <T>(this EditableList <T> list)
     where T : class, IObject
 {
     list.AcceptChanges();
     foreach (var item in list)
     {
         item.DeepAcceptChanges();
     }
 }
Ejemplo n.º 3
0
        public void IsDirtyTest()
        {
            var list = new EditableList <EditableTestObject>();

            list.AddNew();
            list.AddNew();

            Assert.IsTrue(list.IsDirty);

            list.AcceptChanges();

            Assert.IsFalse(list.IsDirty);

            list[1].ID = 101;

            Assert.IsTrue(list[1].IsDirty);
            Assert.IsTrue(list.IsDirty);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Осуществляет загрузку данных по обсервациям и слияние с основным хранилищем пользовательских данных
        /// </summary>
        /// <param name="mainActivityParameters"></param>
        /// <param name="observations"></param>
        /// <param name="needMerge"></param>
        public static EditableList <ActivityParameter> LoadActivityParameters(this EditableList <ActivityParameter> mainActivityParameters, List <long> observations, bool needMerge)
        {
            var activityParameters = new EditableList <ActivityParameter>();
            var observationList    = observations.GetObservations();

            using (var manager = DbManagerFactory.Factory.Create(ModelUserContext.Instance))
            {
                var acc = ActivityParameter.Accessor.Instance(null);
                activityParameters.AddRange(acc.SelectDetailList(manager, observationList));
            }
            if (needMerge)
            {
                mainActivityParameters.Merge(activityParameters);
            }
            activityParameters.AcceptChanges();
            mainActivityParameters.AcceptChanges();
            return(activityParameters);
        }