Ejemplo n.º 1
0
        private void ExecuteQuery(HttpContext context)
        {
            Console.WriteLine(">>>> Executing Query: " + context.Request.Path.Value);

            if (context.Request.Path.StartsWithSegments("/products"))
            {
                Guid?brand = null;
                Guid temp;
                if (Guid.TryParse(context.Request.Query["brand"], out temp))
                {
                    brand = temp;
                }

                ProductsQry qry = new ProductsQry()
                {
                    Name     = context.Request.Query["name"].FirstOrDefault() ?? null,
                    Category = context.Request.Query["category"].FirstOrDefault() ?? null,
                    Brand    = brand
                };

                var data = _handler.Handle(qry);

                context.Response.StatusCode = 200;
                context.Response.WriteAsync(JsonConvert.SerializeObject(data));
            }
            else if (context.Request.Path.StartsWithSegments("/product"))
            {
                Guid temp;
                if (Guid.TryParse(context.Request.Query["id"], out temp))
                {
                    ProductQry qry = new ProductQry()
                    {
                        Id = temp
                    };
                    var data = _handler.Handle(qry);
                    context.Response.StatusCode = 200;
                    context.Response.WriteAsync(JsonConvert.SerializeObject(data));
                }
                else
                {
                    context.Response.StatusCode = 404;
                }
            }
            else if (context.Request.Path.StartsWithSegments("/brands"))
            {
                var data = _handler.Handle(new BrandQry());
                context.Response.StatusCode = 200;
                context.Response.WriteAsync(JsonConvert.SerializeObject(data));
            }
            else if (context.Request.Path.StartsWithSegments("/categories"))
            {
                var data = _handler.Handle(new CategoryQry());
                context.Response.StatusCode = 200;
                context.Response.WriteAsync(JsonConvert.SerializeObject(data));
            }
        }
Ejemplo n.º 2
0
        public object Handle(ProductsQry query)
        {
            var data = _repository.GetProducts(query.Name, query.Brand, query.Category);

            return(data);
        }