Ejemplo n.º 1
0
 public TaskNode(TaskInfo tsk)
 {
     nodeType = NodeType.Task;
     Task = tsk;
     this.Text = tsk.TaskName;
     this.ImageIndex = DataConvert.GetInt32(IconType.Task);
     this.SelectedImageIndex = DataConvert.GetInt32(IconType.Task);
 }
Ejemplo n.º 2
0
        public static bool SetTask(string taskid, string taskname, TaskInfo taskitem)
        {
            try
            {
                if (taskid == null || taskid == string.Empty)
                    return false;

                XmlDocument objXmlDoc = GetTaskConfigFile(taskid, taskname);
                if (objXmlDoc == null)
                    return false;

                //root node
                XmlNode objTaskNode = objXmlDoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK);
                if (objTaskNode == null)
                    return false;

                XmlNode objNode;
                /*------------------------------Code Generator-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.COMP_CODEGENERATOR);
                if (objNode != null)
                {
                    XmlNode objDbServer = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_DBSERVER);
                    objDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_SERVERNAME).InnerText = taskitem.DatabaseServer.ServerName;
                    objDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_DATABASENAME).InnerText = taskitem.DatabaseServer.DatabaseName;
                    objDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_CONNECTIONSTRING).InnerText = taskitem.DatabaseServer.ConnectionString;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_SOLUTION).InnerText = taskitem.Solution;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_PROJECT).InnerText = taskitem.Project;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_TEMPLATE).InnerText = taskitem.Template;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACEPREFIX).InnerText = taskitem.NameSpacePrefix;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACESUFFIX).InnerText = taskitem.NameSpaceSuffix;
                    /*------------------------------Tables-----------------------------------*/
                    XmlNode objTablesNode = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_TABLES);
                    if (objTablesNode == null)
                        return false;

                    objTablesNode.RemoveAll();
                    foreach (TableInfo table in taskitem.Tables)
                    {
                        XmlElement objTableNode = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_TABLE);
                        objTablesNode.AppendChild(objTableNode);
                        XmlElement emtTableName = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_TABLENAME);
                        emtTableName.InnerText = table.TableName;
                        objTableNode.AppendChild(emtTableName);
                    }
                    /*------------------------------Modules-----------------------------------*/
                    XmlNode objModulesNode = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_MODULES);
                    if (objModulesNode == null)
                        return false;

                    objModulesNode.RemoveAll();
                    foreach (ModuleInfo module in taskitem.Modules)
                    {
                        XmlElement objModuleNode = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_MODULE);
                        objModulesNode.AppendChild(objModuleNode);
                        XmlElement emtModuleName = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_MODULENAME);
                        emtModuleName.InnerText = module.ModuleName;
                        objModuleNode.AppendChild(emtModuleName);
                    }
                }
                /*------------------------------Code Generator-----------------------------------*/

                /*------------------------------Miscellaneous-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.TASK_NODE_MISCELLANEOUS);
                if (objNode != null)
                {
                    if (objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE) == null)
                    {
                        XmlElement objChildNode = objXmlDoc.CreateElement(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE);
                        objNode.AppendChild(objChildNode);
                    }
                    objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE).InnerText = taskitem.WriteLogToFile.ToString();
                }
                /*------------------------------Miscellaneous-----------------------------------*/
                
                //Main config file
                if (EditTask(taskitem) == Constants.STATUS_FAIL)
                    return false;

                return SetTaskConfigFile(objXmlDoc, taskid);

            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.SetTask:" + taskname, ex);
                return false;
            }
        }
Ejemplo n.º 3
0
        public static TaskInfo GetTask(string taskid, string taskname)
        {
            try
            {
                XmlDocument objXmlDoc;
                TaskInfo task = new TaskInfo();

                if (taskid == null || taskid == string.Empty)
                    return null;

                objXmlDoc = GetTaskConfigFile(taskid, taskname);
                if (objXmlDoc == null)
                    return null;

                task.TaskId = taskid;
                task.TaskName = taskname;

                //root node
                XmlNode objTaskNode = objXmlDoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK);
                if (objTaskNode == null)
                    return null;

                XmlNode objNode;
                DataView dv;
                /*------------------------------Code Generator-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.COMP_CODEGENERATOR);
                if (objNode != null)
                {
                    XmlNode nodeDbServer = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_DBSERVER);
                    task.DatabaseServer.ServerName = DataConvert.GetString(nodeDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_SERVERNAME).InnerText);
                    task.DatabaseServer.DatabaseName = DataConvert.GetString(nodeDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_DATABASENAME).InnerText);
                    task.DatabaseServer.ConnectionString = DataConvert.GetString(nodeDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_CONNECTIONSTRING).InnerText);
                    task.Solution = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_SOLUTION).InnerText);
                    task.Project = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_PROJECT).InnerText);
                    task.Template = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_TEMPLATE).InnerText);
                    task.NameSpacePrefix = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACEPREFIX).InnerText);
                    task.NameSpaceSuffix = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACESUFFIX).InnerText);
                    /*------------------------------Tables-----------------------------------*/
                    dv = GetData(objXmlDoc, Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR_TABLES);

                    Collection<TableInfo> tables = new Collection<TableInfo>();

                    for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                    {
                        TableInfo table = new TableInfo();
                        table.TableName = DataConvert.GetString(dv.Table.Rows[ix][0]);
                        tables.Add(table);
                    }
                    task.Tables = tables;
                    /*------------------------------Modules-----------------------------------*/
                    dv = GetData(objXmlDoc, Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR_MODULES);

                    Collection<ModuleInfo> modules = new Collection<ModuleInfo>();

                    for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                    {
                        ModuleInfo module = new ModuleInfo();
                        module.ModuleName = DataConvert.GetString(dv.Table.Rows[ix][0]);
                        modules.Add(module);
                    }
                    task.Modules = modules;
                }
                /*------------------------------Code Generator-----------------------------------*/               

                /*------------------------------Miscellaneous-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.TASK_NODE_MISCELLANEOUS);
                if (objNode != null)
                {
                    if (objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE) != null)
                        task.WriteLogToFile = DataConvert.GetBool(objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE).InnerText);
                    else
                        task.WriteLogToFile = false;
                }
                /*------------------------------Miscellaneous-----------------------------------*/

                

                return task;
            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.GetTask", taskname + "(" + taskid.ToString() + ")", ex, LogSeverity.Fatal);
                throw;
            }
        }
Ejemplo n.º 4
0
 private static bool IsExistTaskNode(XmlDocument xmldoc, TaskInfo task)
 {
     XmlNode objTasksNode = xmldoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASKS);
     foreach (XmlNode xn in objTasksNode.ChildNodes)
     {
         if (xn.SelectSingleNode(Constants.TASK_TASKID).InnerText == task.TaskId)
         {
             return true;
         }
     }
     return false;
 }
Ejemplo n.º 5
0
 private static void DeleteTaskNode(XmlDocument xmldoc, TaskInfo task)
 {
     XmlNode objTasksNode = xmldoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASKS);
     foreach (XmlNode xn in objTasksNode.ChildNodes)
     {
         if (xn.SelectSingleNode(Constants.TASK_TASKID).InnerText == task.TaskId)
         {
             objTasksNode.RemoveChild(xn);
             break;
         }
     }
 }
Ejemplo n.º 6
0
 private static void EditTaskNode(XmlDocument xmldoc, TaskInfo task)
 {
     XmlNode objTasksNode = xmldoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASKS);
     foreach (XmlNode xn in objTasksNode.ChildNodes)
     {
         if (xn.SelectSingleNode(Constants.TASK_TASKID).InnerText == task.TaskId)
         {
             xn.SelectSingleNode(Constants.TASK_TASKNAME).InnerText = task.TaskName;
             if (xn.SelectSingleNode(Constants.TASK_GROUPNAME) == null)
             {
                 XmlElement objGroupNameNode = xmldoc.CreateElement(Constants.TASK_GROUPNAME);
                 xn.AppendChild(objGroupNameNode);
             }
             xn.SelectSingleNode(Constants.TASK_GROUPNAME).InnerText = task.DatabaseServer.ServerName;
             break;
         }
     }
 }
Ejemplo n.º 7
0
 private static void InsertTaskNode(XmlDocument xmldoc, TaskInfo task)
 {
     XmlNode objTasksNode = xmldoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASKS);
     XmlElement objChildNode = xmldoc.CreateElement(Constants.TASK_TASK);
     objTasksNode.AppendChild(objChildNode);
     XmlElement emtTaskId = xmldoc.CreateElement(Constants.TASK_TASKID);
     emtTaskId.InnerText = task.TaskId;
     XmlElement emtTaskName = xmldoc.CreateElement(Constants.TASK_TASKNAME);
     emtTaskName.InnerText = task.TaskName;
     objChildNode.AppendChild(emtTaskId);
     objChildNode.AppendChild(emtTaskName);
 }
Ejemplo n.º 8
0
        public static string DeleteTask(TaskInfo task)
        {
            try
            {
                XmlDocument objXmlDoc = GetCGConfigFile();
                if (objXmlDoc == null)
                    return "Config file does not exist!";

                DeleteTaskNode(objXmlDoc, task);

                SetCGConfigFile(objXmlDoc);

                //delete task file
                string folder = Path.Combine(Application.StartupPath, Constants.FOLDER_TASKS);
                string taskFile = Path.Combine(folder, String.Concat(task.TaskId, ".xml"));
                File.Delete(taskFile);

                return Constants.STATUS_SUCCESS;
            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.DeleteTask:" + task.TaskName, ex);
                return Constants.STATUS_FAIL;
            }
        }
Ejemplo n.º 9
0
        public static string EditTask(TaskInfo task)
        {
            try
            {
                XmlDocument objXmlDoc = GetCGConfigFile();
                if (objXmlDoc == null)
                    return "Config file does not exist!";

                if (task.TaskId == null || task.TaskId == string.Empty)
                {
                    Random rd = new Random();
                    int num = rd.Next(1, 999999999);
                    DateTime now = DateTime.Now; //获取系统时间   
                    string taskId = now.Year.ToString() + now.Month.ToString() + now.Day.ToString() + now.Hour.ToString() + now.Minute.ToString() + now.Second.ToString() + now.Millisecond.ToString() + "_" + num.ToString();

                    task.TaskId = taskId;
                    InsertTaskNode(objXmlDoc, task);
                }
                else
                {
                    EditTaskNode(objXmlDoc, task);
                }

                bool ret = SetCGConfigFile(objXmlDoc);
                if (ret)
                    return Constants.STATUS_SUCCESS;
                else
                    return Constants.STATUS_FAIL;
            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.EditTask:" + task.TaskName, ex);
                return Constants.STATUS_FAIL;
            }
        }
Ejemplo n.º 10
0
        public static Collection<TaskInfo> GetTasks()
        {
            try
            {
                XmlDocument objXmlDoc = GetCGConfigFile();
                if (objXmlDoc == null)
                    return null;

                DataView dv = GetData(objXmlDoc, Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASKS);

                Collection<TaskInfo> tasks = new Collection<TaskInfo>();

                for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                {
                    try
                    {
                        TaskInfo task = new TaskInfo();
                        task = GetTask(dv.Table.Rows[ix][0].ToString(), dv.Table.Rows[ix][1].ToString());
                        tasks.Add(task);
                    }
                    catch
                    {
                        continue;
                    }
                }

                return tasks;
            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.GetTasks", ex, LogSeverity.Fatal);
                throw;
            }
        }
Ejemplo n.º 11
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbServer.Items.Count == 0 || cmbServer.Text == string.Empty)
                {
                    MessageBox.Show("Please select a server£¡", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbServer.Select();
                    return;
                }

                if (cmbDatabase.Items.Count == 0 || cmbDatabase.Text == string.Empty)
                {
                    MessageBox.Show("Please select a database first£¡", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbDatabase.Select();
                    return;
                }

                if (cmbTemplate.Items.Count == 0 || cmbTemplate.Text == string.Empty)
                {
                    MessageBox.Show("Please select a template first£¡", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbTemplate.Select();
                    return;
                }

                if (selectorModule.AllSelectedItems.Count == 0)
                {
                    MessageBox.Show("Please select a module first£¡", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    selectorModule.Select();
                    return;
                }
                if (String.IsNullOrEmpty(txtNameSpacePrefix.Text))
                {
                    MessageBox.Show("Please input the prefix of name space!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtNameSpacePrefix.Select();
                    return;
                }
                if (String.IsNullOrEmpty(txtNameSpaceSuffix.Text))
                {
                    MessageBox.Show("Please input the suffix of name space!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtNameSpaceSuffix.Select();
                    return;
                }

                TaskInfo taskitem = new TaskInfo();
                //taskitem.
                taskitem.TaskId = _taskid;
                taskitem.TaskName = _taskname;
                DatabaseInfo db = cmbDatabase.SelectedItem as DatabaseInfo;
                taskitem.DatabaseServer = db;
                TemplateInfo template = cmbTemplate.SelectedItem as TemplateInfo;
                taskitem.Template = template.Name;
                taskitem.Modules = selectorModule.AllSelectedItems;
                taskitem.NameSpacePrefix = txtNameSpacePrefix.Text;
                taskitem.NameSpaceSuffix = txtNameSpaceSuffix.Text;
                taskitem.WriteLogToFile = chkWriteLogToFile.Checked;
                
                //accounts
                foreach (object item in lstSelectedTables.Items)
                {
                    TableInfo table = item as TableInfo;
                    if (table != null)
                    {
                        taskitem.Tables.Add(table);
                    }
                }                

                if (ConfigCtrl.SetTask(_taskid, _taskname, taskitem))
                    MessageBox.Show("Succeed to save task!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.None);
                else
                    MessageBox.Show("Fail to save task!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                
                if (taskSaved != null)
                    taskSaved(_taskid, _taskname);
                
            }
            catch (Exception ex)
            {
                Program.ShowMessageBox("FrmTaskEditor", ex);
            }
        }
Ejemplo n.º 12
0
        public static bool SetTask(string taskid, string taskname, TaskInfo taskitem)
        {
            try
            {
                if (taskid == null || taskid == string.Empty)
                {
                    return(false);
                }

                XmlDocument objXmlDoc = GetTaskConfigFile(taskid, taskname);
                if (objXmlDoc == null)
                {
                    return(false);
                }

                //root node
                XmlNode objTaskNode = objXmlDoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK);
                if (objTaskNode == null)
                {
                    return(false);
                }

                XmlNode objNode;
                /*------------------------------Code Generator-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.COMP_CODEGENERATOR);
                if (objNode != null)
                {
                    XmlNode objDbServer = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_DBSERVER);
                    objDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_SERVERNAME).InnerText       = taskitem.DatabaseServer.ServerName;
                    objDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_DATABASENAME).InnerText     = taskitem.DatabaseServer.DatabaseName;
                    objDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_CONNECTIONSTRING).InnerText = taskitem.DatabaseServer.ConnectionString;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_SOLUTION).InnerText             = taskitem.Solution;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_PROJECT).InnerText         = taskitem.Project;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_TEMPLATE).InnerText        = taskitem.Template;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACEPREFIX).InnerText = taskitem.NameSpacePrefix;
                    objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACESUFFIX).InnerText = taskitem.NameSpaceSuffix;
                    /*------------------------------Tables-----------------------------------*/
                    XmlNode objTablesNode = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_TABLES);
                    if (objTablesNode == null)
                    {
                        return(false);
                    }

                    objTablesNode.RemoveAll();
                    foreach (TableInfo table in taskitem.Tables)
                    {
                        XmlElement objTableNode = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_TABLE);
                        objTablesNode.AppendChild(objTableNode);
                        XmlElement emtTableName = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_TABLENAME);
                        emtTableName.InnerText = table.TableName;
                        objTableNode.AppendChild(emtTableName);
                    }
                    /*------------------------------Modules-----------------------------------*/
                    XmlNode objModulesNode = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_MODULES);
                    if (objModulesNode == null)
                    {
                        return(false);
                    }

                    objModulesNode.RemoveAll();
                    foreach (ModuleInfo module in taskitem.Modules)
                    {
                        XmlElement objModuleNode = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_MODULE);
                        objModulesNode.AppendChild(objModuleNode);
                        XmlElement emtModuleName = objXmlDoc.CreateElement(Constants.COMP_CODEGENERATOR_MODULENAME);
                        emtModuleName.InnerText = module.ModuleName;
                        objModuleNode.AppendChild(emtModuleName);
                    }
                }
                /*------------------------------Code Generator-----------------------------------*/

                /*------------------------------Miscellaneous-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.TASK_NODE_MISCELLANEOUS);
                if (objNode != null)
                {
                    if (objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE) == null)
                    {
                        XmlElement objChildNode = objXmlDoc.CreateElement(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE);
                        objNode.AppendChild(objChildNode);
                    }
                    objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE).InnerText = taskitem.WriteLogToFile.ToString();
                }
                /*------------------------------Miscellaneous-----------------------------------*/

                //Main config file
                if (EditTask(taskitem) == Constants.STATUS_FAIL)
                {
                    return(false);
                }

                return(SetTaskConfigFile(objXmlDoc, taskid));
            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.SetTask:" + taskname, ex);
                return(false);
            }
        }
Ejemplo n.º 13
0
        public static TaskInfo GetTask(string taskid, string taskname)
        {
            try
            {
                XmlDocument objXmlDoc;
                TaskInfo    task = new TaskInfo();

                if (taskid == null || taskid == string.Empty)
                {
                    return(null);
                }

                objXmlDoc = GetTaskConfigFile(taskid, taskname);
                if (objXmlDoc == null)
                {
                    return(null);
                }

                task.TaskId   = taskid;
                task.TaskName = taskname;

                //root node
                XmlNode objTaskNode = objXmlDoc.SelectSingleNode(Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK);
                if (objTaskNode == null)
                {
                    return(null);
                }

                XmlNode  objNode;
                DataView dv;
                /*------------------------------Code Generator-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.COMP_CODEGENERATOR);
                if (objNode != null)
                {
                    XmlNode nodeDbServer = objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_DBSERVER);
                    task.DatabaseServer.ServerName       = DataConvert.GetString(nodeDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_SERVERNAME).InnerText);
                    task.DatabaseServer.DatabaseName     = DataConvert.GetString(nodeDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_DATABASENAME).InnerText);
                    task.DatabaseServer.ConnectionString = DataConvert.GetString(nodeDbServer.SelectSingleNode(Constants.COMP_CODEGENERATOR_CONNECTIONSTRING).InnerText);
                    task.Solution        = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_SOLUTION).InnerText);
                    task.Project         = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_PROJECT).InnerText);
                    task.Template        = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_TEMPLATE).InnerText);
                    task.NameSpacePrefix = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACEPREFIX).InnerText);
                    task.NameSpaceSuffix = DataConvert.GetString(objNode.SelectSingleNode(Constants.COMP_CODEGENERATOR_NAMESPACESUFFIX).InnerText);
                    /*------------------------------Tables-----------------------------------*/
                    dv = GetData(objXmlDoc, Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR_TABLES);

                    Collection <TableInfo> tables = new Collection <TableInfo>();

                    for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                    {
                        TableInfo table = new TableInfo();
                        table.TableName = DataConvert.GetString(dv.Table.Rows[ix][0]);
                        tables.Add(table);
                    }
                    task.Tables = tables;
                    /*------------------------------Modules-----------------------------------*/
                    dv = GetData(objXmlDoc, Constants.CONFIG_ROOT + Constants.CHAR_SLASH + Constants.TASK_TASK + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR + Constants.CHAR_SLASH + Constants.COMP_CODEGENERATOR_MODULES);

                    Collection <ModuleInfo> modules = new Collection <ModuleInfo>();

                    for (int ix = 0; ix < dv.Table.Rows.Count; ix++)
                    {
                        ModuleInfo module = new ModuleInfo();
                        module.ModuleName = DataConvert.GetString(dv.Table.Rows[ix][0]);
                        modules.Add(module);
                    }
                    task.Modules = modules;
                }
                /*------------------------------Code Generator-----------------------------------*/

                /*------------------------------Miscellaneous-----------------------------------*/
                objNode = objTaskNode.SelectSingleNode(Constants.TASK_NODE_MISCELLANEOUS);
                if (objNode != null)
                {
                    if (objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE) != null)
                    {
                        task.WriteLogToFile = DataConvert.GetBool(objNode.SelectSingleNode(Constants.TASK_MISCELLANEOUS_WRITELOGTOFILE).InnerText);
                    }
                    else
                    {
                        task.WriteLogToFile = false;
                    }
                }
                /*------------------------------Miscellaneous-----------------------------------*/



                return(task);
            }
            catch (Exception ex)
            {
                Log4Helper.Write("ConfigCtrl.GetTask", taskname + "(" + taskid.ToString() + ")", ex, LogSeverity.Fatal);
                throw;
            }
        }