Пример #1
0
        public IEnumerable <IAssociationOption> ParseCommoditiesList(AssociationPostFilterFunctionParameters postParams)
        {
            var comparer = new OptionComparer();
            ISet <IAssociationOption> commodity = new SortedSet <IAssociationOption>();

            foreach (var resultset in postParams.Options)
            {
                AssociationOption result = new AssociationOption(resultset.Value, resultset.Label);
                result.Value = resultset.Value;
                if (resultset.Label == null || resultset.Label.IndexOf('-') == -1)
                {
                    result.Label = MISSING;
                    //commodity.Add(result);
                }
                else
                {
                    string[] arrTemp = resultset.Label.Split('-');
                    if (postParams.Association.Target == "component")
                    {
                        result.Label = (arrTemp.Length > 2) ? arrTemp[2] : MISSING;
                        //Please Confirm Luiz
                        result.Value = result.Label;
                        commodity.Add(result);
                    }
                    else if (postParams.Association.Target == "system")
                    {
                        result.Label = arrTemp[0] + '-' + arrTemp[1];
                        //Please Confirm Luiz
                        result.Value = result.Label;
                        commodity.Add(result);
                    }
                    else if (postParams.Association.Target == "module")
                    {
                        result.Label = (arrTemp.Length > 4) ? ModuleFieldValue(arrTemp) : MISSING;
                        //Please Confirm Luiz
                        result.Value = result.Label;
                        commodity.Add(result);
                    }
                    else if (postParams.Association.Target == "item")
                    {
                        result.Label = (arrTemp.Length > 3) ? arrTemp[3] : MISSING;
                        //Please Confirm Luiz
                        result.Value = result.Label;
                        commodity.Add(result);
                    }
                }
            }

            return(commodity);
        }
Пример #2
0
        private IEnumerable <IAssociationOption> ApplyFilters(string applicationName, AttributeHolder originalEntity, string filterFunctionName, ISet <IAssociationOption> options, ApplicationAssociationDefinition association)
        {
            var dataSet = FindDataSet(applicationName, filterFunctionName);
            var mi      = dataSet.GetType().GetMethod(filterFunctionName);

            if (mi == null)
            {
                throw new InvalidOperationException(String.Format(MethodNotFound, filterFunctionName, dataSet.GetType().Name));
            }
            if (mi.GetParameters().Count() != 1)
            {
                throw new InvalidOperationException(String.Format(WrongPostFilterMethod, filterFunctionName, dataSet.GetType().Name));
            }
            var postFilterParam = new AssociationPostFilterFunctionParameters()
            {
                Options        = options,
                OriginalEntity = originalEntity,
                Association    = association
            };

            return((IEnumerable <IAssociationOption>)mi.Invoke(dataSet, new object[] { postFilterParam }));
        }