##About##

5 min read

What I do

<div markdown="1" class="about-page blog-tags blog-tags-bg"> <ul> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/mvc4" class="tag-link"> <li class="badge">mvc4</li> </a> <a href="/posts/tagged/entity-framework" class="tag-link"> <li class="badge">entity-framework</li> </a> <a href="/posts/tagged/html" class="tag-link"> <li class="badge">html</li> </a> <a href="/posts/tagged/javascript" class="tag-link"> <li class="badge">javascript</li> </a> <a href="/posts/tagged/jquery" class="tag-link"> <li class="badge">jquery</li> </a> <a href="/posts/tagged/dependency-injection" class="tag-link"> <li class="badge">dependency-injection</li> </a> <a href="/posts/tagged/linq" class="tag-link"> <li class="badge">linq</li> </a> <a href="/posts/tagged/tdd" class="tag-link"> <li class="badge">tdd</li> </a> <a href="/posts/tagged/bdd" class="tag-link"> <li class="badge">bdd</li> </a> <a href="/posts/tagged/specflow" class="tag-link"> <li class="badge">specflow</li> </a> <a href="/posts/tagged/asp-net-web-api" class="tag-link"> <li class="badge">asp-net-web-api</li> </a> <a href="/posts/tagged/azure class="tag-link"> <li class="badge">azure</li> </a> <a href="/posts/tagged/approval-tests" class="tag-link"> <li class="badge">approval-tests</li> </a> <a href="/posts/tagged/team-city" class="tag-link"> <li class="badge">team-city</li> </a> <a href="/posts/tagged/continuous-integration" class="tag-link"> <li class="badge">continuous-integration</li> </a> <a href="/posts/tagged/nunit" class="tag-link"> <li class="badge">nunit</li> </a> <a href="/posts/tagged/mstest" class="tag-link"> <li class="badge">mstest</li> </a> <a href="/posts/tagged/git" class="tag-link"> <li class="badge">git</li> </a> <a href="/posts/tagged/subversion" class="tag-link"> <li class="badge">subversion</li> </a> <a href="/posts/tagged/tsql" class="tag-link"> <li class="badge">tsql</li> </a> <a href="/posts/tagged/signalr" class="tag-link"> <li class="badge">signalr</li> </a> <a href="/posts/tagged/attributerouting" class="tag-link"> <li class="badge">attributerouting</li> </a> </ul> </div>

###About me###

I'm an agile developer from Essex, working in London. I'm also a big believer in test driven development.

I am a keen advocate of test driven development and have experienced real world gains through practicing TDD.

###Certifications###

MCTS in Web Applications Development with Microsoft .NET Framework 4 2010

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/html" class="tag-link"> <li class="badge">html</li> </a> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/javascript" class="tag-link"> <li class="badge">javascript</li> </a> <a href="/posts/tagged/mvc" class="tag-link"> <li class="badge">asp-net-mvc</li> </a> </ul> </div>

70-480: Programming in HTML5 with JavaScript and CSS3 2013

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/html5" class="tag-link"> <li class="badge">html5</li> </a> <a href="/posts/tagged/javascript" class="tag-link"> <li class="badge">javascript</li> </a> <a href="/posts/tagged/css3" class="tag-link"> <li class="badge">css3</li> </a> <a href="/posts/tagged/javascript" class="tag-link"> <li class="badge">javascript</li> </a> <a href="/posts/tagged/jquery" class="tag-link"> <li class="badge">jquery</li> </a> </ul> </div>

70-486: Developing ASP.NET MVC 4 Web Applications 2013

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/mvc4" class="tag-link"> <li class="badge">mvc4</li> </a> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/entity-framework" class="tag-link"> <li class="badge">entity-framework</li> </a> <a href="/posts/tagged/asp-net-web-api" class="tag-link"> <li class="badge">web-api</li> </a> <a href="/posts/tagged/azure" class="tag-link"> <li class="badge">azure</li> </a> </ul> </div>

###Experience###

Senior Developer, Codehouse February 2013 - Current

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/mvc" class="tag-link"> <li class="badge">mvc</li> </a> <a href="/posts/tagged/mvc4" class="tag-link"> <li class="badge">mvc4</li> </a> <a href="/posts/tagged/webforms" class="tag-link"> <li class="badge">webforms</li> </a> <a href="/posts/tagged/tsql" class="tag-link"> <li class="badge">tsql</li> </a> <a href="/posts/tagged/sitecore" class="tag-link"> <li class="badge">sitecore</li> </a> <a href="/posts/tagged/jquery" class="tag-link"> <li class="badge">jquery</li> </a> <a href="/posts/tagged/nunit" class="tag-link"> <li class="badge">nunit</li> </a> <a href="/posts/tagged/mstest" class="tag-link"> <li class="badge">mstest</li> </a> <a href="/posts/tagged/unity" class="tag-link"> <li class="badge">unity</li> </a> <a href="/posts/tagged/autofac" class="tag-link"> <li class="badge">autofac</li> </a> <a href="/posts/tagged/dependency-injection" class="tag-link"> <li class="badge">dependency-injection</li> </a> <a href="/posts/tagged/linq" class="tag-link"> <li class="badge">linq</li> </a> <a href="/posts/tagged/moq" class="tag-link"> <li class="badge">moq</li> </a> <a href="/posts/tagged/tdd" class="tag-link"> <li class="badge">tdd</li> </a> </ul> </div>

Web Developer, Freshfields Bruckhaus Deringer LLP November 2012 - February 2013

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/mvc" class="tag-link"> <li class="badge">mvc</li> </a> <a href="/posts/tagged/mvc4" class="tag-link"> <li class="badge">mvc4</li> </a> <a href="/posts/tagged/entity-framework" class="tag-link"> <li class="badge">entity-framework (code first)</li> </a> <a href="/posts/tagged/tsql" class="tag-link"> <li class="badge">tsql</li> </a> <a href="/posts/tagged/nunit" class="tag-link"> <li class="badge">nunit</li> </a> <a href="/posts/tagged/jquery" class="tag-link"> <li class="badge">jquery</li> </a> <a href="/posts/tagged/tdd" class="tag-link"> <li class="badge">tdd</li> </a> <a href="/posts/tagged/svn" class="tag-link"> <li class="badge">svn</li> </a> <a href="/posts/tagged/dependency-injection" class="tag-link"> <li class="badge">dependency-injection</li> </a> <a href="/posts/tagged/linq" class="tag-link"> <li class="badge">linq</li> </a> <a href="/posts/tagged/moq" class="tag-link"> <li class="badge">moq</li> </a> </ul> </div>

Developer, Atlas Computer Systems May 2010 - November 2012

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/mvc" class="tag-link"> <li class="badge">mvc</li> </a> <a href="/posts/tagged/mvc4" class="tag-link"> <li class="badge">mvc4</li> </a> <a href="/posts/tagged/entity-framework" class="tag-link"> <li class="badge">entity-framework (code first)</li> </a> <a href="/posts/tagged/tsql" class="tag-link"> <li class="badge">tsql</li> </a> <a href="/posts/tagged/nunit" class="tag-link"> <li class="badge">nunit</li> </a> <a href="/posts/tagged/jquery" class="tag-link"> <li class="badge">jquery</li> </a> <a href="/posts/tagged/tdd" class="tag-link"> <li class="badge">tdd</li> </a> <a href="/posts/tagged/git" class="tag-link"> <li class="badge">git</li> </a> <a href="/posts/tagged/ninject" class="tag-link"> <li class="badge">ninject</li> </a> <a href="/posts/tagged/nunit" class="tag-link"> <li class="badge">nunit</li> </a> <a href="/posts/tagged/moq" class="tag-link"> <li class="badge">moq</li> </a> <a href="/posts/tagged/monodroid" class="tag-link"> <li class="badge">monodroid</li> </a> </ul> </div>

IT Analyst, Freshfields Bruckhaus Deringer 2007 - 2010

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/mvc" class="tag-link"> <li class="badge">mvc</li> </a> <a href="/posts/tagged/entity-framework" class="tag-link"> <li class="badge">entity-framework</li> </a> <a href="/posts/tagged/tsql" class="tag-link"> <li class="badge">tsql</li> </a> <a href="/posts/tagged/nunit" class="tag-link"> <li class="badge">nunit</li> </a> <a href="/posts/tagged/jquery" class="tag-link"> <li class="badge">jquery</li> </a> <a href="/posts/tagged/svn" class="tag-link"> <li class="badge">svn</li> </a> <a href="/posts/tagged/sprint-net" class="tag-link"> <li class="badge">sprint-net</li> </a> </ul> </div>

IT Analyst, Aon Consulting 2004 - 2007

<div class="blog-tags about-page"> <ul> <a href="/posts/tagged/c%23" class="tag-link"> <li class="badge">c#</li> </a> <a href="/posts/tagged/vb-net" class="tag-link"> <li class="badge">vb-net</li> </a> <a href="/posts/tagged/tsql" class="tag-link"> <li class="badge">tsql</li> </a> <a href="/posts/tagged/tfs" class="tag-link"> <li class="badge">tfs</li> </a> <a href="/posts/tagged/webforms" class="tag-link"> <li class="badge">webforms</li> </a> </ul> </div>

Comments
Partha says:March 23, 2016

Hi John -

I am completely blown away with your search extension. I can't wait to try my hands on it. The only question thing that's preventing me to start trying is because of the below issue :

I am trying to implement multiple search in a grid where I have numeric and date fields which will use either equal, greater than, less than, greater than or between operators based on user inputs.

To explain more let's say there are two columns: A (Date) B (Numeric). The user at one point can send equal to for A and between for B and vice versa. I am unable to figure out how do i handle such scenario. Could you help me in this? I appreciate what you are contributing to our community. Awesome Job

Thanks, Partha

John says:April 19, 2016

Hi Partha,

Apologies it has taken this long to get back to you. You can indeed address the issue you described above by combining search actions. Your final code might look something like

var results = data.Search(x =&gt; x.ColumnA).EqualTo(inputA)
                  .Search(x =&gt; x.ColumnB).Between(inputB, inputC);
                 

From here you can apply some custom logic around what combination of search you build based on the user input.
For more information please take a look at the SearchExtensions help pages

Regards
John

Ted Campbell says:February 11, 2017

First, thanks for your comment system post.

I read it with great interest. I would like to study the Blog project of which the comment system is a part. Is there url where I can find your MVC Blog engine?

Thanks again and all the best.

Ted

John says:April 4, 2017

Hi @Ted,

Apologies for not getting back to you sooner. Unfortunately the blog engine I have built is currently in a private repository and not something I currently plan to make public.

Regards John

mj says:August 29, 2017

<script>alert("jnye")</script>

John says:September 11, 2017

Nice try MJ...

Semih says:December 29, 2017

still dont want to share your blog source :) ?