![](./scrs/12.jpg) ## ApiDataProvider.cs ``` using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; namespace wpf_connection3.model { public class ApiDataProvider : DBDataProvider { private static string baseUrl = "http://localhost:5061"; public override IEnumerable getProduct(int pageNum) { var client = new HttpClient(); var body = client.GetStringAsync($"{baseUrl}/product?pageNum={pageNum}").Result; return JsonConvert.DeserializeObject(body); } public override void setOrder(string condition) { var client = new HttpClient(); var jsonString = JsonConvert.SerializeObject(condition); var json = new StringContent(jsonString, Encoding.UTF8, "aplication/json"); var body = client.PutAsync($"{baseUrl}/setOrder", json); } public override List getProductTypes() { var client = new HttpClient(); var body = client.GetStringAsync($"{baseUrl}/productType").Result; return JsonConvert.DeserializeObject>(body); } public override void setMinCostForAgent(decimal minCost, int[] ids) { var client = new HttpClient(); var jsonString = JsonConvert.SerializeObject(ids); var json = new StringContent(jsonString, Encoding.UTF8, "application/json"); var body = client.PutAsync($"{baseUrl}/minCostForAgent/{minCost}", json); } public override int getArticleCheck(string article, int id) { var client = new HttpClient(); var body = client.GetStringAsync($"{baseUrl}/articleCheck/{article}/{id}").Result; return JsonConvert.DeserializeObject(body); } public override void saveProduct(Product product) { var client = new HttpClient(); var jsonString = JsonConvert.SerializeObject(product); var json = new StringContent(jsonString, Encoding.UTF8, "application/json"); if (product.ID != 0) { var body = client.PutAsync($"{baseUrl}/product", json); } else { var body = client.PostAsync($"{baseUrl}/product", json); } } public override int saleCount(int ID) { var client = new HttpClient(); var body = client.GetStringAsync($"{baseUrl}/saleCount/{ID}").Result; return JsonConvert.DeserializeObject(body); } public override void removeProductCostHistory(int ID) { var client = new HttpClient(); var body = client.DeleteAsync($"{baseUrl}/removeProductCostHistory/{ID}"); } public override List getProductMaterials(int ID) { var client = new HttpClient(); var body = client.GetStringAsync($"{baseUrl}/productMaterial/{ID}").Result; return JsonConvert.DeserializeObject>(body); } public override void deleteProductMaterial(int productId, int materialId) { var client = new HttpClient(); var body = client.DeleteAsync($"{baseUrl}/productMaterial/{productId}/{materialId}"); } public override List getMaterials() { var client = new HttpClient(); var body = client.GetStringAsync($"{baseUrl}/material").Result; return JsonConvert.DeserializeObject>(body); } public override void addProductMaterial(ProductMaterial material) { var client = new HttpClient(); var jsonString = JsonConvert.SerializeObject(material); var json = new StringContent(jsonString, Encoding.UTF8, "application/json"); var body = client.PostAsync($"{baseUrl}/productMaterial", json).Result; } } } ```