AdminController.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. using NEducation.Models;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.IO;
  6. using System.Linq;
  7. using System.ServiceModel;
  8. using System.Web;
  9. using System.Web.Mvc;
  10. namespace NEducation.Controllers
  11. {
  12. public class AdminController : Controller
  13. {
  14. // GET: Admin
  15. //public ActionResult Index(string searchString)
  16. //{
  17. // if (Session["user"] == null)
  18. // {
  19. // ViewBag.username = "Welcome!";
  20. // return View("Login");
  21. // }
  22. // return View();
  23. //}
  24. public ActionResult Login()
  25. {
  26. ViewBag.username = "Welcome!";
  27. return View();
  28. }
  29. public ActionResult Logout()
  30. {
  31. Session.Clear();
  32. ViewBag.username = "Welcome!";
  33. return View("Login");
  34. }
  35. public ActionResult LoginAction(string account, string password)
  36. {
  37. String wsUser = ConfigurationManager.AppSettings["wsUser"];
  38. String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  39. NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  40. SetWsClient(ref wsClient, Session.SessionID);
  41. NEduService.response res = wsClient.wsLoginAdmin(wsUser, wsPassword, password, account);
  42. if (res.errorCode != "0")
  43. {
  44. ViewBag.errorMessage = "Wrong account or password";
  45. ViewBag.errorMessageCss = "inherit";
  46. ViewBag.username = "Welcome!";
  47. return View("Login");
  48. }
  49. else
  50. {
  51. Session["user"] = account;
  52. ViewBag.errorMessageCss = "none";
  53. ViewBag.username = "Welcome, " + account;
  54. return View("Index");
  55. }
  56. }
  57. //public ActionResult CourseListAdmin(string searchString, string alert, int? page)
  58. //{
  59. // if (Session["user"] == null)
  60. // {
  61. // ViewBag.username = "Welcome!";
  62. // return View("Login");
  63. // }
  64. // ViewBag.username = "Welcome, " + (Session["user"] as String);
  65. // ViewBag.searchString = searchString;
  66. // if (alert == null || alert.Trim().Length == 0)
  67. // {
  68. // ViewBag.DisplayAlert = "none";
  69. // }
  70. // else
  71. // {
  72. // ViewBag.DisplayAlert = "inherit";
  73. // ViewBag.Alert = alert;
  74. // }
  75. // String wsUser = ConfigurationManager.AppSettings["wsUser"];
  76. // String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  77. // NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  78. // SetWsClient(ref wsClient, Session.SessionID);
  79. // NEduService.response res = wsClient.wsGetListEventAdmin(wsUser, wsPassword, "-1", null);
  80. // ListEvents model = new ListEvents();
  81. // List<EventDetail> listTemp = new List<EventDetail>();
  82. // model.listEvent = new List<EventDetail>();
  83. // if (res.listEvent != null && res.listEvent.Length > 0)
  84. // {
  85. // foreach (NEduService.eventObj eventObj in res.listEvent)
  86. // {
  87. // if (searchString != null)
  88. // {
  89. // if (eventObj.name.ToUpper().Contains(searchString.ToUpper().Trim())
  90. // || eventObj.eventContent.ToUpper().Contains(searchString.ToUpper().Trim())
  91. // || eventObj.eventContentFr.ToUpper().Contains(searchString.ToUpper().Trim())
  92. // || (eventObj.htmlContent == null || eventObj.htmlContent.ToUpper().Contains(searchString.ToUpper().Trim()))
  93. // || (eventObj.htmlContentFr == null || eventObj.htmlContentFr.ToUpper().Contains(searchString.ToUpper().Trim()))
  94. // )
  95. // {
  96. // listTemp.Add(Utils.buildEventDetailFromWs(eventObj));
  97. // }
  98. // }
  99. // else
  100. // {
  101. // listTemp.Add(Utils.buildEventDetailFromWs(eventObj));
  102. // }
  103. // }
  104. // }
  105. // if (listTemp.Count > 0)
  106. // {
  107. // int pageSize = 8;
  108. // int pageNumber = (page ?? 1);
  109. // listTemp = listTemp.OrderByDescending(x => x.import_time).ToList();
  110. // model.listEventPaging = listTemp.ToPagedList(pageNumber, pageSize);
  111. // // get list event in page only
  112. // for (int i = 0; i < listTemp.Count; i++)
  113. // {
  114. // if (i >= pageSize * (pageNumber - 1) && i < pageSize * pageNumber)
  115. // {
  116. // model.listEvent.Add(listTemp[i]);
  117. // }
  118. // }
  119. // listTemp.Clear();
  120. // ViewBag.Result = Lang.FoundEvent.Replace("%count%", model.listEvent.Count + "");
  121. // }
  122. // else
  123. // {
  124. // ViewBag.Result = Lang.NoEvent;
  125. // }
  126. // return View("CourseListAdmin", model);
  127. //}
  128. public ActionResult CreateCourse(long? course_id)
  129. {
  130. if (Session["user"] == null)
  131. {
  132. ViewBag.username = "Welcome!";
  133. return View("Login");
  134. }
  135. ViewBag.username = "Welcome, " + (Session["user"] as String);
  136. String wsUser = ConfigurationManager.AppSettings["wsUser"];
  137. String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  138. NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  139. SetWsClient(ref wsClient, Session.SessionID);
  140. SelectListItem[] courseTypeItems = new SelectListItem[] {
  141. new SelectListItem { Text = "Vocabulary", Value = "1" },
  142. new SelectListItem { Text = "Grammar", Value = "2" },
  143. new SelectListItem { Text = "Listening", Value = "3" }
  144. };
  145. if (course_id == null)
  146. {
  147. Session.Remove("course_id");
  148. // create mode
  149. CourseModel model = new CourseModel();
  150. //model.listCourseType = courseTypeItems.ToList();
  151. ViewBag.action = "Create";
  152. ViewBag.Title = "Create new course";
  153. return View(model);
  154. }
  155. else
  156. {
  157. Session["course_id"] = course_id;
  158. // edit mode
  159. NEduService.getCourseRes res = wsClient.wsGetCoursesById(wsUser, wsPassword, course_id + "");
  160. CourseModel model = new CourseModel();
  161. //model.selectedCourse = res.listCourse[0];
  162. //model.listCourseType = courseTypeItems.ToList();
  163. ViewBag.action = "Edit";
  164. ViewBag.Title = "Edit course";
  165. return View(model);
  166. }
  167. }
  168. //public ActionResult DeleteCourse()
  169. //{
  170. // long? course_id = Session["course_id"] as long?;
  171. // if (course_id != null)
  172. // {
  173. // String wsUser = ConfigurationManager.AppSettings["wsUser"];
  174. // String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  175. // NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  176. // SetWsClient(ref wsClient, Session.SessionID);
  177. // wsClient.wsDeleteEvent(wsUser, wsPassword, course_id.ToString());
  178. // string alert = "Delete course success!";
  179. // ViewBag.AlertCss = "alert-success";
  180. // return RedirectToAction("CourseListAdmin", new { alert = alert });// (null, alert, null);
  181. // }
  182. // else
  183. // {
  184. // string alert = "Not found course!";
  185. // ViewBag.AlertCss = "alert-danger";
  186. // return RedirectToAction("CourseListAdmin", new { alert = alert });
  187. // }
  188. //}
  189. public ActionResult GeneralReport(string fromDate, string toDate)
  190. {
  191. if (Session["user"] == null)
  192. {
  193. ViewBag.username = "Welcome!";
  194. return View("Login");
  195. }
  196. String wsUser = ConfigurationManager.AppSettings["wsUser"];
  197. String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  198. NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  199. SetWsClient(ref wsClient, Session.SessionID);
  200. if (fromDate == null)
  201. {
  202. fromDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).ToString("dd/MM/yyyy");
  203. }
  204. if (toDate == null)
  205. {
  206. toDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).ToString("dd/MM/yyyy");
  207. }
  208. NEduService.reportRes res = wsClient.wsGetReportGeneral(wsUser, wsPassword, fromDate, toDate);
  209. //List<NEduService.reportObj> listTemp = new List<NEduService.reportObj>();
  210. return View("GeneralReport", res.listReport);
  211. }
  212. public ActionResult GetGeneralReport(string fromDate, string toDate)
  213. {
  214. if (Session["user"] == null)
  215. {
  216. ViewBag.username = "Welcome!";
  217. return View("Login");
  218. }
  219. String wsUser = ConfigurationManager.AppSettings["wsUser"];
  220. String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  221. NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  222. SetWsClient(ref wsClient, Session.SessionID);
  223. NEduService.reportRes res = wsClient.wsGetReportGeneral(wsUser, wsPassword, fromDate, toDate);
  224. //List<NEduService.reportObj> listTemp = new List<NEduService.reportObj>();
  225. return View("GeneralReport", res.listReport);
  226. }
  227. //[HttpPost]
  228. //public ActionResult CreateCourseAction(CourseModel model, HttpPostedFileBase imageAvatar, HttpPostedFileBase imageBanner)
  229. //{
  230. // if (Session["user"] == null)
  231. // {
  232. // ViewBag.username = "Welcome!";
  233. // return View("Login");
  234. // }
  235. // ViewBag.username = "Welcome, " + (Session["user"] as String);
  236. // String wsUser = ConfigurationManager.AppSettings["wsUser"];
  237. // String wsPassword = ConfigurationManager.AppSettings["wsPassword"];
  238. // NEduService.WsNEduClient wsClient = new NEduService.WsNEduClient();
  239. // SetWsClient(ref wsClient, Session.SessionID);
  240. // NEduService.responseLoad res = wsClient.wsLoadCategory(wsUser, wsPassword);
  241. // List<SelectListItem> provinceItems = new List<SelectListItem>();
  242. // List<SelectListItem> eventTypeItems = new List<SelectListItem>();
  243. // foreach (NEduService.provinces pro in res.listProvince)
  244. // {
  245. // provinceItems.Add(new SelectListItem { Text = pro.name, Value = pro.id.ToString() });
  246. // }
  247. // foreach (NEduService.eventTypes eventType in res.listEventType)
  248. // {
  249. // eventTypeItems.Add(new SelectListItem { Text = eventType.name, Value = eventType.id.ToString() });
  250. // }
  251. // if (model == null || model.eventDetail == null)
  252. // {
  253. // string[] langs = Request.UserLanguages;
  254. // model = new CourseModel();
  255. // model.listEventType = eventTypeItems;
  256. // model.listProvince = provinceItems;
  257. // return RedirectToAction("CourseListAdmin");// (null, null, null);
  258. // }
  259. // else
  260. // {
  261. // String pathSvImg = "~/Content/img/event/";
  262. // String pathImgRel = "../../Content/img/event/";
  263. // String imgAvatar = "";
  264. // String imgFull = "";
  265. // String now = DateTime.Now.ToString("yyyyMMddHHmmss");
  266. // model.listEventType = eventTypeItems;
  267. // model.listProvince = provinceItems;
  268. // // check image upload
  269. // if (fileAvatar != null)
  270. // {
  271. // string pic = now + "_" + Path.GetFileName(fileAvatar.FileName);
  272. // string path = Path.Combine(Server.MapPath(pathSvImg), pic);
  273. // // file is uploaded
  274. // fileAvatar.SaveAs(path);
  275. // // save the image path path to the database or you can send image
  276. // // directly to database
  277. // // in-case if you want to store byte[] ie. for DB
  278. // using (MemoryStream ms = new MemoryStream())
  279. // {
  280. // fileAvatar.InputStream.CopyTo(ms);
  281. // byte[] array = ms.GetBuffer();
  282. // }
  283. // imgAvatar = Path.Combine(pathImgRel, pic);
  284. // model.eventDetail.image_avatar = imgAvatar;
  285. // }
  286. // if (fileFullImg != null)
  287. // {
  288. // string pic = now + "_" + Path.GetFileName(fileFullImg.FileName);
  289. // string path = Path.Combine(Server.MapPath(pathSvImg), pic);
  290. // // file is uploaded
  291. // fileFullImg.SaveAs(path);
  292. // // save the image path path to the database or you can send image
  293. // // directly to database
  294. // // in-case if you want to store byte[] ie. for DB
  295. // using (MemoryStream ms = new MemoryStream())
  296. // {
  297. // fileFullImg.InputStream.CopyTo(ms);
  298. // byte[] array = ms.GetBuffer();
  299. // }
  300. // imgFull = Path.Combine(pathImgRel, pic);
  301. // model.eventDetail.image_full = imgFull;
  302. // }
  303. // DateTime startTime = DateTime.ParseExact(model.eventDetail.start_time, "dd/MM/yyyy HH:mm", null);
  304. // DateTime endTime = DateTime.ParseExact(model.eventDetail.end_time, "dd/MM/yyyy HH:mm", null);
  305. // DateTime scheduleTime = DateTime.ParseExact(model.eventDetail.schedule_time, "dd/MM/yyyy HH:mm", null);
  306. // if (savemode == "-1")
  307. // {
  308. // model.eventDetail.status = -1;
  309. // }
  310. // else
  311. // {
  312. // model.eventDetail.status = 1;
  313. // }
  314. // long? course_id = Session["course_id"] as long?;
  315. // if (course_id == null)
  316. // {
  317. // // create event
  318. // NEduService.response res2 = wsClient.wsCreateEvent(
  319. // wsUser,
  320. // wsPassword,
  321. // model.eventDetail.name,
  322. // model.eventDetail.name_fr,
  323. // model.eventDetail.url,
  324. // model.eventDetail.event_type_id.ToString(),
  325. // model.eventDetail.province_id.ToString(),
  326. // model.eventDetail.place,
  327. // model.eventDetail.place_fr,
  328. // startTime.ToString("yyyMMddHHmmss"),
  329. // endTime.ToString("yyyMMddHHmmss"),
  330. // scheduleTime.ToString("yyyMMddHHmmss"),
  331. // model.eventDetail.image_avatar,
  332. // model.eventDetail.image_full,
  333. // model.eventDetail.event_content,
  334. // model.eventDetail.event_content_fr,
  335. // model.eventDetail.htmlContent,
  336. // model.eventDetail.htmlContentFr,
  337. // model.eventDetail.fee.ToString(),
  338. // model.eventDetail.status + ""
  339. // );
  340. // if (res2.errorCode == "0")
  341. // {
  342. // string alert = "Success create new event!";
  343. // ViewBag.AlertCss = "alert-success";
  344. // return RedirectToAction("CourseListAdmin", new { alert = alert });
  345. // }
  346. // else
  347. // {
  348. // string alert = "Error create event: " + res2.content;
  349. // ViewBag.AlertCss = "alert-danger";
  350. // return RedirectToAction("CourseListAdmin", new { alert = alert });
  351. // }
  352. // }
  353. // else
  354. // {
  355. // // update event
  356. // NEduService.response res2 = wsClient.wsUpdateEvent(
  357. // wsUser,
  358. // wsPassword,
  359. // course_id.Value.ToString(),
  360. // model.eventDetail.name,
  361. // model.eventDetail.name_fr,
  362. // model.eventDetail.url,
  363. // model.eventDetail.event_type_id.ToString(),
  364. // model.eventDetail.province_id.ToString(),
  365. // model.eventDetail.place,
  366. // model.eventDetail.place_fr,
  367. // startTime.ToString("yyyMMddHHmmss"),
  368. // endTime.ToString("yyyMMddHHmmss"),
  369. // scheduleTime.ToString("yyyMMddHHmmss"),
  370. // model.eventDetail.image_avatar,
  371. // model.eventDetail.image_full,
  372. // model.eventDetail.event_content,
  373. // model.eventDetail.event_content_fr,
  374. // model.eventDetail.htmlContent,
  375. // model.eventDetail.htmlContentFr,
  376. // model.eventDetail.fee.ToString(),
  377. // model.eventDetail.status + ""
  378. // );
  379. // if (res2.errorCode == "0")
  380. // {
  381. // string alert = "Success edit 1 event!";
  382. // ViewBag.AlertCss = "alert-success";
  383. // return RedirectToAction("CourseListAdmin", new { alert = alert });
  384. // }
  385. // else
  386. // {
  387. // string alert = "Error edit event: " + res2.content;
  388. // ViewBag.AlertCss = "alert-danger";
  389. // return RedirectToAction("CourseListAdmin", new { alert = alert });
  390. // }
  391. // }
  392. // }
  393. //}
  394. // GET: Admin/Details/5
  395. public ActionResult Details(int id)
  396. {
  397. return View();
  398. }
  399. // GET: Admin/Create
  400. public ActionResult Create()
  401. {
  402. return View();
  403. }
  404. // POST: Admin/Create
  405. [HttpPost]
  406. public ActionResult Create(FormCollection collection)
  407. {
  408. try
  409. {
  410. // TODO: Add insert logic here
  411. return RedirectToAction("Index");
  412. }
  413. catch
  414. {
  415. return View();
  416. }
  417. }
  418. // GET: Admin/Edit/5
  419. public ActionResult Edit(int id)
  420. {
  421. return View();
  422. }
  423. // POST: Admin/Edit/5
  424. [HttpPost]
  425. public ActionResult Edit(int id, FormCollection collection)
  426. {
  427. try
  428. {
  429. // TODO: Add update logic here
  430. return RedirectToAction("Index");
  431. }
  432. catch
  433. {
  434. return View();
  435. }
  436. }
  437. // GET: Admin/Delete/5
  438. public ActionResult Delete(int id)
  439. {
  440. return View();
  441. }
  442. // POST: Admin/Delete/5
  443. [HttpPost]
  444. public ActionResult Delete(int id, FormCollection collection)
  445. {
  446. try
  447. {
  448. // TODO: Add delete logic here
  449. return RedirectToAction("Index");
  450. }
  451. catch
  452. {
  453. return View();
  454. }
  455. }
  456. private void SetWsClient(ref NEduService.WsNEduClient wsClient, String sessionId)
  457. {
  458. int lastNum = sessionId[sessionId.Length - 1];
  459. if (lastNum % 2 == 0)
  460. {
  461. wsClient.Endpoint.Address = new EndpointAddress(ConfigurationManager.AppSettings["wsUrl1"]);
  462. }
  463. else
  464. {
  465. wsClient.Endpoint.Address = new EndpointAddress(ConfigurationManager.AppSettings["wsUrl2"]);
  466. }
  467. }
  468. }
  469. }