コード例 #1
0
ファイル: Pipeline.cs プロジェクト: xfm84/test
 public Pipeline(ICloudProvider localProvider, ICloudProvider cloudProvider,
     PipelineDirections direction, Coordinator coordinator)
 {
     this.localProvider = localProvider;
     this.cloudProvider = cloudProvider;
     this.direction = direction;
     this.coordinator = coordinator;
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: xfm84/test
        //[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
        public static void Run()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            ProcessRecordManager processRecordManager = new ProcessRecordManager();

            var coordinator = new CloudFarm.FileSystem.Coordinator();

            coordinator.processRecordManager = processRecordManager;

            var endpoints = fetchEndpointsFromMem();
            var pipelines = fetchPipelines();

            int inactiveCount = 0;

            var validPipelines = new List<Pipeline>();

            foreach (var pipeline in pipelines)
            {
                if (pipeline.Type.Equals("local"))
                {
                    var provider1 = new LocalHDProvider(pipeline.LocalPath);
                    var provider2 = new CloudHDProvider(pipeline.CloudEndpoint);
                    var a = new Pipeline(provider1, provider2, PipelineDirections.Backup, coordinator);
                    a.Name = pipeline.CloudEndpoint;
                    validPipelines.Add(a);
                }
                else
                {
                    var matchedEndpoint = endpoints
                        .Where(p =>
                            p.is_active &&
                            string.Equals(p.name, pipeline.CloudEndpoint, StringComparison.OrdinalIgnoreCase)
                        ).FirstOrDefault();
                    if (matchedEndpoint != null)
                    {
                        var provider1 = new LocalHDProvider(pipeline.LocalPath);
                        var provider2 = new BaiduCloudProvider(matchedEndpoint.farm_token, matchedEndpoint.path);
                        if (!string.IsNullOrEmpty(matchedEndpoint.password))
                        {
                            var provider3 = new SevenZipProvider(provider2, matchedEndpoint.password);
                            var a = new Pipeline(provider1, provider3, PipelineDirections.Backup, coordinator);
                            a.Name = matchedEndpoint.name;
                            validPipelines.Add(a);
                            //a.Compare();
                        }
                        else
                        {
                            var a = new Pipeline(provider1, provider2, PipelineDirections.Backup, coordinator);
                            validPipelines.Add(a);
                            a.Name = matchedEndpoint.name;
                            //a.Compare();
                        }

                    }
                }
            }

            var explorer = new Explorer();
            explorer.pipelines = validPipelines;

            Progress progress = new Progress();
            progress.processRecordManager = processRecordManager;
            explorer.progress = progress;
            explorer.coordinator = coordinator;

            Application.Run(explorer);
        }