public Pipeline(ICloudProvider localProvider, ICloudProvider cloudProvider, PipelineDirections direction, Coordinator coordinator) { this.localProvider = localProvider; this.cloudProvider = cloudProvider; this.direction = direction; this.coordinator = coordinator; }
//[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); }