edu.cs 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Http;
  6. using System.Xml;
  7. using System.Data;
  8. using ResfullApi.Models;
  9. using System.Configuration;
  10. using Newtonsoft.Json.Linq;
  11. using ResfullApi.Models.edu;
  12. using Newtonsoft.Json;
  13. using Microsoft.AspNetCore.Mvc;
  14. using CommonObj.model;
  15. namespace ApiProcess.Controllers
  16. {
  17. [ApiController]
  18. [Route("api/[controller]/[action]/data")]
  19. public class edu : ControllerBase
  20. {
  21. static readonly log4net.ILog logger = log4net.LogManager.GetLogger(typeof(edu));
  22. //{"users":"50912345678","serviceId":"2","categoryCode":"VOCABULARY"}
  23. [HttpPost]
  24. public IActionResult getLessonOfCategory([FromBody] dynamic sendData)
  25. {
  26. ////log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  27. ////log4net.Config.XmlConfigurator.Configure();
  28. LESSONOFCATEGORY response = new LESSONOFCATEGORY();
  29. response.status = "-1";
  30. response.message = "Err unknow";
  31. try
  32. {
  33. var userObj = JObject.Parse(sendData.ToString());
  34. string users = Convert.ToString(userObj["users"]);
  35. string serviceid = Convert.ToString(userObj["serviceId"]);
  36. string categoryCode = Convert.ToString(userObj["categoryCode"]);
  37. if (string.IsNullOrEmpty(categoryCode)) categoryCode = "-1";
  38. if (string.IsNullOrEmpty(users)) users = "-1";
  39. logger.Info("New request income getLessonOfCategory :" + sendData.ToString());
  40. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.CATEGORY_GET(users, serviceid, categoryCode);
  41. logger.Info("Call database CATEGORY_GET success:");
  42. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  43. {
  44. response.status = "0";
  45. response.message = "success";
  46. response.LIST_CATEGORY = new CATEGORY[ds_regist.Tables[0].Rows.Count];
  47. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  48. {
  49. CATEGORY cateObj = new CATEGORY();
  50. cateObj.ID = ds_regist.Tables[0].Rows[j]["ID"].ToString();
  51. cateObj.CODE = ds_regist.Tables[0].Rows[j]["CODE"].ToString();
  52. cateObj.NAME = ds_regist.Tables[0].Rows[j]["NAME"].ToString();
  53. cateObj.DESCRIPTION = ds_regist.Tables[0].Rows[j]["DESCRIPTION"].ToString();
  54. cateObj.INTRODUCTION = ds_regist.Tables[0].Rows[j]["INTRODUCTION"].ToString();
  55. cateObj.ICON_PATH = ds_regist.Tables[0].Rows[j]["ICON_PATH"].ToString();
  56. cateObj.SERVICE_ID = ds_regist.Tables[0].Rows[j]["SERVICE_ID"].ToString();
  57. DataSet dsCourse = ResfullApi.Models.edu.lotoDataAccess.COURSE_GET(users, serviceid, ds_regist.Tables[0].Rows[j]["ID"].ToString());
  58. if (dsCourse != null & dsCourse.Tables[0].Rows.Count > 0)
  59. {
  60. cateObj.LIST_COURSE = new COURSE[dsCourse.Tables[0].Rows.Count];
  61. for (int k = 0; k < dsCourse.Tables[0].Rows.Count; k++)
  62. {
  63. COURSE courseObj = new COURSE();
  64. courseObj.ID = dsCourse.Tables[0].Rows[k]["ID"].ToString();
  65. courseObj.CODE = dsCourse.Tables[0].Rows[k]["CODE"].ToString();
  66. courseObj.NAME = dsCourse.Tables[0].Rows[k]["NAME"].ToString();
  67. courseObj.DESCRIPTION = dsCourse.Tables[0].Rows[k]["DESCRIPTION"].ToString();
  68. courseObj.INTRODUCTION = dsCourse.Tables[0].Rows[k]["INTRODUCTION"].ToString();
  69. courseObj.IS_LEARN = dsCourse.Tables[0].Rows[k]["is_learn"].ToString();
  70. courseObj.EXP_DATE = dsCourse.Tables[0].Rows[k]["expdate"].ToString();
  71. courseObj.ICON_PATH = dsCourse.Tables[0].Rows[k]["ICON_PATH"].ToString();
  72. courseObj.LOGO_PAHT = dsCourse.Tables[0].Rows[k]["LOGO_PAHT"].ToString();
  73. courseObj.CATEGORY_ID = dsCourse.Tables[0].Rows[k]["CATEGORY_ID"].ToString();
  74. DataSet dsLesson = ResfullApi.Models.edu.lotoDataAccess.LESSON_GET(users, serviceid, dsCourse.Tables[0].Rows[k]["ID"].ToString());
  75. if (dsLesson != null & dsLesson.Tables[0].Rows.Count > 0)
  76. {
  77. courseObj.LIST_LESSON = new LESSON[dsLesson.Tables[0].Rows.Count];
  78. for(int m=0;m< dsLesson.Tables[0].Rows.Count;m++)
  79. {
  80. LESSON lessonObj = new LESSON();
  81. lessonObj.ID = dsLesson.Tables[0].Rows[m]["ID"].ToString();
  82. lessonObj.CODE = dsLesson.Tables[0].Rows[m]["CODE"].ToString();
  83. lessonObj.NAME = dsLesson.Tables[0].Rows[m]["NAME"].ToString();
  84. lessonObj.DESCRIPTION = dsLesson.Tables[0].Rows[m]["DESCRIPTION"].ToString();
  85. lessonObj.INTRODUCTION = dsLesson.Tables[0].Rows[m]["INTRODUCTION"].ToString();
  86. lessonObj.ICON_PATH = dsLesson.Tables[0].Rows[m]["ICON_PATH"].ToString();
  87. lessonObj.LOGO_PAHT = dsLesson.Tables[0].Rows[m]["LOGO_PAHT"].ToString();
  88. lessonObj.COURSE_ID = dsLesson.Tables[0].Rows[m]["COURSE_ID"].ToString();
  89. courseObj.LIST_LESSON[m] = lessonObj;
  90. }
  91. }
  92. cateObj.LIST_COURSE[k] = courseObj;
  93. }
  94. }
  95. response.LIST_CATEGORY[j] = cateObj;
  96. }
  97. }
  98. else
  99. {
  100. response.status = "1";
  101. response.message = "Nodata";
  102. }
  103. }
  104. catch (Exception ex)
  105. {
  106. response.status = "-1";
  107. response.message = "Err Exception";
  108. }
  109. logger.Info("Responase to web: " + response.ToString());
  110. return Ok(response);
  111. }
  112. //{"users":"50912345678","serviceId":"2","lessonId":"1"}
  113. [HttpPost]
  114. public IActionResult getContentOfVocabulary([FromBody] dynamic sendData)
  115. {
  116. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  117. //log4net.Config.XmlConfigurator.Configure();
  118. VOCABULARY_LIST response = new VOCABULARY_LIST();
  119. response.status = "-1";
  120. response.message = "Err unknow";
  121. try
  122. {
  123. var userObj = JObject.Parse(sendData.ToString());
  124. string users = Convert.ToString(userObj["users"]);
  125. string serviceid = Convert.ToString(userObj["serviceId"]);
  126. string lessonId = Convert.ToString(userObj["lessonId"]);
  127. if (string.IsNullOrEmpty(lessonId)) lessonId = "-1";
  128. if (string.IsNullOrEmpty(users)) users = "-1";
  129. logger.Info("New request income getContentOfVocabulary :" + sendData.ToString());
  130. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.VOCABULARY_GET(users, serviceid, lessonId);
  131. logger.Info("Call database VOCABULARY_GET success:");
  132. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  133. {
  134. response.status = "0";
  135. response.message = "Success";
  136. response.LIST_VOCABULARY = new VOCABULARY[ds_regist.Tables[0].Rows.Count];
  137. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  138. {
  139. VOCABULARY obj = new VOCABULARY();
  140. obj.ID = ds_regist.Tables[0].Rows[j]["ID"].ToString();
  141. obj.NAME_GLOBAL = ds_regist.Tables[0].Rows[j]["NAME_GLOBAL"].ToString();
  142. obj.NAME_LOCAL = ds_regist.Tables[0].Rows[j]["NAME_LOCAL"].ToString();
  143. obj.DESCRIPTION_GLOBAL = ds_regist.Tables[0].Rows[j]["DESCRIPTION_GLOBAL"].ToString();
  144. obj.DESCRIPTION_LOCAL = ds_regist.Tables[0].Rows[j]["DESCRIPTION_LOCAL"].ToString();
  145. obj.INTRODUCTION_GLOBAL = ds_regist.Tables[0].Rows[j]["INTRODUCTION_GLOBAL"].ToString();
  146. obj.INTRODUCTION_LOCAL = ds_regist.Tables[0].Rows[j]["INTRODUCTION_LOCAL"].ToString();
  147. obj.CONTENT = ds_regist.Tables[0].Rows[j]["CONTENT"].ToString();
  148. obj.CONTENT_TYPE = ds_regist.Tables[0].Rows[j]["CONTENT_TYPE"].ToString();
  149. obj.EXAMPLE = ds_regist.Tables[0].Rows[j]["EXAMPLE"].ToString();
  150. obj.SPELL = ds_regist.Tables[0].Rows[j]["SPELL"].ToString();
  151. obj.PICTURE = ds_regist.Tables[0].Rows[j]["PICTURE"].ToString();
  152. obj.LESSON_ID = ds_regist.Tables[0].Rows[j]["LESSON_ID"].ToString();
  153. response.LIST_VOCABULARY[j] = obj;
  154. }
  155. }
  156. else
  157. {
  158. response.status = "1";
  159. response.message = "No data";
  160. }
  161. }
  162. catch (Exception ex)
  163. {
  164. response.status = "-1";
  165. response.message = "Err unknow";
  166. logger.Info("Err:" + ex.ToString());
  167. }
  168. logger.Info("Responase to web: " + response.ToString());
  169. return Ok(response);
  170. }
  171. //{"users":"50912345678","serviceId":"2","lessonId":"7"}
  172. [HttpPost]
  173. public IActionResult getContentOfListen([FromBody] dynamic sendData)
  174. {
  175. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  176. //log4net.Config.XmlConfigurator.Configure();
  177. LISTEN_LIST response = new LISTEN_LIST();
  178. response.status = "-1";
  179. response.message = "Err unknow";
  180. try
  181. {
  182. var userObj = JObject.Parse(sendData.ToString());
  183. string users = Convert.ToString(userObj["users"]);
  184. string serviceid = Convert.ToString(userObj["serviceId"]);
  185. string lessonId = Convert.ToString(userObj["lessonId"]);
  186. if (string.IsNullOrEmpty(users)) users = "-1";
  187. if (string.IsNullOrEmpty(lessonId)) lessonId = "-1";
  188. logger.Info("New request income getContentOfVocabulary :" + sendData.ToString());
  189. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.LISTEN_GET(users, serviceid, lessonId);
  190. logger.Info("Call database VOCABULARY_GET success:");
  191. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  192. {
  193. response.status = "0";
  194. response.message = "Success";
  195. response.LIST_LISTEN = new LISTEN[ds_regist.Tables[0].Rows.Count];
  196. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  197. {
  198. LISTEN obj = new LISTEN();
  199. obj.ID = ds_regist.Tables[0].Rows[j]["ID"].ToString();
  200. obj.NAME = ds_regist.Tables[0].Rows[j]["NAME"].ToString();
  201. obj.DESCRIPTION = ds_regist.Tables[0].Rows[j]["DESCRIPTION"].ToString();
  202. obj.INTRODUCTION_GLOBAL = ds_regist.Tables[0].Rows[j]["INTRODUCTION_GLOBAL"].ToString();
  203. obj.INTRODUCTION_LOCAL = ds_regist.Tables[0].Rows[j]["INTRODUCTION_LOCAL"].ToString();
  204. obj.PICTURE = ds_regist.Tables[0].Rows[j]["PICTURE"].ToString();
  205. obj.CONTENT = ds_regist.Tables[0].Rows[j]["CONTENT"].ToString();
  206. obj.CONTENT_TYPE = ds_regist.Tables[0].Rows[j]["CONTENT_TYPE"].ToString();
  207. obj.LESSON_ID = ds_regist.Tables[0].Rows[j]["LESSON_ID"].ToString();
  208. response.LIST_LISTEN[j] = obj;
  209. }
  210. }
  211. else
  212. {
  213. response.status = "1";
  214. response.message = "No data";
  215. }
  216. }
  217. catch (Exception ex)
  218. {
  219. response.status = "-1";
  220. response.message = "Err unknow";
  221. logger.Info("Err:" + ex.ToString());
  222. }
  223. logger.Info("Responase to web: " + response.ToString());
  224. return Ok(response);
  225. }
  226. //{"users":"50912345678","serviceId":"2","lessonId":"7"}
  227. [HttpPost]
  228. public IActionResult getContentOfGrammar([FromBody] dynamic sendData)
  229. {
  230. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  231. //log4net.Config.XmlConfigurator.Configure();
  232. GRAMMAR_LIST response = new GRAMMAR_LIST();
  233. response.status = "-1";
  234. response.message = "Err unknow";
  235. try
  236. {
  237. var userObj = JObject.Parse(sendData.ToString());
  238. string users = Convert.ToString(userObj["users"]);
  239. string serviceid = Convert.ToString(userObj["serviceId"]);
  240. string lessonId = Convert.ToString(userObj["lessonId"]);
  241. if (string.IsNullOrEmpty(lessonId)) lessonId = "-1";
  242. if (string.IsNullOrEmpty(users)) users = "-1";
  243. logger.Info("New request income getContentOfVocabulary :" + sendData.ToString());
  244. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.GRAMMAR_GET(users, serviceid, lessonId);
  245. logger.Info("Call database VOCABULARY_GET success:");
  246. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  247. {
  248. response.status = "0";
  249. response.message = "Success";
  250. response.LIST_GRAMMAR = new GRAMMAR[ds_regist.Tables[0].Rows.Count];
  251. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  252. {
  253. GRAMMAR grammarObj = new GRAMMAR();
  254. grammarObj.ID = ds_regist.Tables[0].Rows[j]["ID"].ToString();
  255. grammarObj.NAME = ds_regist.Tables[0].Rows[j]["NAME"].ToString();
  256. grammarObj.DESCRIPTION = ds_regist.Tables[0].Rows[j]["DESCRIPTION"].ToString();
  257. grammarObj.INTRODUCTION = ds_regist.Tables[0].Rows[j]["INTRODUCTION"].ToString();
  258. grammarObj.PICTURE = ds_regist.Tables[0].Rows[j]["PICTURE"].ToString();
  259. grammarObj.LESSON_ID = ds_regist.Tables[0].Rows[j]["LESSON_ID"].ToString();
  260. DataSet dsGrammarEx = ResfullApi.Models.edu.lotoDataAccess.GRAMMAR_EX_GET(users, serviceid, ds_regist.Tables[0].Rows[j]["ID"].ToString());
  261. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  262. {
  263. grammarObj.LIST_GRAMMAR_EX = new GRAMMAR_EX[dsGrammarEx.Tables[0].Rows.Count];
  264. for (int k = 0; k < dsGrammarEx.Tables[0].Rows.Count; k++)
  265. {
  266. GRAMMAR_EX grammarExObj = new GRAMMAR_EX();
  267. grammarExObj.ID = dsGrammarEx.Tables[0].Rows[k]["ID"].ToString();
  268. grammarExObj.NAME = dsGrammarEx.Tables[0].Rows[k]["NAME"].ToString();
  269. grammarExObj.DESCRIPTION = dsGrammarEx.Tables[0].Rows[k]["DESCRIPTION"].ToString();
  270. grammarExObj.INTRODUCTION = dsGrammarEx.Tables[0].Rows[k]["INTRODUCTION"].ToString();
  271. grammarExObj.PICTURE = dsGrammarEx.Tables[0].Rows[k]["PICTURE"].ToString();
  272. grammarExObj.CONTENT = dsGrammarEx.Tables[0].Rows[k]["CONTENT"].ToString();
  273. grammarExObj.CONTENT_TYPE = dsGrammarEx.Tables[0].Rows[k]["CONTENT_TYPE"].ToString();
  274. grammarExObj.GRAMMAR_ID = dsGrammarEx.Tables[0].Rows[k]["GRAMMAR_ID"].ToString();
  275. grammarObj.LIST_GRAMMAR_EX[k] = grammarExObj;
  276. }
  277. }
  278. response.LIST_GRAMMAR[j] = grammarObj;
  279. }
  280. }
  281. else
  282. {
  283. response.status = "1";
  284. response.message = "No data";
  285. }
  286. }
  287. catch (Exception ex)
  288. {
  289. response.status = "-1";
  290. response.message = "Err unknow";
  291. logger.Info("Err:" + ex.ToString());
  292. }
  293. logger.Info("Responase to web: " + response.ToString());
  294. return Ok(response);
  295. }
  296. //{"users":"50912345678","serviceId":"2","lessonId":"1"}
  297. [HttpPost]
  298. public IActionResult getContentOfQuestion([FromBody] dynamic sendData)
  299. {
  300. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  301. //log4net.Config.XmlConfigurator.Configure();
  302. QUESTION_LIST response = new QUESTION_LIST();
  303. response.status = "-1";
  304. response.message = "Err unknow";
  305. try
  306. {
  307. var userObj = JObject.Parse(sendData.ToString());
  308. string users = Convert.ToString(userObj["users"]);
  309. string serviceid = Convert.ToString(userObj["serviceId"]);
  310. string lessonId = Convert.ToString(userObj["lessonId"]);
  311. if (string.IsNullOrEmpty(lessonId)) lessonId = "-1";
  312. if (string.IsNullOrEmpty(users)) users = "-1";
  313. logger.Info("New request income getContentOfQuestion :" + sendData.ToString());
  314. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.QUESTION_GET(users, serviceid, lessonId);
  315. logger.Info("Call database VOCABULARY_GET success:");
  316. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  317. {
  318. response.status = "0";
  319. response.message = "Success";
  320. response.LIST_QUESTION = new QUESTION[ds_regist.Tables[0].Rows.Count];
  321. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  322. {
  323. QUESTION obj = new QUESTION();
  324. obj.ID = ds_regist.Tables[0].Rows[j]["ID"].ToString();
  325. obj.NAME = ds_regist.Tables[0].Rows[j]["NAME"].ToString();
  326. obj.DESCRIPTION = ds_regist.Tables[0].Rows[j]["DESCRIPTION"].ToString();
  327. obj.ICON_PATH = ds_regist.Tables[0].Rows[j]["ICON_PATH"].ToString();
  328. obj.CONTENT = ds_regist.Tables[0].Rows[j]["CONTENT"].ToString();
  329. obj.CONTENT_TYPE = ds_regist.Tables[0].Rows[j]["CONTENT_TYPE"].ToString();
  330. obj.QUESTION_TYPE = ds_regist.Tables[0].Rows[j]["QUESTION_TYPE"].ToString();
  331. obj.ANSWER_TRUE = ds_regist.Tables[0].Rows[j]["ANSWER_TRUE"].ToString();
  332. obj.ANSWER1 = ds_regist.Tables[0].Rows[j]["ANSWER1"].ToString();
  333. obj.ANSWER2 = ds_regist.Tables[0].Rows[j]["ANSWER2"].ToString();
  334. obj.ANSWER3 = ds_regist.Tables[0].Rows[j]["ANSWER3"].ToString();
  335. obj.ANSWER4 = ds_regist.Tables[0].Rows[j]["ANSWER4"].ToString();
  336. response.LIST_QUESTION[j] = obj;
  337. }
  338. }
  339. else
  340. {
  341. response.status = "1";
  342. response.message = "No data";
  343. }
  344. }
  345. catch (Exception ex)
  346. {
  347. response.status = "-1";
  348. response.message = "Err unknow";
  349. logger.Info("Err:" + ex.ToString());
  350. }
  351. logger.Info("Responase to web: " + response.ToString());
  352. return Ok(response);
  353. }
  354. // {"users":"123","serviceId":"23","lessonId":"1",list}
  355. [HttpPost]
  356. public IActionResult getAnsweerOfQuestion([FromBody] dynamic sendData)
  357. {
  358. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  359. //log4net.Config.XmlConfigurator.Configure();
  360. responseObjUtil response = new responseObjUtil();
  361. response.status = "-1";
  362. response.message = "Err unknow";
  363. try
  364. {
  365. ANSWER_RESULT data = JsonConvert.DeserializeObject<ANSWER_RESULT>(sendData.ToString());
  366. logger.Info("New request income getAnsweerOfQuestion :" + data.ToString());
  367. string lessonId = data.LESSON_ID;
  368. string question_info = "";
  369. if(data.ANSWER_LIST.Length>0)
  370. {
  371. for(int i=0;i<data.ANSWER_LIST.Length;i++)
  372. {
  373. ANSWER obj=(ANSWER)data.ANSWER_LIST[i];
  374. if(i==0)
  375. question_info = obj.QUESTION_ID + ";" + obj.ANSWERS + ";" + obj.RESULT + ";" + obj.TIME;
  376. else
  377. question_info = question_info + "$" + obj.QUESTION_ID + ";" + obj.ANSWERS + ";" + obj.RESULT + ";" + obj.TIME;
  378. }
  379. }
  380. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.QUESTION_UPDATE(data.users, data.serviceId, data.LESSON_ID, question_info);
  381. logger.Info("Call database QUESTION_UPDATE success:");
  382. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  383. {
  384. response.status = ds_regist.Tables[0].Rows[0]["status"].ToString();
  385. response.message = ds_regist.Tables[0].Rows[0]["message"].ToString();
  386. }
  387. }
  388. catch (Exception ex)
  389. {
  390. logger.Info("Err:" + ex.ToString());
  391. }
  392. logger.Info("Responase to web: " + response.ToString());
  393. return Ok(response);
  394. }
  395. //{"users":"50940240716","serviceId":"30","courseId":"50912345678","codeBuy":"1","requestId":"-1","otp":"-1"}
  396. public IActionResult buyCourse([FromBody] dynamic sendData)
  397. {
  398. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  399. //log4net.Config.XmlConfigurator.Configure();
  400. mpsResponseEx response = new mpsResponseEx();
  401. response.status = "-1";
  402. response.message = "Err unknow";
  403. logger.Info("New request income buyCourse :" + sendData.ToString());
  404. string mps_ip = "127.0.0.1";
  405. string mps_port = "0000";
  406. try
  407. {
  408. var userObj = JObject.Parse(sendData.ToString());
  409. string users = Convert.ToString(userObj["users"]);
  410. string serviceid = Convert.ToString(userObj["serviceId"]);
  411. string courseId = Convert.ToString(userObj["courseId"]);
  412. string codeBuy = Convert.ToString(userObj["codeBuy"]);
  413. string requestId = Convert.ToString(userObj["requestId"]);
  414. string otp = Convert.ToString(userObj["otp"]);
  415. if (string.IsNullOrEmpty(courseId)) courseId = "-1";
  416. if (string.IsNullOrEmpty(requestId)) requestId = "-1";
  417. if (string.IsNullOrEmpty(otp)) otp = "-1";
  418. DataSet ds_mps_info = DataAccess.MPS_GET_BY_ID(serviceid);
  419. mps_ip = ds_mps_info.Tables[0].Rows[0]["MPS_IP"].ToString();
  420. mps_port = ds_mps_info.Tables[0].Rows[0]["MPS_PORT"].ToString();
  421. logger.Info("Start call charg money");
  422. string data = "requestId=" + requestId + "&msisdn=" + users + "&otp=" + otp + "&serviceid=" + serviceid + "&subServiceCode=" + codeBuy;
  423. logger.Info("Request call charge: " + data);
  424. string response111 = Common.SocketUnSyn(data, mps_ip, Convert.ToInt32(mps_port), 12000);
  425. logger.Info("Result call charge: " + response111);
  426. mpsResponse resCallMps = JsonConvert.DeserializeObject<mpsResponse>(response111);
  427. if (resCallMps.responseCode == "0")
  428. {
  429. logger.Info("charge money success :");
  430. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.COURSE_BUY(users, serviceid, courseId, codeBuy);
  431. logger.Info("Call database COURSE_BUY success:");
  432. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  433. {
  434. response.status = ds_regist.Tables[0].Rows[0]["status"].ToString();
  435. response.message = ds_regist.Tables[0].Rows[0]["message"].ToString();
  436. response.requestId = resCallMps.requestID;
  437. return Ok(response);
  438. }
  439. }
  440. else if (resCallMps.responseCode == "100")
  441. {
  442. response.status = "100";
  443. response.message = "Send OTP success to user, pls send this function with OTP & requestID agian for finsh";
  444. response.requestId = resCallMps.requestID;
  445. return Ok(response);
  446. }
  447. else if (resCallMps.responseCode == "401")
  448. {
  449. response.status = "-12";
  450. response.message = "Not enough money ";
  451. return Ok(response);
  452. }
  453. else if (resCallMps.responseCode == "415")
  454. {
  455. response.status = "-13";
  456. response.message = "Invalid OTP code";
  457. return Ok(response);
  458. }
  459. else if (resCallMps.responseCode == "416")
  460. {
  461. response.status = "-14";
  462. response.message = "Incorrect OTP code/ OTP code expired";
  463. return Ok(response);
  464. }
  465. else if (resCallMps.responseCode == "417")
  466. {
  467. response.status = "-15";
  468. response.message = "Confirm OTP via USSD time out";
  469. return Ok(response);
  470. }
  471. else
  472. {
  473. response.status = "-10";
  474. response.message = "System err";
  475. return Ok(response);
  476. }
  477. }
  478. catch (Exception ex)
  479. {
  480. logger.Info("Err:" + ex.ToString());
  481. }
  482. return Ok(response);
  483. }
  484. //{"users":"856000111113","serviceId":"2","categoryCode":"VOCABULARY"}
  485. [HttpPost]
  486. public IActionResult getCourseHis([FromBody] dynamic sendData)
  487. {
  488. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  489. //log4net.Config.XmlConfigurator.Configure();
  490. COURSE_HIS_LIST response = new COURSE_HIS_LIST();
  491. response.status = "-1";
  492. response.message = "Err unknow";
  493. try
  494. {
  495. var userObj = JObject.Parse(sendData.ToString());
  496. string users = Convert.ToString(userObj["users"]);
  497. string serviceid = Convert.ToString(userObj["serviceId"]);
  498. string categoryCode = Convert.ToString(userObj["categoryCode"]);
  499. logger.Info("New request income getCourseHis :" + sendData.ToString());
  500. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.COURSE_GET_HIS(users, serviceid, categoryCode);
  501. logger.Info("Call database COURSE_GET_HIS success:");
  502. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  503. {
  504. response.status = "0";
  505. response.message = "Success";
  506. response.LIST_COURSE_HIS = new COURSE_HIS[ds_regist.Tables[0].Rows.Count];
  507. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  508. {
  509. COURSE_HIS courseObj = new COURSE_HIS();
  510. courseObj.ID = ds_regist.Tables[0].Rows[j]["ID"].ToString();
  511. courseObj.CODE = ds_regist.Tables[0].Rows[j]["CODE"].ToString();
  512. courseObj.NAME = ds_regist.Tables[0].Rows[j]["NAME"].ToString();
  513. courseObj.DESCRIPTION = ds_regist.Tables[0].Rows[j]["DESCRIPTION"].ToString();
  514. courseObj.INTRODUCTION = ds_regist.Tables[0].Rows[j]["INTRODUCTION"].ToString();
  515. courseObj.IS_LEARN = ds_regist.Tables[0].Rows[j]["is_learn"].ToString();
  516. courseObj.EXP_DATE = ds_regist.Tables[0].Rows[j]["expdate"].ToString();
  517. courseObj.ICON_PATH = ds_regist.Tables[0].Rows[j]["ICON_PATH"].ToString();
  518. courseObj.LOGO_PAHT = ds_regist.Tables[0].Rows[j]["LOGO_PAHT"].ToString();
  519. courseObj.CATEGORY_ID = ds_regist.Tables[0].Rows[j]["CATEGORY_ID"].ToString();
  520. courseObj.TOTAL_LESSON = ds_regist.Tables[0].Rows[j]["TOTAL_LESSON"].ToString();
  521. courseObj.TOTAL_LESSON_LEARN = ds_regist.Tables[0].Rows[j]["TOTAL_LESSON_LEARN"].ToString();
  522. courseObj.PERCENT = ds_regist.Tables[0].Rows[j]["PERCENT"].ToString();
  523. response.LIST_COURSE_HIS[j] = courseObj;
  524. }
  525. }
  526. else
  527. {
  528. response.status = "1";
  529. response.message = "No data";
  530. }
  531. }
  532. catch (Exception ex)
  533. {
  534. response.status = "-1";
  535. response.message = "Err unknow";
  536. logger.Info("Err:" + ex.ToString());
  537. }
  538. logger.Info("Responase to web: " + response.ToString());
  539. return Ok(response);
  540. }
  541. //{"users":"856000111113","serviceId":"2"}
  542. [HttpPost]
  543. public IActionResult getRanking([FromBody] dynamic sendData)
  544. {
  545. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  546. //log4net.Config.XmlConfigurator.Configure();
  547. RANKING_LIST response = new RANKING_LIST();
  548. response.status = "-1";
  549. response.message = "Err unknow";
  550. try
  551. {
  552. var userObj = JObject.Parse(sendData.ToString());
  553. string users = Convert.ToString(userObj["users"]);
  554. string serviceid = Convert.ToString(userObj["serviceId"]);
  555. logger.Info("New request income getRanking :" + sendData.ToString());
  556. DataSet ds_regist = ResfullApi.Models.edu.lotoDataAccess.RANKINGE_GET_LIST(users, serviceid);
  557. logger.Info("Call database RANKINGE_GET_LIST success:");
  558. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  559. {
  560. response.status = "0";
  561. response.message = "Success";
  562. response.LIST_RANKING = new RANKING[ds_regist.Tables[0].Rows.Count];
  563. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  564. {
  565. RANKING obj = new RANKING();
  566. obj.SEQ = ds_regist.Tables[0].Rows[j]["SEQ"].ToString();
  567. obj.USERS_ID = ds_regist.Tables[0].Rows[j]["USERS_ID"].ToString();
  568. obj.USERS = ds_regist.Tables[0].Rows[j]["USERS"].ToString();
  569. obj.MSISDN = ds_regist.Tables[0].Rows[j]["MSISDN"].ToString();
  570. obj.SERVICE_ID = ds_regist.Tables[0].Rows[j]["SERVICE_ID"].ToString();
  571. obj.FULLNAME = ds_regist.Tables[0].Rows[j]["FULLNAME"].ToString();
  572. obj.BIRTHDAY = ds_regist.Tables[0].Rows[j]["BIRTHDAY"].ToString();
  573. obj.PICTURE = ds_regist.Tables[0].Rows[j]["PICTURE"].ToString();
  574. obj.TOTAL_SCORE = ds_regist.Tables[0].Rows[j]["TOTAL_SCORE"].ToString();
  575. response.LIST_RANKING[j] = obj;
  576. }
  577. }
  578. else
  579. {
  580. response.status = "1";
  581. response.message = "No data";
  582. }
  583. }
  584. catch (Exception ex)
  585. {
  586. response.status = "-1";
  587. response.message = "Err unknow";
  588. logger.Info("Err:" + ex.ToString());
  589. }
  590. logger.Info("Responase to web: " + response.ToString());
  591. return Ok(response);
  592. }
  593. }
  594. }