private static void Run(Options options) { using (var xprotect = new XProtectHelper()) { xprotect.Connect(new Uri($"http://{options.Server}:{options.Port}/")); if (!xprotect.State.HasFlag(XProtectHelper.XProtectState.Connected)) { Console.WriteLine(xprotect.LastError); return; } IXProtectDataProcessor dataProcessor = null; if (options.Kind.StartsWith("hardware", StringComparison.OrdinalIgnoreCase) && !options.NewHardware) { dataProcessor = new XProtectHardwareDataProcessor(xprotect, options); } if (options.Kind.StartsWith("hardware", StringComparison.OrdinalIgnoreCase) && options.NewHardware) { dataProcessor = new XProtectNewHardwareDataProcessor(xprotect); } else if (options.Kind.StartsWith("cam", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectCameraDataProcessor(xprotect); } else if (options.Kind.StartsWith("record", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectRecorderDataProcessor(xprotect); } else if (options.Kind.StartsWith("mic", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectMicrophoneDataProcessor(xprotect); } else if (options.Kind.StartsWith("speak", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectSpeakerDataProcessor(xprotect); } else if (options.Kind.StartsWith("meta", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectMetadataDataProcessor(xprotect); } else if (options.Kind.StartsWith("in", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectInputDataProcessor(xprotect); } else if (options.Kind.StartsWith("out", StringComparison.OrdinalIgnoreCase)) { dataProcessor = new XProtectOutputDataProcessor(xprotect); } if (dataProcessor != null) { ProcessData(dataProcessor, options); } } }
private static void ProcessData(IXProtectDataProcessor dataProcessor, Options options) { dataProcessor.Mode = options.Export ? DataProcessorMode.Export : options.Import ? DataProcessorMode.Import : options.Migrate ? DataProcessorMode.Migrate : options.Delete ? DataProcessorMode.Delete : DataProcessorMode.Update; dataProcessor.CsvFile = options.CsvFile; dataProcessor.Verbose = options.Verbose; dataProcessor.Concurrency = options.Concurrency; dataProcessor.Process(); }