public void Create(SynchronizationEntry entry) { var workItem = CreateWorkItem(entry); _repository.PostWorkItem(workItem.MoveTo(_beginStep,DateTime.Now)); _repository.PostWorkItem(workItem); }
private static WorkItem CreateWorkItem(SynchronizationEntry entry) { var workItem = WorkItem.New(entry.Id, entry.Status); if(entry.Ordinal.HasValue) { workItem = workItem.UpdateOrdinal(entry.Ordinal.Value); } return workItem.UpdateProperties(entry.Properties); }
private bool TryGetSlaveEntry(SynchronizationEntry masterEntry, out SynchronizationEntry slaveEntry) { if (!_map.ContainsKey(_master, masterEntry.Status)) { slaveEntry = null; return false; } var slaveStatus = _map.GetMappedValue(_master, masterEntry.Status); slaveEntry = new SynchronizationEntry(masterEntry.Id, slaveStatus, masterEntry.Properties) { Ordinal = masterEntry.Ordinal, TimeStamp = masterEntry.TimeStamp}; return true; }
public void UpdateData(SynchronizationEntry entry) { var unid = entry.Properties["unid"]; foreach (var keyValue in entry.Properties) { if(keyValue.Key=="unid") { continue; } _dominoRepository.UpdateField(unid,keyValue.Key,keyValue.Value); } }
private bool TryGetSlaveEntry(SynchronizationEntry masterEntry, out SynchronizationEntry slaveEntry) { slaveEntry = null; if(!_map.ContainsKey(_master, masterEntry.Status)) { return false; } var slaveStatus = _map.GetMappedValue(_master, masterEntry.Status); slaveEntry = new SynchronizationEntry(masterEntry.Id, slaveStatus, new Dictionary<string, string>()); return true; }
private bool TryGetSlaveEntry(SynchronizationEntry masterEntry, out SynchronizationEntry slaveEntry) { slaveEntry = null; if (!_map.ContainsKey(_master, masterEntry.Status)) { return(false); } var slaveStatus = _map.GetMappedValue(_master, masterEntry.Status); slaveEntry = new SynchronizationEntry(masterEntry.Id, slaveStatus, new Dictionary <string, string>()); return(true); }
public void Synchronize() { var masterEntries = _master.GetAll().ToDictionary(e => e.Id); var slaveEntries = _slave.GetAll().ToDictionary(e => e.Id); foreach (var masterId in masterEntries.Keys) { if (!slaveEntries.ContainsKey(masterId)) { continue; } var slaveEntry = slaveEntries[masterId]; var masterEntry = masterEntries[masterId]; var slaveProperties = FilterForSynchronization(_slave, slaveEntry.Properties); var slaveMappedMasterProperties = FilterForSynchronization(_slave, MapProperties(_master, masterEntry.Properties)); SynchronizationEntry updateEntry = null; if (!AreEqual(slaveMappedMasterProperties, slaveProperties)) { Console.WriteLine("Properties differ"); Console.WriteLine("Slavemapped master:" + slaveMappedMasterProperties.Select(kv => kv.Value).Join(',')); Console.WriteLine("Slave :" + slaveProperties.Select(kv => kv.Value).Join(',')); updateEntry = new SynchronizationEntry(masterId, slaveEntry.Status, slaveMappedMasterProperties) { Ordinal = slaveEntry.Ordinal }; } if (SynchronizeOrdinal && masterEntry.Ordinal != slaveEntry.Ordinal) { Console.WriteLine("Ordinals differ: {0}-{1}", masterEntry, slaveEntry); updateEntry = new SynchronizationEntry(masterId, slaveEntry.Status, slaveMappedMasterProperties) { Ordinal = masterEntry.Ordinal }; } if (updateEntry != null) { _slave.UpdateData(updateEntry); } } }
private bool TryGetMasterEntry(SynchronizationEntry slaveEntry, out SynchronizationEntry masterEntry) { if (!_map.ContainsKey(_slave, slaveEntry.Status)) { masterEntry = null; return(false); } var masterStatus = _map.GetMappedValue(_slave, slaveEntry.Status); masterEntry = new SynchronizationEntry(slaveEntry.Id, masterStatus, slaveEntry.Properties) { Ordinal = slaveEntry.Ordinal, TimeStamp = slaveEntry.TimeStamp }; return(true); }
public void Synchronize() { var masterEntries = _master.GetAll().ToDictionary(e => e.Id); var slaveEntries = _slave.GetAll().ToDictionary(e => e.Id); foreach (var masterId in masterEntries.Keys) { if (!slaveEntries.ContainsKey(masterId)) { continue; } var slaveEntry = slaveEntries[masterId]; var masterEntry = masterEntries[masterId]; var slaveProperties = FilterForSynchronization(_slave, slaveEntry.Properties); var slaveMappedMasterProperties = FilterForSynchronization(_slave, MapProperties(_master, masterEntry.Properties)); SynchronizationEntry updateEntry = null; if (!AreEqual(slaveMappedMasterProperties, slaveProperties)) { Console.WriteLine("Properties differ"); Console.WriteLine("Slavemapped master:"+ slaveMappedMasterProperties.Select(kv => kv.Value).Join(',')); Console.WriteLine("Slave :" + slaveProperties.Select(kv => kv.Value).Join(',')); updateEntry = new SynchronizationEntry(masterId, slaveEntry.Status, slaveMappedMasterProperties) {Ordinal = slaveEntry.Ordinal}; } if (SynchronizeOrdinal && masterEntry.Ordinal != slaveEntry.Ordinal) { Console.WriteLine("Ordinals differ: {0}-{1}",masterEntry,slaveEntry); updateEntry = new SynchronizationEntry(masterId, slaveEntry.Status, slaveMappedMasterProperties) {Ordinal = masterEntry.Ordinal}; } if (updateEntry != null) { _slave.UpdateData(updateEntry); } } }
protected static SynchronizationEntry Entry(string id, string status, int? ordinal) { var entry = new SynchronizationEntry(id, status, new Dictionary<string, string>()) { Ordinal = ordinal }; return entry; }
public void UpdateStatus(SynchronizationEntry entry) { var unid = entry.Properties["unid"]; _dominoRepository.UpdateField(unid,"Status",entry.Status); }
public void Delete(SynchronizationEntry entry) { throw new NotImplementedException(); }
public void UpdateStatus(SynchronizationEntry entry) { var workItem = WorkItem.New(entry.Id, entry.Status); _repository.PostWorkItem(workItem); }
public void UpdateData(SynchronizationEntry entry) { var workItem = CreateWorkItem(entry); _repository.PostWorkItem(workItem); }
public void Delete(SynchronizationEntry entry) { var workItem = WorkItem.New(entry.Id,entry.Status); _repository.DeleteWorkItem(workItem); }