title: ASP.NET MVC Search
body: <p>Hi I'm building a very simple search system using ASP.NET MVC. I had it originally work by doing all the logic inside the controller but I am now moving the code piece by piece into a repository. Can anyone help me do this. Thanks.</p>
  
  <p>Here is the original Action Result that was in the controller.</p>
  
  <pre><code>public ActionResult Index(String query)
          {
              var ArticleQuery = from m in _db.ArticleSet
                                 select m;
  
              if (!string.IsNullOrEmpty(query))
              {
                  ArticleQuery = ArticleQuery.Where(m =&gt; m.headline.Contains(query) orderby m.posted descending);
              }
  
              return View(ArticleQuery.ToList());
          }
  </code></pre>
  
  <p>As you can see, the Index method is used for both the initial list of articles and also for the search results (they use the same view).</p>
  
  <p>In the new system the code in the controller is as follows:</p>
  
  <pre><code>public ActionResult Index()
      {
          return View(_repository.ListAll());
      }
  </code></pre>
  
  <p>The Repository has the following code:</p>
  
  <pre><code>public IList&lt;Article&gt; ListAll()
  {
      var ArticleQuery = (from m in _db.ArticleSet
  
                          orderby m.posted descending select m);
  
      return ArticleQuery.ToList();
  }
  </code></pre>
  
  <p>and the Interface has the following code:</p>
  
  <pre><code>public interface INewsRepository
  {
      IList&lt;Article&gt; ListAll();
  }
  </code></pre>
  
  <p>So what I need to do is now add in the search query stuff into the repository/controller methods using this new way. Can anyone help? Thanks.</p>
  
  <p><strong>EDIT: The INewsRespository file as it looks now:</strong></p>
  
  <pre><code>namespace MySuperAwesomeApp.Models
  {
      public interface INewsRepository
      {
          IList&lt;Article&gt; ListAll();
  
          //Article Details(int id);
  
          //Article Create([Bind(Exclude = "Id")]Article articleToCreate);
      }
  }
  </code></pre>