You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
7.6 KiB

  1. using System.Collections.Generic;
  2. using System.Data;
  3. using Swift.DAL.BL.System.Utility.Helper;
  4. using Swift.DAL.SwiftDAL;
  5. namespace Swift.DAL.BL.System.Utility
  6. {
  7. public class DataImportDao: SwiftDao
  8. {
  9. XmlGenerator xmlUtil = new XmlGenerator();
  10. public DataSet ImportPaidTransaction(string xml, string user)
  11. {
  12. var sql = @"EXEC proc_ImportFile @flag='pt', @user=" + FilterString(user) +
  13. @", @xml='" + xml + "'";
  14. var ds = ExecuteDataset(sql);
  15. if (ds == null || ds.Tables.Count == 0)
  16. return null;
  17. return ds;
  18. }
  19. public DataSet LoadIncorrectDataFromFile(string xml, string user)
  20. {
  21. var sql = @"EXEC proc_ImportFile @flag='s', @user=" + FilterString(user) +
  22. @", @xml='" + xml + "'";
  23. var ds = ExecuteDataset(sql);
  24. if (ds == null || ds.Tables.Count == 0)
  25. return null;
  26. return ds;
  27. }
  28. public DbResult ImportPaidTransactionAdmin(string xml, string xmlErrorDataId, string user, string pAgent, string fileFormatType)
  29. {
  30. var sql = "EXEC proc_importFileApiAdmin @flag = 'ptApi'";
  31. sql += ", @user = " + FilterString(user);
  32. sql += ", @xml = " + FilterString(xml);
  33. sql += ", @xmlErrorDataId = " + FilterString(xmlErrorDataId);
  34. sql += ", @pAgent = " + FilterString(pAgent);
  35. sql += ", @fileFormatType = " + FilterString(fileFormatType);
  36. return ParseDbResult(sql);
  37. }
  38. public DataRow ImportPaidTransactionApi(string xml, string xmlErrorDataId, string user, string pBranch, string pBranchName, string pAgent, string pAgentName, string pSuperAgent, string pSuperAgentName, string mapCode, string parentMapCode, string pCountryId)
  39. {
  40. var sql = "EXEC proc_importFileApi @flag = 'ptApi'";
  41. sql += ", @user = " + FilterString(user);
  42. sql += ", @xml = " + FilterString(xml);
  43. sql += ", @xmlErrorDataId = " + FilterString(xmlErrorDataId);
  44. sql += ", @pBranch = " + FilterString(pBranch);
  45. sql += ", @pBranchName = " + FilterString(pBranchName);
  46. sql += ", @pAgent = " + FilterString(pAgent);
  47. sql += ", @pAgentName = " + FilterString(pAgentName);
  48. sql += ", @pSuperAgent = " + FilterString(pSuperAgent);
  49. sql += ", @pSuperAgentName = " + FilterString(pSuperAgentName);
  50. sql += ", @mapCode = " + FilterString(mapCode);
  51. sql += ", @parentMapCode = " + FilterString(parentMapCode);
  52. sql += ", @pCountryId = " + FilterString(pCountryId);
  53. var ds = ExecuteDataset(sql);
  54. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  55. return null;
  56. return ds.Tables[0].Rows[0];
  57. }
  58. public DataSet ImportPaidTransactionLocal(string xml, string xmlErrorDataId, string user, string pBranch, string pBranchName, string pAgent, string pAgentName, string pSuperAgent, string pSuperAgentName, string uploadLogId)
  59. {
  60. var sql = "EXEC proc_importFileApi @flag = 'pt'";
  61. sql += ", @user = " + FilterString(user);
  62. sql += ", @xml = " + FilterString(xml);
  63. sql += ", @xmlErrorDataId = " + FilterString(xmlErrorDataId);
  64. sql += ", @pBranch = " + FilterString(pBranch);
  65. sql += ", @pBranchName = " + FilterString(pBranchName);
  66. sql += ", @pAgent = " + FilterString(pAgent);
  67. sql += ", @pAgentName = " + FilterString(pAgentName);
  68. sql += ", @pSuperAgent = " + FilterString(pSuperAgent);
  69. sql += ", @pSuperAgentName = " + FilterString(pSuperAgentName);
  70. sql += ", @uploadLogId = " + FilterString(uploadLogId);
  71. var ds = ExecuteDataset(sql);
  72. if (ds == null || ds.Tables.Count == 0)
  73. return null;
  74. return ds;
  75. }
  76. public DataSet LoadIncorrectDataFromFileAdmin(string xml, string user, string pAgent, string fileFormatType)
  77. {
  78. var sql = "EXEC proc_ImportFileAPIAdmin @flag='s'";
  79. sql += ", @user = " + FilterString(user);
  80. sql += ", @xml = '" + xml + "'";
  81. sql += ", @pAgent = " + FilterString(pAgent);
  82. sql += ", @fileFormatType = " + FilterString(fileFormatType);
  83. var ds = ExecuteDataset(sql);
  84. if (ds == null || ds.Tables.Count == 0)
  85. return null;
  86. return ds;
  87. }
  88. public DataSet LoadIncorrectDataFromFileApi(string xml, string user)
  89. {
  90. var sql = @"EXEC proc_ImportFileAPI @flag='s', @user=" + FilterString(user) +
  91. @", @xml='" + xml + "'";
  92. var ds = ExecuteDataset(sql);
  93. if (ds == null || ds.Tables.Count == 0)
  94. return null;
  95. return ds;
  96. }
  97. public DbResult GetXmlFromFileCustom(string filePath, bool useFirstLineAsHeader, string fileFormatType)
  98. {
  99. var dbResult = new DbResult();
  100. xmlUtil.FilePath = filePath;
  101. xmlUtil.FirstLineIsHeader = useFirstLineAsHeader;
  102. xmlUtil.CheckFirstLineHeader = useFirstLineAsHeader;
  103. xmlUtil.ColSeperator = ",";
  104. xmlUtil.RowSeperator = "\r\n";
  105. xmlUtil.IgnoreInvalidRow = false;
  106. if(fileFormatType.ToLower() == "tranid")
  107. xmlUtil.FieldList = TextToXmlColumn("tranid,amount");
  108. else
  109. xmlUtil.FieldList = TextToXmlColumn("controlno,amount");
  110. var xml = xmlUtil.GenerateXML();
  111. if (xmlUtil.Dr.ErrorCode != "0")
  112. return xmlUtil.Dr;
  113. xmlUtil = null;
  114. dbResult.SetError("0", xml, "");
  115. return dbResult;
  116. }
  117. public DbResult GetXmlFromFile(string filePath)
  118. {
  119. var dbResult = new DbResult();
  120. xmlUtil.FilePath = filePath;
  121. xmlUtil.FirstLineIsHeader = true;
  122. xmlUtil.CheckFirstLineHeader = true;
  123. xmlUtil.ColSeperator = ",";
  124. xmlUtil.RowSeperator = "\r\n";
  125. xmlUtil.IgnoreInvalidRow = false;
  126. xmlUtil.FieldList = TextToXmlColumn("controlno,amount");
  127. var xml = xmlUtil.GenerateXML();
  128. if (xmlUtil.Dr.ErrorCode != "0")
  129. return xmlUtil.Dr;
  130. xmlUtil = null;
  131. dbResult.SetError("0", xml, "");
  132. return dbResult;
  133. }
  134. private List<FieldName> TextToXmlColumn(string fieldList)
  135. {
  136. var list = new List<FieldName>();
  137. var i = 0;
  138. foreach (var c in fieldList.Split(','))
  139. {
  140. list.Add(new FieldName(i++, c.Trim()));
  141. }
  142. return list;
  143. }
  144. public DbResult UploadCouponNo(string filePath,string schemeId, string user)
  145. {
  146. var dbResult = new DbResult();
  147. xmlUtil.FilePath = filePath;
  148. xmlUtil.FirstLineIsHeader = true;
  149. xmlUtil.CheckFirstLineHeader = true;
  150. xmlUtil.ColSeperator = ",";
  151. xmlUtil.RowSeperator = "\r\n";
  152. xmlUtil.IgnoreInvalidRow = false;
  153. xmlUtil.FieldList = TextToXmlColumn("f1,f2");
  154. var xml = xmlUtil.GenerateXML();
  155. if (xmlUtil.Dr.ErrorCode != "0")
  156. return xmlUtil.Dr;
  157. var sql = @"EXEC proc_uploadCoupon @flag='upload', @user=" + FilterString(user) +
  158. ", @xml ='" + xml + "',@schemeId="+FilterString(schemeId);
  159. return ParseDbResult(sql);
  160. }
  161. }
  162. }