예제 #1
0
 /// <summary>
 /// Adiciona uma query
 /// </summary>
 /// <param name="query"><see cref="Queryable"/> a ser adicionado</param>
 /// <param name="callBack">Função de callback da consulta</param>
 /// <param name="failedCallBack"></param>
 /// <returns></returns>
 public MultiQueryable Add(Queryable query, QueryCallBack callBack, QueryFailedCallBack failedCallBack)
 {
     _queries.Add(query);
     if (callBack != null)
     {
         QueryCallBackWrapper wrapper = new QueryCallBackWrapper();
         wrapper.QueryCallBack       = callBack;
         wrapper.QueryFailedCallBack = failedCallBack;
         _callbacks.Add(_queries.Count - 1, wrapper);
     }
     return(this);
 }
예제 #2
0
 /// <summary>
 /// Adiciona uma query
 /// </summary>
 /// <param name="query"><see cref="Queryable"/> a ser adicionado</param>
 /// <param name="callback">Função de callback da consulta</param>
 /// <param name="failedCallBack"></param>
 /// <param name="bindStrategy">Estratégia de binding</param>
 /// <param name="objectCreator">Criador de objetos</param>
 public MultiQueryable Add(Queryable query, BindableQueryCallBack callback, QueryFailedCallBack failedCallBack, IQueryResultBindStrategy bindStrategy, IQueryResultObjectCreator objectCreator)
 {
     bindStrategy.Require("bindStrategy").NotNull();
     objectCreator.Require("objectCreator").NotNull();
     _queries.Add(query);
     if (callback != null)
     {
         var wrapper = new BindableQueryCallBackWrapper();
         wrapper.QueryCallBack       = callback;
         wrapper.QueryFailedCallBack = failedCallBack;
         wrapper.BindStrategy        = bindStrategy;
         wrapper.ObjectCreator       = objectCreator;
         _callbacks.Add(_queries.Count - 1, wrapper);
     }
     return(this);
 }
예제 #3
0
 /// <summary>
 /// Remove callback do wrapper
 /// </summary>
 public virtual void RemoveCallBack()
 {
     _queryCallBack       = null;
     _queryFailedCallBack = null;
 }
예제 #4
0
 public MultiQueryable Add <TModel>(Queryable query, QueryCallBack <TModel> callback, QueryFailedCallBack failedCallBack, IQueryResultBindStrategy bindStrategy, IQueryResultObjectCreator objectCreator)
 {
     _queries.Add(query);
     if (bindStrategy == null && objectCreator == null)
     {
         var ts = TypeBindStrategyCache.GetItem(typeof(TModel), t => new QueryResultObjectCreator(t));
         objectCreator = ts;
         bindStrategy  = ts;
     }
     if (bindStrategy == null)
     {
         bindStrategy = new TypeBindStrategy(typeof(TModel), objectCreator);
     }
     if (callback != null)
     {
         QueryCallBackWrapper <TModel> wrapper = new QueryCallBackWrapper <TModel>();
         wrapper.QueryCallBack       = callback;
         wrapper.QueryFailedCallBack = failedCallBack;
         wrapper.BindStrategy        = bindStrategy;
         wrapper.ObjectCreator       = objectCreator;
         _callbacks.Add(_queries.Count - 1, wrapper);
     }
     return(this);
 }
예제 #5
0
 /// <summary>
 /// Adiciona uma query
 /// </summary>
 /// <typeparam name="TModel">Tipo de retorno</typeparam>
 /// <param name="query"><see cref="Queryable"/> a ser adicionado</param>
 /// <param name="callback">Função de callback da consulta</param>
 /// <param name="failedCallBack"></param>
 public MultiQueryable Add <TModel>(Queryable query, QueryCallBack <TModel> callback, QueryFailedCallBack failedCallBack)
 {
     return(Add <TModel>(query, callback, failedCallBack, null, null));
 }