/// <summary>
        /// Vraca sve linije koje ispunjavaju prost linijski kriterijum
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        public List <ncLine> selectLines(ncLineCriteria criteria, IEnumerable <ncLine> input = null)
        {
            if (input == null)
            {
                input = this;
            }

            List <ncLine> output = new List <ncLine>();

            if (!String.IsNullOrEmpty(criteria.customCommand))
            {
                criteria.customCommand = criteria.customCommand.ToUpper();
            }

            foreach (ncLine line in input)
            {
                Boolean selectOk = criteria.testLineCriteria(line); // testLineCriteria(line, criteria);
                if (selectOk)
                {
                    output.Add(line);
                }
            }

            return(output);
        }
Example #2
0
 /// <summary>
 /// Pasivni konstruktor - nista ne kalkulise samo definise
 /// </summary>
 /// <param name="__source"></param>
 /// <param name="__criteria"></param>
 /// <param name="selected"></param>
 public ncLineSelectedCollection(ncLineCollection __source, ncLineCriteria __criteria, IEnumerable <ncLine> selected)
 {
     source   = __source;
     criteria = __criteria;
     foreach (ncLine ln in selected)
     {
         Add(ln);
     }
 }
        /// <summary>
        /// Pravi kolekciju selektovanih linija na osnovu prosledjenog kriterijuma koji moze biti selektor ili obican kriterijum
        /// </summary>
        /// <param name="criteria"></param>
        /// <returns></returns>
        public ncLineSelectedCollection getSelection(ncLineCriteria criteria)
        {
            List <ncLine> lns = new List <ncLine>();// selectLines(criteria);

            if (criteria.GetType() == typeof(ncLineCriteria))
            {
                lns = selectLines(criteria);
            }
            if (criteria.GetType() == typeof(ncLineRelativeCriteria))
            {
                lns = filterSelectedLines(criteria as ncLineRelativeCriteria);
            }
            if (criteria.GetType() == typeof(ncLineSelector))
            {
                lns = selectLinesBySelector(criteria as ncLineSelector);
            }
            return(new ncLineSelectedCollection(this, criteria, lns));
        }
Example #4
0
        public static String writeLineCriteriaInline(this ncLineCriteria criteria)
        {
            String output = "";

            output = output.add("Criteria type[" + criteria.GetType().Name + "]");

            if (criteria.commandCriteria == ncLineCommandPredefined.custom)
            {
                output.add("cust.command[" + criteria.customCommand + "]");
            }
            else
            {
                output.add("command[" + criteria.commandCriteria.ToString() + "]");
            }

            if (criteria is ncLineRelativeCriteria)
            {
                ncLineRelativeCriteria rc = criteria as ncLineRelativeCriteria;

                output.addVal("relation type: ", rc.relativeType.ToString());

                output.addVal("relation offset: ", rc.relativePosition.ToString());
            }

            if (criteria is ncLineSelector)
            {
                ncLineSelector sc = criteria as ncLineSelector;

                output.addVal("included relative criterias: ", sc.Count().ToString());

                foreach (ncLineRelativeCriteria rc in sc)
                {
                    output.log(rc.writeLineCriteriaInline());
                }
            }
            return(output);
        }