コード例 #1
0
        public LexEntry CreateItem()
        {
            LexEntry item = _decoratedDataMapper.CreateItem();

            _caches.AddItemToCaches(item);
            return(item);
        }
コード例 #2
0
        private void SynchronizeRepositories()
        {
            // if one persists, but not the other, then the persistable one wins
            // otherwise, go with the repository most recently changed
            IDataMapper <T> master = _secondary;
            IDataMapper <T> slave  = _primary;

            if ((_primary.CanPersist && !_secondary.CanPersist) ||
                (_primary.LastModified > _secondary.LastModified &&
                 _primary.CanPersist == _secondary.CanPersist))
            {
                master = _primary;
                slave  = _secondary;
            }

            RepositoryId[] ids = master.GetAllItems();

            // avoid doing anything which would change LastModifiedTime if both are empty
            if (ids.Length == 0 && slave.CountAllItems() == 0)
            {
                return;
            }

            slave.DeleteAllItems();

            foreach (RepositoryId id in ids)
            {
                T slaveItem = slave.CreateItem();
                _copyStrategy(slaveItem, master.GetItem(id));
            }
        }
コード例 #3
0
        public T CreateItem()
        {
            T item  = _primary.CreateItem();
            T item2 = _secondary.CreateItem();

            _primarySecondaryMap.Add(_primary.GetId(item), _secondary.GetId(item2));
            return(item);
        }
コード例 #4
0
        public void StartWithItemsInSecondary_ItemsCopiedToPrimary()
        {
            PalasoTestItem item = _secondary.CreateItem();

            item.StoredString = "item one";
            item = _secondary.CreateItem();
            item.StoredString = "item two";
            _synchronic.Dispose();
            _synchronic = new SynchronicRepository <PalasoTestItem>(_primary, _secondary);
            Assert.AreEqual(2, _primary.CountAllItems());
            var strings = new List <string>(2)
            {
                _primary.GetItem(_primary.GetAllItems()[0]).StoredString,
                _primary.GetItem(_primary.GetAllItems()[1]).StoredString
            };

            Assert.Contains("item one", strings);
            Assert.Contains("item two", strings);
        }