Exemplo n.º 1
0
        public IHttpActionResult EvaluateDynamicContent(string storeId, string placeHolder)
        {
            var context = new coreModel.DynamicContent.DynamicContentEvaluationContext()
            {
                StoreId   = storeId,
                PlaceName = placeHolder
            };

            var retVal = _dynamicContentEvaluator.EvaluateItems(context).Select(x => x.ToWebModel()).ToArray();

            return(Ok(retVal));
        }
        public IHttpActionResult GetDynamicContent(string store,
                                                   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(store, 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);
        }
Exemplo n.º 3
0
        public IHttpActionResult EvaluateDynamicContent([ModelBinder(typeof(DynamicContentEvalContextBinder))] coreModel.DynamicContent.DynamicContentEvaluationContext evalContext)
        {
            var retVal = _dynamicContentEvaluator.EvaluateItems(evalContext).Select(x => x.ToWebModel()).ToArray();

            return(Ok(retVal));
        }