newsSms.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Http;
  6. using ResfullApi.Models;
  7. using Newtonsoft.Json;
  8. using System.Data;
  9. using Microsoft.AspNetCore.Mvc;
  10. using CommonObj.common;
  11. using Newtonsoft.Json.Linq;
  12. using Microsoft.Extensions.Caching.Memory;
  13. namespace ApiProcess.Controllers
  14. {
  15. [ApiController]
  16. [Route("api/[controller]/[action]/data")]
  17. public class newsSms : ControllerBase
  18. {
  19. static readonly log4net.ILog logger = log4net.LogManager.GetLogger(typeof(newsSms));
  20. private IMemoryCache memoryCache;
  21. public newsSms(IMemoryCache memoryCache)
  22. {
  23. this.memoryCache = memoryCache;
  24. }
  25. // {"title":"xxxx","serviceId":"30","content":"cong hoa xa hoi chu nghia","dateSend":"01/12/2020 01:01:10"}
  26. [HttpPost]
  27. public IActionResult Insert([FromBody] dynamic sendData)
  28. {
  29. ////log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  30. ////log4net.Config.XmlConfigurator.Configure();
  31. newsObjResponse response = new newsObjResponse();
  32. response.status = "-1";
  33. response.message = "Err unknow";
  34. try
  35. {
  36. newsSmsObjRequest data = JsonConvert.DeserializeObject<newsSmsObjRequest>(sendData.ToString());
  37. logger.Info("New request income news_insert :" + data.ToString());
  38. //Check token
  39. var userObj = JObject.Parse(sendData.ToString());
  40. string token = Convert.ToString(userObj["token"]);
  41. string channel = Convert.ToString(userObj["channel"]);
  42. //var obj = JObject.Parse(sendData.ToString());
  43. string language = Convert.ToString(userObj["language"]);
  44. if (string.IsNullOrEmpty(language)) language = "0";
  45. string RedisIp = Common.GetValuesAppSetting("webConfig", "RedisIp");
  46. string RedisPort = Common.GetValuesAppSetting("webConfig", "RedisPort");
  47. string RedisPass = Common.GetValuesAppSetting("webConfig", "RedisPass");var clientIp = HttpContext.Connection.RemoteIpAddress.ToString();
  48. //---------------------Lay ra va luu mot redis tu cache-----------------------------
  49. redisConnection _redis;
  50. memoryCache.TryGetValue("redis", out _redis);
  51. if (_redis == null)
  52. {
  53. var cacheExpiryOptions = new MemoryCacheEntryOptions
  54. {
  55. AbsoluteExpiration = DateTime.Now.AddMonths(12),
  56. Priority = CacheItemPriority.High,
  57. SlidingExpiration = TimeSpan.FromMinutes(2),
  58. Size = 1024,
  59. };
  60. _redis = new redisConnection(RedisIp, RedisPort, RedisPass);
  61. _redis.connet();
  62. memoryCache.Set("redis", _redis, cacheExpiryOptions);
  63. }
  64. if (!_redis.isConnet())
  65. {
  66. if (!_redis.connet())
  67. {
  68. logger.Info("Connect to redis false");
  69. response.status = "-2";
  70. response.message = "System Update";
  71. logger.Info("confirmTicket response : " + response.ToString());
  72. return Ok(response);
  73. }
  74. else
  75. {
  76. var cacheExpiryOptions = new MemoryCacheEntryOptions
  77. {
  78. AbsoluteExpiration = DateTime.Now.AddMonths(12),
  79. Priority = CacheItemPriority.High,
  80. SlidingExpiration = TimeSpan.FromMinutes(2),
  81. Size = 1024,
  82. };
  83. memoryCache.Set("redis", _redis, cacheExpiryOptions);
  84. }
  85. }
  86. //----------------------Ket thuc lay redis tu cache -------------------------------------
  87. if (!CommonFunction.checkToken(clientIp,token, channel, _redis, logger))
  88. {
  89. logger.Info("Authen token false");
  90. response.status = "35";
  91. response.message = "Check Authen false";
  92. return Ok(response);
  93. }
  94. //Ket thuc check token
  95. DataSet ds_regist = newsSmsDataAccess.sms_news_insert(data.title, data.serviceid, data.content, data.dateSend);
  96. logger.Info("Call database news_insert success:");
  97. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  98. {
  99. response.status = ds_regist.Tables[0].Rows[0]["status"].ToString();
  100. response.message = ds_regist.Tables[0].Rows[0]["message"].ToString();
  101. response.newsId = ds_regist.Tables[0].Rows[0]["newsId"].ToString();
  102. }
  103. }
  104. catch (Exception ex)
  105. {
  106. logger.Info("Err:" + ex.ToString());
  107. }
  108. logger.Info("Responase to web: " + response.ToString());
  109. return Ok(response);
  110. }
  111. //{"id":"2","title":"content1","serviceId":"30","content":"haha","dateSend":"01/12/2020 01:01:10","type":"1"}
  112. //--0=delete,1=update
  113. [HttpPost]
  114. public IActionResult Update([FromBody] dynamic sendData)
  115. {
  116. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  117. //log4net.Config.XmlConfigurator.Configure();
  118. responseObjUtil response = new responseObjUtil();
  119. response.status = "-1";
  120. response.message = "Err unknow";
  121. try
  122. {
  123. newsSmsObjUpdateRequest data = JsonConvert.DeserializeObject<newsSmsObjUpdateRequest>(sendData.ToString());
  124. logger.Info("New request income Update :" + data.ToString());
  125. //Check token
  126. var userObj = JObject.Parse(sendData.ToString());
  127. string token = Convert.ToString(userObj["token"]);
  128. string channel = Convert.ToString(userObj["channel"]);
  129. //var obj = JObject.Parse(sendData.ToString());
  130. string language = Convert.ToString(userObj["language"]);
  131. if (string.IsNullOrEmpty(language)) language = "0";
  132. string RedisIp = Common.GetValuesAppSetting("webConfig", "RedisIp");
  133. string RedisPort = Common.GetValuesAppSetting("webConfig", "RedisPort");
  134. string RedisPass = Common.GetValuesAppSetting("webConfig", "RedisPass");var clientIp = HttpContext.Connection.RemoteIpAddress.ToString();
  135. //---------------------Lay ra va luu mot redis tu cache-----------------------------
  136. redisConnection _redis;
  137. memoryCache.TryGetValue("redis", out _redis);
  138. if (_redis == null)
  139. {
  140. var cacheExpiryOptions = new MemoryCacheEntryOptions
  141. {
  142. AbsoluteExpiration = DateTime.Now.AddMonths(12),
  143. Priority = CacheItemPriority.High,
  144. SlidingExpiration = TimeSpan.FromMinutes(2),
  145. Size = 1024,
  146. };
  147. _redis = new redisConnection(RedisIp, RedisPort, RedisPass);
  148. _redis.connet();
  149. memoryCache.Set("redis", _redis, cacheExpiryOptions);
  150. }
  151. if (!_redis.isConnet())
  152. {
  153. if (!_redis.connet())
  154. {
  155. logger.Info("Connect to redis false");
  156. response.status = "-2";
  157. response.message = "System Update";
  158. logger.Info("confirmTicket response : " + response.ToString());
  159. return Ok(response);
  160. }
  161. else
  162. {
  163. var cacheExpiryOptions = new MemoryCacheEntryOptions
  164. {
  165. AbsoluteExpiration = DateTime.Now.AddMonths(12),
  166. Priority = CacheItemPriority.High,
  167. SlidingExpiration = TimeSpan.FromMinutes(2),
  168. Size = 1024,
  169. };
  170. memoryCache.Set("redis", _redis, cacheExpiryOptions);
  171. }
  172. }
  173. //----------------------Ket thuc lay redis tu cache -------------------------------------
  174. if (!CommonFunction.checkToken(clientIp,token, channel, _redis, logger))
  175. {
  176. logger.Info("Authen token false");
  177. response.status = "35";
  178. response.message = "Check Authen false";
  179. return Ok(response);
  180. }
  181. //Ket thuc check token
  182. DataSet ds_regist = newsSmsDataAccess.sms_news_update(data.id, data.title, data.serviceid, data.content, data.dateSend,data.type);
  183. logger.Info("Call database Update success:");
  184. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  185. {
  186. response.status = ds_regist.Tables[0].Rows[0]["status"].ToString();
  187. response.message = ds_regist.Tables[0].Rows[0]["message"].ToString();
  188. }
  189. }
  190. catch (Exception ex)
  191. {
  192. logger.Info("Err:" + ex.ToString());
  193. }
  194. logger.Info("Responase to web: " + response.ToString());
  195. return Ok(response);
  196. }
  197. [HttpPost]
  198. //{"id":"10","serviceId":"30","status":"-1","date":"13/02/2020" }
  199. public IActionResult GetList([FromBody] dynamic sendData)
  200. {
  201. //log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  202. //log4net.Config.XmlConfigurator.Configure();
  203. newsSmsObjGetResponse response = new newsSmsObjGetResponse();
  204. response.status = "-1";
  205. response.message = "Err unknow";
  206. try
  207. {
  208. newsObjGetRequest data = JsonConvert.DeserializeObject<newsObjGetRequest>(sendData.ToString());
  209. logger.Info("New request income Get :" + data.ToString());
  210. //Check token
  211. var userObj = JObject.Parse(sendData.ToString());
  212. string token = Convert.ToString(userObj["token"]);
  213. string channel = Convert.ToString(userObj["channel"]);
  214. //var obj = JObject.Parse(sendData.ToString());
  215. string language = Convert.ToString(userObj["language"]);
  216. if (string.IsNullOrEmpty(language)) language = "0";
  217. string RedisIp = Common.GetValuesAppSetting("webConfig", "RedisIp");
  218. string RedisPort = Common.GetValuesAppSetting("webConfig", "RedisPort");
  219. string RedisPass = Common.GetValuesAppSetting("webConfig", "RedisPass");var clientIp = HttpContext.Connection.RemoteIpAddress.ToString();
  220. //---------------------Lay ra va luu mot redis tu cache-----------------------------
  221. redisConnection _redis;
  222. memoryCache.TryGetValue("redis", out _redis);
  223. if (_redis == null)
  224. {
  225. var cacheExpiryOptions = new MemoryCacheEntryOptions
  226. {
  227. AbsoluteExpiration = DateTime.Now.AddMonths(12),
  228. Priority = CacheItemPriority.High,
  229. SlidingExpiration = TimeSpan.FromMinutes(2),
  230. Size = 1024,
  231. };
  232. _redis = new redisConnection(RedisIp, RedisPort, RedisPass);
  233. _redis.connet();
  234. memoryCache.Set("redis", _redis, cacheExpiryOptions);
  235. }
  236. if (!_redis.isConnet())
  237. {
  238. if (!_redis.connet())
  239. {
  240. logger.Info("Connect to redis false");
  241. response.status = "-2";
  242. response.message = "System Update";
  243. logger.Info("confirmTicket response : " + response.ToString());
  244. return Ok(response);
  245. }
  246. else
  247. {
  248. var cacheExpiryOptions = new MemoryCacheEntryOptions
  249. {
  250. AbsoluteExpiration = DateTime.Now.AddMonths(12),
  251. Priority = CacheItemPriority.High,
  252. SlidingExpiration = TimeSpan.FromMinutes(2),
  253. Size = 1024,
  254. };
  255. memoryCache.Set("redis", _redis, cacheExpiryOptions);
  256. }
  257. }
  258. //----------------------Ket thuc lay redis tu cache -------------------------------------
  259. if (!CommonFunction.checkToken(clientIp,token, channel, _redis, logger))
  260. {
  261. logger.Info("Authen token false");
  262. response.status = "35";
  263. response.message = "Check Authen false";
  264. return Ok(response);
  265. }
  266. //Ket thuc check token
  267. DataSet ds_regist = newsSmsDataAccess.sms_news_get( data.serviceid, data.status, data.date,data.id,data.top);
  268. logger.Info("Call database Get success:");
  269. if (ds_regist != null & ds_regist.Tables[0].Rows.Count > 0)
  270. {
  271. response.status = "0";
  272. response.message = "Success";
  273. response.listNewsSms = new newsSmsObj[ds_regist.Tables[0].Rows.Count];
  274. for (int j = 0; j < ds_regist.Tables[0].Rows.Count; j++)
  275. {
  276. newsSmsObj obj = new newsSmsObj();
  277. obj.id = ds_regist.Tables[0].Rows[j]["id"].ToString();
  278. obj.serviceid = ds_regist.Tables[0].Rows[j]["serviceid"].ToString();
  279. obj.status = ds_regist.Tables[0].Rows[j]["newsStatus"].ToString();
  280. obj.title = ds_regist.Tables[0].Rows[j]["title"].ToString();
  281. obj.content = ds_regist.Tables[0].Rows[j]["content"].ToString();
  282. obj.dateSend = ds_regist.Tables[0].Rows[j]["dateSend"].ToString();
  283. obj.sysdate = ds_regist.Tables[0].Rows[j]["vsysdate"].ToString();
  284. response.listNewsSms[j] = obj;
  285. }
  286. }
  287. else
  288. {
  289. response.status = "1";
  290. response.message = "No data";
  291. }
  292. }
  293. catch (Exception ex)
  294. {
  295. logger.Info("Err:" + ex.ToString());
  296. }
  297. logger.Info("Responase to web: " + response.ToString());
  298. return Ok(response);
  299. }
  300. }
  301. }