public override void Run() { TaskManager mgr = ServiceManager.Instance.GetService <TaskManager>(); TaskLoader ldr = new TaskLoader(); string file = FileService.OpenFile(ResourceService.GetString("TITLE_LOAD_TASK"), ResourceService.GetString("FILTER_TASK_DEFINITION")); if (FileService.FileExists(file)) { using (new TempCursor(Cursors.WaitCursor)) { LoggingService.Info(ResourceService.GetString("LOADING_TASK_DEFINITION_WAIT")); if (TaskDefinitionHelper.IsBulkCopy(file)) { string name = string.Empty; FdoBulkCopyOptions opt = ldr.BulkCopyFromXml(file, ref name, false); FdoBulkCopy cpy = new FdoBulkCopy(opt); mgr.AddTask(name, cpy); } else if (TaskDefinitionHelper.IsJoin(file)) { string name = string.Empty; FdoJoinOptions opt = ldr.JoinFromXml(file, ref name, false); FdoJoin join = new FdoJoin(opt); mgr.AddTask(name, join); } else if (TaskDefinitionHelper.IsSequentialProcess(file)) { using (var fs = File.OpenRead(file)) { int counter = 0; var prefix = Path.GetFileNameWithoutExtension(file); var name = prefix; while (mgr.NameExists(name)) { counter++; name = prefix + counter; } var def = (SequentialProcessDefinition)SequentialProcessDefinition.Serializer.Deserialize(fs); var proc = new FdoSequentialProcess(def); mgr.AddTask(name, proc); } } } } }
/// <summary> /// Handles the file drop /// </summary> /// <param name="file">The file being dropped</param> public void HandleDrop(string file) { TaskManager mgr = ServiceManager.Instance.GetService <TaskManager>(); TaskLoader ldr = new TaskLoader(); string prefix = string.Empty; FdoJoinOptions opt = ldr.JoinFromXml(file, ref prefix, false); FdoJoin join = new FdoJoin(opt); string name = prefix; int counter = 0; while (mgr.NameExists(name)) { counter++; name = prefix + counter; } mgr.AddTask(name, join); }