public async Task <decimal> GetCurrentBalance(Guid accountId, CancellationToken cancellationToken) { var query = new GetAccountTransactionsQuery() { AccountId = accountId }; return(await _queryHandler.Query <Transaction, decimal>(query, cancellationToken)); }
protected override object DoQuery(Context context) { var handlerConfig = context.HandlerConfig; var queryConfigs = context.Configs; var queryParam = context.Params; IValueSetter valueSetter = handlerConfig.Create(); object outData = valueSetter.CreateInstance(); context.Data = outData; IDictionary <string, object> contentData = new ExpandoObject(); IValueSetter contentSetter = ValueSetterCreater.Create(contentData); foreach (var queryConfig in queryConfigs) { IQueryHandler queryHandler = QueryHandlerFactory.GetQueryHandler(queryConfig.QueryType); IConditionQueryHandler conditionQueryHandler = queryHandler as IConditionQueryHandler; var subContext = new Context(context) { Data = contentData, Configs = new QueryConfig[] { queryConfig } }; if (conditionQueryHandler != null) { var isContinue = conditionQueryHandler.Continue(subContext); if (isContinue == false) { if (conditionQueryHandler.WhetheStop(subContext)) { return(outData); } continue; } } context.Childs.Add(subContext); var data = queryHandler.Query(subContext); contentSetter.SetFieldByConfig(contentData, data, queryConfig); if (conditionQueryHandler != null) { var result = conditionQueryHandler.WhetheResultStop(subContext, data); if (result == true) { return(outData); } } if (queryConfig.IngoreFill == true) { continue; } valueSetter.SetField(queryConfig.Filed, data); } return(outData); }
protected override object DoQuery(Context context) { var conditionSetting = GetConditionModel(context); IQueryHandler queryHandler = QueryHandlerFactory.GetQueryHandler(conditionSetting.QueryType); return(queryHandler.Query(context)); }
public DataObject this[string query] { get { if (QueryHandler != null) { return(QueryHandler.Query(query)); } throw new NotImplementedException("Query handler is not implemented."); } }
public DataObject this[string query] { get { if (QueryHandler == null) { if (Settings.QueryHandlerFactory != null) { QueryHandler = Settings.QueryHandlerFactory(); } if (QueryHandler == null) { throw new NotImplementedException("Query handler is not implemented."); } } return(QueryHandler.Query(query)); } }
public static object Query(HandlerConfig handlerConfig, object complexData, IDictionary <string, object> queryParams = null) { IQueryHandler queryHandler = QueryHandlerFactory.GetQueryHandler(handlerConfig.QueryType); if (handlerConfig.Configs == null || handlerConfig.Configs.Any() == false) { throw new ArgumentNullException("handlerConfig.Configs"); } var context = new Context { HandlerConfig = handlerConfig, Configs = handlerConfig.Configs, Params = queryParams, ComplexData = complexData, }; ParamConvertUtil.DoConvert(context); var returnData = queryHandler.Query(context); //执行完查询后回调 return(handlerConfig.OnQueryEnd(returnData, queryParams)); }
public async Task <IEnumerable <GameResult> > Get(Guid gameId) { return(await _detailedGameQueryHandler.Query(new GameQuery { GameId = gameId })); }
public async Task <IEnumerable <GameResult> > Get(DefaultQuery query) { return(await _gameQueryHandler.Query(query)); }
public void ExcuteSubQueries(Context context, QueryConfig queryConfig, IValueSetter valueSetter, IEnumerable <object> parents) { if (queryConfig.Config == null || queryConfig.Config["related_queries"] == null || parents.Any() == false) { return; } var relatedQueryConfigs = JsonConvert.DeserializeObject <IEnumerable <ReleatedQuery> >(queryConfig.Config["related_queries"].ToString()); if (relatedQueryConfigs.Any() == false) { return; } IDictionary <string, object> contentData = new ExpandoObject(); foreach (var relatedQueryConfig in relatedQueryConfigs) { IQueryHandler queryHandler = QueryHandlerFactory.GetQueryHandler(relatedQueryConfig.QueryType); IConditionQueryHandler conditionQueryHandler = queryHandler as IConditionQueryHandler; var subContext = new Context(context) { Data = contentData, Configs = new QueryConfig[] { relatedQueryConfig }, Params = context.Params }; if (conditionQueryHandler != null) { var isContinue = conditionQueryHandler.Continue(subContext); if (isContinue == false) { if (conditionQueryHandler.WhetheStop(subContext)) { return; } continue; } } context.Childs.Add(subContext); var obj = queryHandler.Query(subContext); if (!string.IsNullOrEmpty(relatedQueryConfig.Filed)) { contentData.Add(relatedQueryConfig.Filed, obj); } if (conditionQueryHandler != null) { var result = conditionQueryHandler.WhetheResultStop(subContext, obj); if (result == true) { return; } } if (relatedQueryConfig.IngoreFill) { continue; } SetSubQueryValue(relatedQueryConfig, valueSetter, parents, (IEnumerable <object>)obj); } }
public async Task <IEnumerable <TResult> > Query(TQuery query) { _logger.Information("Query = {Query}, Json = {@Json}", query.GetType().FullName, query); return(await _handler.Query(query)); }
public async Task <IEnumerable <TeamResult> > Get(DefaultQuery query) { return(await _teamQueryHandler.Query(query)); }