public Client() { this._proxy = XmlRpcProxyGen.Create <IUPCDatabase>(); }
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; }