/// <summary> /// Заполнить CollectionsTask /// </summary> private void PopulateCollectionsTask() { if (XDoc.Root.HasElements) { foreach (XElement itemTaskXElement in XDoc.Root.Elements("Task")) { // добавить задачу в коллекцию TaskApplication tempTask = this.Add( itemTaskXElement.Attribute(COMMAND_NAME).Value, itemTaskXElement.Attribute(COMMAND_DESCRIPTION).Value, itemTaskXElement.Attribute(ATTR_PROCEDURE_NAME).Value, itemTaskXElement.Attribute(ATTR_WHAT_MODULE).Value); if (tempTask != null) { foreach (XElement itemParameterXElement in itemTaskXElement.Elements("Parameter")) { // добавить параметр для вызываемой процедуры tempTask.Add(Convert.ToInt32(itemParameterXElement.Attribute(COMMAND_KEY).Value), itemParameterXElement.Attribute(COMMAND_VALUE).Value, ConvertStringToEnumTypeParam(itemParameterXElement.Attribute(COMMAND_TYPE).Value), itemParameterXElement.Attribute(COMMAND_DESCRIPTION).Value); } } } } }
/// <summary> /// Глубокое клонирование /// </summary> /// <returns></returns> public virtual object Clone() { TaskApplication cloneTask = new TaskApplication(Name, Description, ProcedureName, WhatModule); foreach (Parameter itemParameter in this.Parameters.Values) { cloneTask.Add(itemParameter.Number, itemParameter.Value, itemParameter.Type, itemParameter.Description); } return(cloneTask); }