コード例 #1
0
        /// <summary>
        /// Backup a repository in according to the source and destination.
        /// </summary>
        public void Backup()
        {
            DisplayHeader();

            SourceSettings srcSettings = new SourceSettings()
            {
                Repository    = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.Source).ConvertToSourceRepository(),
                Path          = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.SourcePath),
                CheckLevel    = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.Check).ConvertToCheckLevel(),
                NoCleaning    = ConsoleHelpers.CommandArgExists(_arguments, Arguments.NoCleaning),
                WideDisplay   = ConsoleHelpers.CommandArgExists(_arguments, Arguments.Wide),
                ApiKey        = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.SourceApiKey),
                NoLocalDelete = ConsoleHelpers.CommandArgExists(_arguments, Arguments.NoLocalDelete)
            };

            DestinationSettings dstSettings = new DestinationSettings()
            {
                Repository = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.Dest).ConvertToDestinationRepository(),
                Path       = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.DestPath),
                ApiKey     = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.DestApiKey)
            };

            TransformSettings trfSettings = new TransformSettings()
            {
                Kind = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.Transform).ConvertToTransformKind(),
                TripleDesFilename = ConsoleHelpers.GetCommandArgValue(_arguments, Arguments.CryptoKey)
            };

            IRepositorySource source = new RepositorySourceFactory(_logger, this).Create(srcSettings, dstSettings, trfSettings);

            WriteComponentLabels(source);
            source.Process();

            DisplayFooter();
        }
コード例 #2
0
        /// <summary>
        /// Creates a destination with the specified settings.
        /// </summary>
        /// <param name="destinationSettings">Destination settings.</param>
        /// <returns>The created destination instance.</returns>
        public virtual Destination CreateDestination(DestinationSettings destinationSettings)
        {
            lock (_objLock)
            {
                if (!_destinations.ContainsKey(destinationSettings.Id))
                {
                    Destination destination = NewDestination(destinationSettings);
                    if (destinationSettings.Adapter != null)
                    {
                        destination.Init(destinationSettings.Adapter);
                    }
                    else
                    {
                        destination.Init(_serviceSettings.DefaultAdapter);
                    }
                    _destinations[destination.Id] = destination;

                    string source = destination.DestinationSettings.Properties["source"] as string;
                    //TODO: warn if more then one "*" source occurs.
                    if (source != null && source == "*")
                    {
                        _defaultDestination = destination;
                    }
                    return(destination);
                }
                else
                {
                    return(_destinations[destinationSettings.Id] as Destination);
                }
            }
        }
コード例 #3
0
ファイル: ServiceBase.cs プロジェクト: Joy011024/PickUpData
 public virtual Destination CreateDestination(DestinationSettings destinationSettings)
 {
     lock (this._objLock)
     {
         if (!this._destinations.ContainsKey(destinationSettings.Id))
         {
             Destination destination = this.NewDestination(destinationSettings);
             if (destinationSettings.Adapter != null)
             {
                 destination.Init(destinationSettings.Adapter);
             }
             else
             {
                 destination.Init(this._serviceSettings.DefaultAdapter);
             }
             this._destinations[destination.Id] = destination;
             string str = destination.DestinationSettings.Properties["source"] as string;
             if ((str != null) && (str == "*"))
             {
                 this._defaultDestination = destination;
             }
             return(destination);
         }
         return(this._destinations[destinationSettings.Id] as Destination);
     }
 }
コード例 #4
0
        /// <summary>
        /// Create a <see cref="IRepositorySource"/> instance in according to the command arguments
        /// </summary>
        public IRepositorySource Create(SourceSettings srcSettings, DestinationSettings dstSettings, TransformSettings trfSettings)
        {
            srcSettings = srcSettings ?? throw new ArgumentNullException("srcSettings");
            dstSettings = dstSettings ?? throw new ArgumentNullException("dstSettings");
            trfSettings = trfSettings ?? throw new ArgumentNullException("trfSettings");

            IRepositorySource source;

            switch (srcSettings.Repository)
            {
            case SourceRepository.Local:
            {
                Helpers.MandatoryValue("source path", srcSettings.Path);

                source = new LocalDirectorySource(srcSettings.Path, _progress, srcSettings.WideDisplay,
                                                  srcSettings.CheckLevel, srcSettings.NoCleaning, srcSettings.NoLocalDelete);
                break;
            }

            case SourceRepository.GCS:
            {
                Helpers.MandatoryValue("source path", srcSettings.Path);
                Helpers.MandatoryValue("source api key filename", srcSettings.ApiKey);

                source = new GcsBucketSource(srcSettings.Path, srcSettings.ApiKey, _progress, srcSettings.WideDisplay);
                break;
            }

            case SourceRepository.S3:
            {
                Helpers.MandatoryValue("source path", srcSettings.Path);
                Helpers.MandatoryValue("source api key filename", srcSettings.ApiKey);

                source = new S3BucketSource(srcSettings.Path, srcSettings.ApiKey, _progress, srcSettings.WideDisplay);
                break;
            }

            case SourceRepository.ABS:
            {
                Helpers.MandatoryValue("source path", srcSettings.Path);
                Helpers.MandatoryValue("source api key filename", srcSettings.ApiKey);

                source = new AbsContainerSource(srcSettings.Path, srcSettings.ApiKey, _progress, srcSettings.WideDisplay);
                break;
            }

            default:
                throw new SmkException($"Unsupported repository source '{srcSettings.Repository}");
            }

            source.Transform   = new TransformFactory(_logger).Create(trfSettings);
            source.Destination = new RepositoryDestinationFactory(_logger, source.Transform).Create(dstSettings);
            source.Logger      = _logger;

            return(source);
        }
コード例 #5
0
        private void InstallServiceBrowserDestinations(ServiceSettings serviceSettings, AdapterSettings adapterSettings)
        {
            DestinationSettings settings = new DestinationSettings(serviceSettings, "FluorineFx.ServiceBrowser.FluorineServiceBrowser", adapterSettings, "FluorineFx.ServiceBrowser.FluorineServiceBrowser");

            serviceSettings.DestinationSettings.Add(settings);
            settings = new DestinationSettings(serviceSettings, "FluorineFx.ServiceBrowser.ManagementService", adapterSettings, "FluorineFx.ServiceBrowser.ManagementService");
            serviceSettings.DestinationSettings.Add(settings);
            settings = new DestinationSettings(serviceSettings, "FluorineFx.ServiceBrowser.CodeGeneratorService", adapterSettings, "FluorineFx.ServiceBrowser.CodeGeneratorService");
            serviceSettings.DestinationSettings.Add(settings);
            settings = new DestinationSettings(serviceSettings, "FluorineFx.ServiceBrowser.SqlService", adapterSettings, "FluorineFx.ServiceBrowser.SqlService");
            serviceSettings.DestinationSettings.Add(settings);
        }
コード例 #6
0
        private void InstallServiceBrowserDestinations(ServiceSettings serviceSettings, AdapterSettings adapterSettings)
        {
            //ServiceBrowser destinations
            DestinationSettings destinationSettings = new DestinationSettings(serviceSettings, DestinationSettings.AMFServiceBrowserDestination, adapterSettings, DestinationSettings.AMFServiceBrowserDestination);

            serviceSettings.DestinationSettings.Add(destinationSettings);

            destinationSettings = new DestinationSettings(serviceSettings, DestinationSettings.AMFManagementDestination, adapterSettings, DestinationSettings.AMFManagementDestination);
            serviceSettings.DestinationSettings.Add(destinationSettings);

            destinationSettings = new DestinationSettings(serviceSettings, DestinationSettings.AMFCodeGeneratorDestination, adapterSettings, DestinationSettings.AMFCodeGeneratorDestination);
            serviceSettings.DestinationSettings.Add(destinationSettings);
        }
コード例 #7
0
 /// <summary>
 /// Creates a new Destination.
 /// </summary>
 /// <param name="destinationSettings">Destination settings.</param>
 /// <returns>The new Destination instance.</returns>
 protected virtual Destination NewDestination(DestinationSettings destinationSettings)
 {
     return(new Destination(this, destinationSettings));
 }
コード例 #8
0
 public RemotingDestination(IService service, DestinationSettings destinationSettings) : base(service, destinationSettings)
 {
 }
コード例 #9
0
        protected override Destination NewDestination(DestinationSettings destinationSettings)
        {
            RemotingDestination remotingDestination = new RemotingDestination(this, destinationSettings);

            return(remotingDestination);
        }
コード例 #10
0
 public DataDestination(IService service, DestinationSettings destinationSettings) : base(service, destinationSettings)
 {
     this._sequenceManager = new FluorineFx.Data.SequenceManager(this);
 }
コード例 #11
0
 internal void SetDestinationSettings(DestinationSettings value)
 {
     _destinationSettings = value;
 }
コード例 #12
0
 public MessageDestination(IService service, DestinationSettings destinationSettings) : base(service, destinationSettings)
 {
     this._subscriptionManager = new FluorineFx.Messaging.Services.Messaging.SubscriptionManager(this);
 }
コード例 #13
0
 protected override Destination NewDestination(DestinationSettings destinationSettings)
 {
     return(new MessageDestination(this, destinationSettings));
 }
コード例 #14
0
ファイル: Destination.cs プロジェクト: sandboxorg/AMFCore
 internal Destination(IService service, DestinationSettings settings)
 {
     _service  = service;
     _settings = settings;
 }