DbUtil.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. using Fuel01.Models;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Xml.Linq;
  11. namespace Fuel01
  12. {
  13. public static class DbUtil
  14. {
  15. public static T LoadFromJson<T>(string filename, DataSet ds) where T : class
  16. {
  17. if (!File.Exists(filename))
  18. {
  19. return null;
  20. }
  21. ds.Clear();
  22. var datas = File.ReadAllText(filename);
  23. var tmData = JsonConvert.DeserializeObject<DataSet1.tb_epreuveDataTable>(datas);
  24. return tmData as T;
  25. }
  26. public static T LoadFromJson<T> (string filename, T ds)
  27. {
  28. if (!File.Exists(filename))
  29. {
  30. return default(T);
  31. }
  32. var datas = File.ReadAllText(filename);
  33. var tmData = JsonConvert.DeserializeObject<T>(datas);
  34. return tmData;
  35. }
  36. public static DataSet1.tb_prestaDataTable LoadPrestaFromJson(string filename,List<Produit> lprod)
  37. {
  38. if (!File.Exists(filename))
  39. {
  40. return default;
  41. }
  42. var datas = File.ReadAllText(filename);
  43. var tmData = JsonConvert.DeserializeObject<List<PrestaSta>>(datas);
  44. var prestas = new List<Presta>();
  45. foreach (var data in tmData)
  46. {
  47. if (data.autres != null)
  48. {
  49. foreach (var autre in data.autres)
  50. {
  51. var prod= lprod.FirstOrDefault(x=>x.lib_prod.Equals(autre.lib_prod))?.key_prod;
  52. if (prod != null)
  53. {
  54. var presta = new Presta();
  55. presta.sta_pr = data.sta_pr;
  56. presta.prod_pr = prod;
  57. presta.kind_pr = "Service";
  58. presta.unite_pr = autre.unite_pr;
  59. presta.pu_pr = double.Parse(autre.pu_pr);
  60. presta.tva_pr = double.Parse(autre.tva_pr);
  61. presta.ttc_pr = double.Parse(autre.ttc_pr);
  62. prestas.Add(presta);
  63. }
  64. }
  65. }
  66. if (data.carburants != null)
  67. {
  68. foreach (var autre in data.carburants)
  69. {
  70. var prod = lprod.FirstOrDefault(x => x.lib_prod.Equals(autre.lib_prod))?.key_prod;
  71. if (prod != null)
  72. {
  73. var presta = new Presta();
  74. presta.sta_pr = data.sta_pr;
  75. presta.prod_pr = prod;
  76. presta.kind_pr = "Carburant";
  77. presta.unite_pr = autre.unite_pr;
  78. presta.pu_pr = double.Parse(autre.pu_pr);
  79. presta.tva_pr = double.Parse(autre.tva_pr);
  80. presta.ttc_pr = double.Parse(autre.ttc_pr);
  81. prestas.Add(presta);
  82. }
  83. }
  84. }
  85. }
  86. var json = JsonConvert.SerializeObject(prestas, Formatting.Indented);
  87. var returnData = JsonConvert.DeserializeObject<DataSet1.tb_prestaDataTable>(json);
  88. return returnData;
  89. }
  90. public static T LoadFromJson<T>(string filename)
  91. {
  92. if (!File.Exists(filename))
  93. {
  94. return default(T);
  95. }
  96. var datas = File.ReadAllText(filename);
  97. var tmData = JsonConvert.DeserializeObject<T>(datas);
  98. return tmData;
  99. }
  100. public static bool SaveToJson(object o,string filename)
  101. {
  102. try
  103. {
  104. var result = JsonConvert.SerializeObject(o, Formatting.Indented);
  105. File.WriteAllText(filename, result);
  106. return true;
  107. }
  108. catch
  109. {
  110. return false;
  111. }
  112. }
  113. public static bool SaveToJson<T>(string filename, T ds)
  114. {
  115. try
  116. {
  117. var result = JsonConvert.SerializeObject(ds, Formatting.Indented);
  118. File.WriteAllText(filename, result);
  119. return true;
  120. }
  121. catch
  122. {
  123. return false;
  124. }
  125. }
  126. public static List<Produit> GetProduits()
  127. {
  128. XDocument xRoot = XDocument.Load(Program.folder + @"\param\produit.xml");
  129. var data = from item in xRoot.Descendants("tb_prod")
  130. orderby item.Element("type_prod").Value, item.Element("lib_prod").Value
  131. select new Produit()
  132. {
  133. key_prod = item.Element("key_prod").Value,
  134. lib_prod = item.Element("lib_prod").Value,
  135. type_prod = item.Element("type_prod").Value
  136. };
  137. return data.ToList();
  138. }
  139. }
  140. }