예제 #1
0
        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);
                        }
                    }
                }
            }
        }
예제 #2
0
        /// <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);
        }