public override IEnumerable<ILookupItem> Select(ILookupQuery query){
            var crit = DetachedCriteria.For(typeof (ICommonDictionaryValue));
            if (query.First){
                crit.SetMaxResults(1);
            }
            crit.Add(Restrictions.Eq("Dictionary", ParentDict));
            if (query.Code.hasContent()){
                if (query.CodeMask){
                    crit.Add(Restrictions.Like("Code", query.Code));
                }
                else{
                    crit.Add(Restrictions.Eq("Code", query.Code));
                }
            }

            if (query.Name.hasContent()){
                if (query.NameMask){
                    crit.Add(Restrictions.Like("Name", query.Name));
                }
                else{
                    crit.Add(Restrictions.Eq("Name", query.Name));
                }
            }
            var result = new List<ILookupItem>();
            var res = storage.Query<ICommonDictionaryValue>(crit);
            foreach (var value in res){
                var item = new LookupItem{Alias = query.Alias, Code = value.Code, Name = value.Name};
                item.Properties["Comment"] = value.Comment;
                item.Properties["Id"] = value.Id;
                item.Properties["Idx"] = value.Idx;
                item.Properties["Value"] = value.Value;
                result.Add(item);
            }
            return result;
        }
 /// <summary>
 /// Выполнения запроса подстановки по логике - найти первый источник
 /// соответствующий заданному в запросе псевдониму
 /// и передать выполнение ему
 /// </summary>
 /// <exception cref="AliasNotRegesteredException">Псевдоним query.Alias не обнаружен среди источников ни у одного провайдера</exception>
 /// <param name="query">стандартный запрос подстановки</param>
 /// <returns>результат подстановки</returns>
 public IEnumerable<ILookupItem> Select(ILookupQuery query){
     var source = Sources.FirstOrDefault(s => s.Alias == query.Alias);
     if (null == source){
         throw new AliasNotRegesteredException(query.Alias);
     }
     return source.Select(query);
 }
Example #3
0
 /// <summary>
 /// Основная сигнатура запроса, соответствующая ILookupSource
 /// </summary>
 /// <param name="query">стандартный запрос подстановки</param>
 /// <returns>Коллекция объектов подстановки по запросу</returns>
 public static IEnumerable<ILookupItem> Select(ILookupQuery query){
     //   @"query".ioc.getNotNull(query);
     return Dispatcher.Select(query);
 }
Example #4
0
 public abstract IEnumerable<ILookupItem> Select(ILookupQuery query);