Esempio n. 1
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));
            }
        }
Esempio n. 2
0
        private T CopyItemToSecondary(T item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }
            T item2 = _secondary.GetItem(_primarySecondaryMap[_primary.GetId(item)]);

            _copyStrategy(item2, item);
            return(item2);
        }
        public void CreateItem_ItemExistsInBothRepositories()
        {
            PalasoTestItem item = _synchronic.CreateItem();

            _synchronic.SaveItem(item);
            Assert.AreEqual(item, _primary.GetItem(_primary.GetAllItems()[0]));
            Assert.AreEqual(item, _secondary.GetItem(_secondary.GetAllItems()[0]));
            Assert.AreEqual(1, _primary.CountAllItems());
            Assert.AreEqual(1, _secondary.CountAllItems());
        }
        public LexEntry GetItem(RepositoryId id)
        {
            LexEntry item = _decoratedDataMapper.GetItem(id);

            return(item);
        }
Esempio n. 5
0
 public T GetItem(RepositoryId id)
 {
     return(_primary.GetItem(id));
 }
Esempio n. 6
0
 private void CheckIfItemIsInRepository(RepositoryId id)
 {
     _dataMapperQueried.GetItem(id);
 }