public List<DataContractProduct> getProducts(string search, string search_by, int page, int byPage)
        {
            //SERVICE URI
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("getProducts"));

            builder.Append("pageIndex=");
            builder.Append((page - 1) * byPage);
            builder.Append("&pageSize=");
            builder.Append(byPage);

            if (!search_by.Equals(""))
            {
                builder.Append("&");
                builder.Append(search_by);
                builder.Append("=");
                builder.Append(search);
            }

            HandlerRequest request = new HandlerRequest();
            String response = request.doRequest(builder.ToString(), "GET");

            try
            {
                List<DataContractProduct> contract = JsonConvert.DeserializeObject<List<DataContractProduct>>((response)) as List<DataContractProduct>;
                return contract;
            }
            catch (JsonSerializationException exception)
            {
                throw (exception);
                // return new Campaign();
            }
        }
        public string proccessOrder(List<ProductCart> products)
        {
            String xml = HandlerXML.buildMessage(products);

            HandlerRequest request = new HandlerRequest();
            string order_id = request.doMessage(xml, HandlerResource.getServiceAgentLocation("queueProcessingOrder"), HandlerResource.getServiceAgentLocation("queueProcessingOrderResponse"));
            return order_id;
        }
        public bool registerCustomer(string body )
        {
            HandlerRequest request = new HandlerRequest();
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("register"));

            String response = request.doRequest(builder.ToString(), HandlerRequest.POST, HandlerRequest.XML, body);

            return DataContractRegister.getResponse(response);
        }
        public XmlDocument loginUser(String body)
        {
            HandlerRequest request = new HandlerRequest();
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("login"));

            String response =  request.doRequest(builder.ToString(), HandlerRequest.POST, HandlerRequest.XML, body);

            //This service return XML
            XmlDocument xml = new XmlDocument();
            if (!response.Equals("Error"))
                xml.LoadXml(response); // suppose that myXmlString contains "<Names>...</Names>"
            else
                return null;

            return xml;
        }
        public List<DataContractItemOrder> getOrder(int order)
        {
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("getOrder"));
            builder.Append(order);

            HandlerRequest request = new HandlerRequest();
            String response = request.doRequest(builder.ToString(), "GET");

            try
            {
                List<DataContractItemOrder> contract = JsonConvert.DeserializeObject<List<DataContractItemOrder>>((response)) as List<DataContractItemOrder>;
                return contract;
            }
            catch (JsonSerializationException exception)
            {
                throw (exception);
            }
        }
        public List<DataContractCampaigns> getCampigns()
        {
            //SERVICE URI
            String url = HandlerResource.getServiceAgentLocation("getCampigns");

            HandlerRequest request = new HandlerRequest();
            String response = request.doRequest(url, "GET");

            try
            {
                List<DataContractCampaigns> contract = JsonConvert.DeserializeObject<List<DataContractCampaigns>>((response)) as List<DataContractCampaigns>;
                return contract;
            }
            catch (JsonSerializationException exception)
            {
                throw (exception);
                // return new Campaign();
            }
        }
        public DataContractProduct getProduct(int id)
        {
            //SERVICE URI
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("getProduct"));
            builder.Append(id);

            HandlerRequest request = new HandlerRequest();
            String response = request.doRequest(builder.ToString(), "GET");

            try
            {
                DataContractProduct contract = JsonConvert.DeserializeObject<DataContractProduct>((response)) as DataContractProduct;
                return contract;
            }
            catch (JsonSerializationException exception)
            {
                throw (exception);
                // return new Campaign();
            }
        }
        public List<DataContractOrder> getOrdersCustomer(Customer customer)
        {
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("getOrdersCustomer"));
            builder.Append("typeDocument=");
            builder.Append(customer.Document_type);
            builder.Append("&");
            builder.Append("numberDocument=");
            builder.Append(customer.UserID);

            HandlerRequest request = new HandlerRequest();
            String response = request.doRequest(builder.ToString(), "GET");

            try
            {
                List<DataContractOrder> contract = JsonConvert.DeserializeObject<List<DataContractOrder>>((response)) as List<DataContractOrder>;
                return contract;
            }
            catch (JsonSerializationException exception)
            {
                throw (exception);
                // return new Campaign();
            }
        }
        public List<DataContractTopFive> getTopFive(int product)
        {
            StringBuilder builder = new StringBuilder(HandlerResource.getServiceAgentLocation("getTopFive"));
            builder.Append(product);
            HandlerRequest request = new HandlerRequest();
            String response = request.doRequest(builder.ToString(), "GET");

            try
            {
                List<DataContractTopFive> contract = JsonConvert.DeserializeObject<List<DataContractTopFive>>((response)) as List<DataContractTopFive>;
                return contract;
            }
            catch (JsonSerializationException exception)
            {
                throw (exception);
                // return new Campaign();
            }
        }
 public void cancelOrder(String cancel)
 {
     HandlerRequest request = new HandlerRequest();
     request.doMessage(cancel, HandlerResource.getServiceAgentLocation("queueCancelingOrder"), "");
 }