Advertisement
Guest User

Untitled

a guest
Oct 27th, 2010
517
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.23 KB | None | 0 0
  1. class SomeForm : Form, ISomeFormView
  2. {
  3.     public OnAction()
  4.     {
  5.         Presenter.DoSearch();
  6.     }
  7.  
  8.     public SearchModel GetModelForSearch()
  9.     {
  10.         var model = new SearchModel
  11.                 {
  12.                     SearchText1 = txtTextBox1.Text,
  13.                     IsSuperSearch = rbIsSuper.Value,
  14.                     ...
  15.                 };
  16.     }
  17.     //...
  18. }
  19.  
  20. class SomeFormPresenter
  21. {
  22.     //...
  23.     public class DoSearch()
  24.     {
  25.         var model = view.GetModelForSearch();
  26.         var query = IoC.Resolve<SearchQuery>();
  27.         var result = query.Execute(model);
  28.         view.ShowResult(result);
  29.     }
  30. }
  31.  
  32. class SearchQuery
  33. {
  34.     private readonly IDataContext dataContext;
  35.  
  36.     public SearchQuery(IDataContext dataContext)
  37.     {
  38.         this.dataContext = dataContext;
  39.     }
  40.  
  41.     public IEnumerable<Result> Execute(SearchModel model)
  42.     {
  43.         IQueryable<Result> query = null;
  44.  
  45.         //...
  46.  
  47.         if (string.IsNullOrEmpty(model.SearchText1) == false)
  48.         {
  49.             query = query.Where(x=>x.Text == model.SearchText1);
  50.         }
  51.  
  52.         // дальше наращиваем query в зависимости от условий
  53.        
  54.         // это обычный вызов лямбда выражения, который производит выборку из БД. В твоем случае IDataContext будет реализовывать EF
  55.         return dataContext.Query(query);
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement