Пример #1
0
        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);
        }
Пример #2
0
 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"));
 }
Пример #3
0
 public ApplyChangePushItemResponse ApplyChangePushItem(ApplyChangePushItemRequest applyChangePushItemRequest)
 {
     throw new NotImplementedException();
 }
Пример #4
0
 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, "")))
                };
 }
Пример #5
0
        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;
        }
Пример #6
0
 internal ApplyChangePushItemResponse TryApplyChange(ApplyChangePushItemRequest applyChangePushItemRequest)
 {
     return (applyChangePushItemRequest.ChangePushItem.OperationType != OperationType.Delete)
         ? ApplyUpsert(applyChangePushItemRequest, _targetRootFolder)
         : ApplyDelete(applyChangePushItemRequest, _targetRootFolder);
 }