public ApplyChangePushItemResponse ApplyChangePushItem(ApplyChangePushItemRequest applyChangePushItemRequest) { LoggingManager.Debug("Trying to apply a change to: " + _targetRootFolder); if (applyChangePushItemRequest == null || applyChangePushItemRequest.ChangePushItem == null) { throw new ArgumentNullException("applyChangePushItemRequest"); } if (string.IsNullOrEmpty(applyChangePushItemRequest.ChangePushItem.AbsolutePath)) return new ApplyChangePushItemResponse {ChangePushItem = applyChangePushItemRequest.ChangePushItem, Success = false}; if (_copyStrategy == null) { throw new SourceOfDataSetupException("", "No source of data established"); } return TryApplyChange(applyChangePushItemRequest); }
public void SubscriberApplyChanges_Ok() { if (File.Exists(@"C:\MySynch.Dest.Test.Root\File1.xml")) File.Delete(@"C:\MySynch.Dest.Test.Root\File1.xml"); ISubscriberProxy subscriberProxy = new SubscriberClient(); subscriberProxy.InitiateUsingPort(8765); ApplyChangePushItemRequest applyChangePushItemRequest = new ApplyChangePushItemRequest { SourceRootName = @"C:\MySynch.Source.Test.Root\", ChangePushItem = new ChangePushItem { AbsolutePath = @"C:\MySynch.Source.Test.Root\File1.xml", OperationType = OperationType.Insert } }; Assert.True(subscriberProxy.TryOpenChannel(new TryOpenChannelRequest { SourceOfDataPort = 8765 }).Status); subscriberProxy.ApplyChangePushItem(applyChangePushItemRequest); Assert.True(File.Exists(@"C:\MySynch.Dest.Test.Root\File1.xml")); }
public ApplyChangePushItemResponse ApplyChangePushItem(ApplyChangePushItemRequest applyChangePushItemRequest) { throw new NotImplementedException(); }
private ApplyChangePushItemResponse ApplyUpsert(ApplyChangePushItemRequest applyChangePushItemRequest, string targetRootFolder) { LoggingManager.Debug("Applying upsert from " + applyChangePushItemRequest.SourceRootName + " to " + targetRootFolder); return new ApplyChangePushItemResponse { ChangePushItem = new ChangePushItem { AbsolutePath = Path.Combine(targetRootFolder, applyChangePushItemRequest. ChangePushItem.AbsolutePath.Replace( applyChangePushItemRequest. SourceRootName, "")), OperationType = applyChangePushItemRequest.ChangePushItem.OperationType }, Success = _copyStrategy.Copy(applyChangePushItemRequest.ChangePushItem.AbsolutePath, Path.Combine(targetRootFolder, applyChangePushItemRequest.ChangePushItem.AbsolutePath. Replace(applyChangePushItemRequest.SourceRootName, ""))) }; }
private ApplyChangePushItemResponse ApplyDelete(ApplyChangePushItemRequest applyChangePushItemRequest, string targetRootFolder) { LoggingManager.Debug("Applying delete to " + targetRootFolder); var response = new ApplyChangePushItemResponse { ChangePushItem = new ChangePushItem { AbsolutePath = applyChangePushItemRequest.ChangePushItem.AbsolutePath.Replace( applyChangePushItemRequest.SourceRootName, targetRootFolder), OperationType = OperationType.Delete }, Success = false }; try { if (File.Exists(response.ChangePushItem.AbsolutePath)) File.Delete(response.ChangePushItem.AbsolutePath); response.Success = true; } catch (Exception ex) { LoggingManager.LogMySynchSystemError(ex); response.Success = false; } LoggingManager.Debug("Apply deletes returns " + response.Success); return response; }
internal ApplyChangePushItemResponse TryApplyChange(ApplyChangePushItemRequest applyChangePushItemRequest) { return (applyChangePushItemRequest.ChangePushItem.OperationType != OperationType.Delete) ? ApplyUpsert(applyChangePushItemRequest, _targetRootFolder) : ApplyDelete(applyChangePushItemRequest, _targetRootFolder); }