public LexEntry CreateItem() { LexEntry item = _decoratedDataMapper.CreateItem(); _caches.AddItemToCaches(item); return(item); }
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)); } }
public T CreateItem() { T item = _primary.CreateItem(); T item2 = _secondary.CreateItem(); _primarySecondaryMap.Add(_primary.GetId(item), _secondary.GetId(item2)); return(item); }
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); }