public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
        {
            if (bindingContext.ModelType != typeof(DynamicContentEvaluationContext))
            {
                return false;
            }

            var qs = HttpUtility.ParseQueryString(actionContext.Request.RequestUri.Query as string);

            var result = new DynamicContentEvaluationContext();

            result.StoreId = qs.Get("storeId") ?? qs.Get("evalContext.storeId");
            result.PlaceName= qs.Get("placeName") ?? qs.Get("evalContext.placeName");
            result.Tags = qs.GetValues("tags");
            if (result.Tags == null)
            {
                var tags = qs.Get("evalContext.tags");
                if (!String.IsNullOrEmpty(tags))
                {
                    result.Tags = tags.Split(',');
                }
            }

            var toDate = qs.Get("toDate") ?? qs.Get("evalContext.toDate");
            if (toDate != null)
            {
                result.ToDate = Convert.ToDateTime(toDate, CultureInfo.InvariantCulture);
            }

            bindingContext.Model = result;
            return true;
        }
	    public IHttpActionResult GetDynamicContent(
	        string[] placeHolders,
	        [FromUri] string[] tags,
	        string language = "en-us")
	    {
	        var tagSet = new TagSet();

	        if (tags != null)
	        {
	            foreach (var tagArray in tags.Select(tag => tag.Split(new[] { ':' })))
	            {
	                tagSet.Add(tagArray[0], tagArray[1]);
	            }
	        }

	        // TODO: add tags ?tags={users:[id1,id2]}
	        // TODO: add caching

	        //Mutiple placeholders can be requested
	        var groups = new List<webModel.DynamicContentItemGroup>();

	        foreach (var holder in placeHolders)
	        {
	            var group = new webModel.DynamicContentItemGroup(holder);
	            var ctx = new DynamicContentEvaluationContext(holder, DateTime.Now, tagSet);

	            var results = _contentEvaluator.EvaluateItems(ctx);

	            if (results != null && results.Any())
	            {
	                group.Items.AddRange(results.Select(x => x.ToWebModel()));
	                groups.Add(group);
	            }
	        }

	        var retVal = new webModel.ResponseCollection<webModel.DynamicContentItemGroup>
	                     {
	                         Items = groups,
	                         TotalCount = groups.Count()
	                     };


	        return this.Ok(retVal);
	        //return this.StatusCode(HttpStatusCode.NoContent);
	    }