Exemplo n.º 1
0
 public Client()
 {
     this._proxy = XmlRpcProxyGen.Create <IUPCDatabase>();
 }
Exemplo n.º 2
0
        public Models.ProductInfo getProductUsingAPI(string UPC)
        {
            String UPCAPIKey = appSettingsService.GetUPCAPIKey();
            //HttpClient httpUPCClient = new HttpClient();
            //HttpResponseMessage UPC_Response = httpUPCClient.GetAsync("http://api.upcdatabase.org/json/" + UPCAPIKey + "/" + UPC).Result;
            //if (UPC_Response.IsSuccessStatusCode)
            //{

            //    string upcResult = UPC_Response.Content.ReadAsStringAsync().Result.ToString();
            //    // parsing Data out of JSON result from google places API
            //    JObject json = Newtonsoft.Json.Linq.JObject.Parse(upcResult);
            //    string productName = json["itemname"].ToString();
            //    if (productName == string.Empty)
            //    {
            //         productName = json["description"].ToString();
            //    }
            //    return productName;
            //}

            _proxy = XmlRpcProxyGen.Create<IUPCDatabase>();
            XmlRpcStruct request = new XmlRpcStruct();
            XmlRpcStruct response = new XmlRpcStruct();

            Models.ProductInfo pi = new Models.ProductInfo();

            request.Add("rpc_key", UPCAPIKey);
            request.Add("upc", UPC);

            response = _proxy.Lookup(request);
            try
            {

                if (response["status"].ToString() != "fail")
                {
                    string size = response["size"].ToString();

                    pi.ProductName = response["description"].ToString();

                    if (size.Trim() != "")
                    {
                        pi.Volume = (double)Convert.ToDecimal(Regex.Replace(size, @"[^0-9\.]", string.Empty));
                        pi.VolumeUnit = size.Replace(pi.Volume.ToString(), string.Empty).Trim();
                    }
                    else
                    {
                        pi.Volume = -1;
                        pi.VolumeUnit = "N/A";
                    }

                    pi.UPC = UPC;
                    pi.ProductTypeId = 4;
                    pi.IsFoundInDatabase = 1;

                    Product pr = new Product();
                    pr.Name = pi.ProductName;
                    pr.UPC = UPC;
                    pr.Volume = (decimal)pi.Volume;
                    pr.VolumeUnit = pi.VolumeUnit;
                    pr.TypeDetailsId = 4;
                    pi.ProductId = repository.addProduct(pr);
                    pi.ContainerType = "-1";
                    pi.ContainerQty = -1;

                }
                else
                {
                    pi.IsFoundInDatabase = 2;
                }
            }
            catch (Exception ex)
            {
                pi.IsFoundInDatabase = 2;
            }
            return pi;
        }