ICanSendQueryExtension.cs 998 B

123456789101112131415161718192021222324252627282930
  1. namespace Blue
  2. {
  3. public static class ICanSendQueryExtension
  4. {
  5. private static IQueryHandler _queryHandler;
  6. public static void SetQueryHandler(IQueryHandler queryHandler)
  7. {
  8. _queryHandler = queryHandler;
  9. }
  10. public static R SendQuery<Q,R>(this ICanSendQuery self) where Q : IQuery<R>,new()
  11. {
  12. return _queryHandler.DoQuery<Q,R>();
  13. }
  14. public static R SendQuery<R>(this ICanSendQuery self, IQuery<R> queryInstance)
  15. {
  16. return _queryHandler.DoQuery<R>(queryInstance);
  17. }
  18. public static IQueryResult<R> SendQueryAsync<Q, R>(this ICanSendQuery self) where Q : IQuery<R>,new()
  19. {
  20. return _queryHandler.DoQueryAsync<Q, R>();
  21. }
  22. public static IQueryResult<R> SendQueryAsync<R>(this ICanSendQuery self, IQuery<R> queryInstance)
  23. {
  24. return _queryHandler.DoQueryAsync<R>(queryInstance);
  25. }
  26. }
  27. }