PageRenderTime 42ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Atlassian.Jira/Linq/JiraQueryable.cs

https://bitbucket.org/seansparkman/atlassian.net-sdk
C# | 61 lines | 53 code | 8 blank | 0 comment | 0 complexity | 2389cfa656473473c84db8a21f562e99 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Linq.Expressions;
  7. namespace Atlassian.Jira.Linq
  8. {
  9. public class JiraQueryable<T>: IOrderedQueryable<T>, IQueryable<T>
  10. {
  11. private readonly JiraQueryProvider _provider;
  12. private readonly Expression _expression;
  13. public JiraQueryable(JiraQueryProvider provider)
  14. {
  15. this._provider = provider;
  16. this._expression = Expression.Constant(this);
  17. }
  18. public JiraQueryable(JiraQueryProvider provider, Expression expression)
  19. {
  20. _provider = provider;
  21. _expression = expression;
  22. }
  23. public IEnumerator<T> GetEnumerator()
  24. {
  25. return ((IEnumerable<T>)_provider.Execute(this.Expression)).GetEnumerator();
  26. }
  27. IEnumerator IEnumerable.GetEnumerator()
  28. {
  29. return ((IEnumerable)_provider.Execute(this.Expression)).GetEnumerator();
  30. }
  31. public Type ElementType
  32. {
  33. get
  34. {
  35. return typeof(T);
  36. }
  37. }
  38. public Expression Expression
  39. {
  40. get
  41. {
  42. return _expression;
  43. }
  44. }
  45. public IQueryProvider Provider
  46. {
  47. get
  48. {
  49. return _provider;
  50. }
  51. }
  52. }
  53. }