private static BrokerMessage process(ServicesRegistery servicesRegistery, BrokerMessage request)
 {
     try
     {
         return servicesRegistery.process(request);
     }
     catch (Exception e)
     {
         log.error(e);
         return BrokerMessage.buildFault(request, e);
     }
 }
        internal static HttpResponse processPostRequest(ServicesRegistery servicesRegistery, HttpRequest request)
        {

            if (HttpMethod.POST != request.Method)
            {
                log.errorFormat("unsupported method; request.Method = '{0}'", request.Method);
                throw HttpErrorHelper.badRequest400FromOriginator(typeof(ServicesRequestHandler));
            }


            Entity entity = request.Entity;
            if (_MAXIMUM_REQUEST_ENTITY_LENGTH < entity.getContentLength())
            {
                log.errorFormat("_MAXIMUM_REQUEST_ENTITY_LENGTH < entity.getContentLength(); _MAXIMUM_REQUEST_ENTITY_LENGTH = {0}; entity.getContentLength() = {1}", _MAXIMUM_REQUEST_ENTITY_LENGTH, entity.getContentLength());
                throw HttpErrorHelper.requestEntityTooLarge413FromOriginator(typeof(ServicesRequestHandler));
            }

            Data data = GetData(entity);

            BrokerMessage call = Serializer.deserialize(data);
            BrokerMessage response = process(servicesRegistery, call);

            HttpResponse answer;
            {
                if (BrokerMessageType.ONEWAY == call.getMessageType())
                {
                    answer = new HttpResponse(HttpStatus.NO_CONTENT_204);
                }
                else
                {
                    Data responseData = Serializer.Serialize(response);
                    Entity responseBody = new DataEntity(responseData);
                    answer = new HttpResponse(HttpStatus.OK_200, responseBody);
                }
            }

            return answer;


        }
 public CorsServicesRequestHandler(ServicesRegistery servicesRegistery)
 {
     _servicesRegistery = servicesRegistery;
 }
 public CorsServicesRequestHandler()
 {
     _servicesRegistery = new ServicesRegistery();
 }
 public void setNext(ServicesRegistery next)
 {
     _next = next;
 }