public IServiceResult <IProduct> GetProduct(string productName)
        {
            HttpCaller caller = new HttpCaller();
            Task <HttpResponseMessage> mess    = caller.GetResponse(_configurationRepository.GetUrl("ProductEndpoint"));
            HttpResponseMessage        message = mess.Result;
            IProduct product = JsonConvert.DeserializeObject <Product>(message.Content.ReadAsStringAsync().Result);
            IServiceResult <IProduct> result = new GenericServiceResult <IProduct>(product, message.IsSuccessStatusCode, message.StatusCode.ToString());

            return(result);
        }
        public IServiceResult <IEnumerable <IProduct> > PlaceOrder(IEnumerable <IProduct> products)
        {
            HttpCaller caller = new HttpCaller();
            Task <HttpResponseMessage> mess    = caller.GetResponse(_configurationRepository.GetUrl("OrderEndpoint"));
            HttpResponseMessage        message = mess.Result;

            if (message.IsSuccessStatusCode)
            {
                return(new GenericServiceResult <IEnumerable <IProduct> >(products, true, "All good."));
            }
            return(new GenericServiceResult <IEnumerable <IProduct> >(null, false, "Error."));
        }
        public IServiceResult <ICustomerEntity> GetCustomer(string customerName)
        {
            HttpCaller caller = new HttpCaller();
            Task <HttpResponseMessage> mess = caller.GetResponse(_configurationRepository.GetUrl("CustomerEndpoint") + customerName);

            mess.Start();
            HttpResponseMessage message             = mess.Result;
            Customer            customer            = JsonConvert.DeserializeObject <Customer>(message.Content.ReadAsStringAsync().Result);
            IServiceResult <ICustomerEntity> result = new GenericServiceResult <ICustomerEntity>(customer, message.IsSuccessStatusCode, message.StatusCode.ToString());

            return(result);
        }