Exemple #1
0
        public HttpResponseMessage GetInventory([FromBody] ApiRequest request)
        {
            if (request == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Request was null"));
            }

            // check authentication
            var auth = ControllerContext.Request.Headers.Authorization;

            // simple demonstration of user rights checking.
            if (auth.Scheme != "ABCD")
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid Credentials"));
            }

            ApiResponse apiResponse = new ApiResponse();

            // read data from a database
            apiResponse.Records = DummyDataRetriever.ReadData(request.ProductId);

            // convert the data into json
            var jsonData = JsonConvert.SerializeObject(apiResponse);

            var resp = new HttpResponseMessage();

            resp.Content = new StringContent(jsonData, Encoding.UTF8, "application/json");
            return(resp);
        }
Exemple #2
0
        public HttpResponseMessage GetInventory([FromBody] ApiRequest request)
        {
            if (request == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Request was null"));
            }

            // check authentication
            var auth = ControllerContext.Request.Headers.Authorization;

            // simple demonstration of user rights checking.
            if (auth.Scheme != "ABCD")
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid Credentials"));
            }

            ApiResponse apiResponse = new ApiResponse();

            // read data from a database
            apiResponse.Records = DummyDataRetriever.ReadData(request.ProductId);

            var encoding = ControllerContext.Request.Headers.Accept.ToString();

            if (encoding.IndexOf("json", StringComparison.OrdinalIgnoreCase) > -1)
            {
                // convert the data into json
                var jsonData = JsonConvert.SerializeObject(apiResponse);

                var resp = new HttpResponseMessage();
                resp.Content = new StringContent(jsonData, Encoding.UTF8, "application/json");
                return(resp);
            }
            else if (encoding.IndexOf("xml", StringComparison.OrdinalIgnoreCase) > -1)
            {
                // convert the data into xml
                var xmlSerializer = new XmlSerializer(typeof(ApiResponse));

                using (StringWriter writer = new StringWriter())
                {
                    xmlSerializer.Serialize(writer, apiResponse);

                    var resp = new HttpResponseMessage();
                    resp.Content = new StringContent(writer.ToString(), Encoding.UTF8, "application/xml");
                    return(resp);
                }
            }
            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Only JSON and XML formats accepted"));
            }
        }