コード例 #1
0
        protected T GetParamValue <T>(EpsTaskParams paramType, object subvalue = null, T defaultValue = default(T))
            where T : IConvertible
        {
            var param = FindByName(paramType, subvalue);

            if (param == null || ParamIsEmpty(param))
            {
                return(defaultValue);
            }
            return(param.Value.To <T>());
        }
コード例 #2
0
        protected IList <T> GetAllParamValues <T>(EpsTaskParams paramType, object subvalue = null, T defaultValue = default(T))
            where T : IConvertible
        {
            var prms = subvalue == null
               ? Params.Where(p => p != null && p.Name.To(EpsTaskParams.None) == paramType)
               : Params.Where(p => p != null && p.Name.To(EpsTaskParams.None) == paramType && Equals(p.Subvalue, subvalue));

            var list = new List <T>();

            foreach (var prm in prms)
            {
                if (ParamIsEmpty(prm))
                {
                    continue;
                }

                list.Add(prm.Value.To <T>());
            }
            return(list);
        }
コード例 #3
0
 /// <summary>
 /// Поиск параметра по имени.
 /// </summary>
 /// <param name="paramType">имя типа параметра</param>
 /// <param name="subvalue"></param>
 /// <returns>объект параметра</returns>
 public ParamMap FindByName(EpsTaskParams paramType, object subvalue = null) // Коллеги, а не лучше ли использовать SortedList ?
 {
     return(subvalue == null
         ? Params.FirstOrDefault(p => p.Name.To(EpsTaskParams.None) == paramType)
         : Params.FirstOrDefault(p => p.Name.To(EpsTaskParams.None) == paramType && Equals(p.Subvalue, subvalue)));
 }