Пример #1
0
 public FormulaCellParam(FormulaCellParam cellParam)
 {
     this.Name = cellParam.Name;
     this.Cell = cellParam.Cell;
     this.EnumerateType = cellParam.EnumerateType;
     this.Type = cellParam.Type;
 }
Пример #2
0
        private IDictionary<string, FormulaCellParam> GetCellParams(XElement formulaElement, IDictionary<string, FormulaCellParam> templateCellParams, XNamespace ns)
        {
            var cellParams = new Dictionary<string, FormulaCellParam>();

            if (templateCellParams != null && templateCellParams.Keys.Count > 0)
            {
                foreach (var key in templateCellParams.Keys)
                {
                    cellParams.Add(key, new FormulaCellParam(templateCellParams[key]));
                }
            }

            var formulaParamsElement = formulaElement.GetChild("Params", ns);
            if (formulaParamsElement != null)
            {
                Func<XElement, bool> filterExp = (e => { return e.GetEnumValue<FormulaParamType>("Type") == FormulaParamType.Cell; });

                var cellParamElements = formulaParamsElement.GetDescendants("Param", ns, filterExp);

                foreach (var paramElement in cellParamElements)
                {
                    var cellParam = new FormulaCellParam()
                    {
                        Name = paramElement.GetStringValue("Name"),
                        Type = FormulaParamType.Cell,
                        Cell = paramElement.GetStringValue("Cell"),
                        EnumerateType = paramElement.GetEnumValue<EnumerateType>("EnumerateType", EnumerateType.None)
                    };

                    if (!cellParams.ContainsKey(cellParam.Name))
                    {
                        cellParams.Add(cellParam.Name, cellParam);
                    }
                    else
                    {
                        cellParams[cellParam.Name] = cellParam;
                    }
                }
            }

            return cellParams;
        }