Guest User

Untitled

a guest
Jan 19th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.03 KB | None | 0 0
  1. @model IEnumerable<OverTime.Models.UserModel>
  2.  
  3. @{
  4. ViewBag.Title = "List of Users";
  5. Layout = "~/Views/Shared/_Layout.cshtml";
  6. }
  7.  
  8. <h2>List of Users</h2>
  9.  
  10. <p>
  11. @Html.ActionLink("Add User", "CreateUser")
  12. </p>
  13. <body>
  14. <table class="table">
  15. <tr>
  16. <th>
  17. @Html.DisplayNameFor(model => model.username)
  18. </th>
  19. <th>
  20. @Html.DisplayNameFor(model => model.email)
  21. </th>
  22. <th>
  23. @Html.DisplayNameFor(model => model.password)
  24. </th>
  25. <th></th>
  26. </tr>
  27.  
  28. @foreach (var item in Model)
  29. {
  30. <tr>
  31. <td>
  32. @Html.DisplayFor(modelItem => item.username)
  33. </td>
  34. <td>
  35. @Html.DisplayFor(modelItem => item.email)
  36. </td>
  37. <td>
  38. @Html.DisplayFor(modelItem => item.password)
  39. </td>
  40. <td>
  41. @Html.ActionLink("Edit", "EditUser", new { id = item.usr_Id }) |
  42. @Html.ActionLink("Details", "Details", new { id = item.usr_Id }) |
  43. @Html.ActionLink("Delete", "DeleteUser", new { id = item.usr_Id })
  44. </td>
  45. </tr>
  46. }
  47.  
  48.  
  49.  
  50. </table>
  51.  
  52. @if (Model.Pager.EndPage > 1)
  53. {
  54. <ul class="pagination">
  55. @if (Model.Pager.CurrentPage > 1)
  56. {
  57. <li>
  58. <a href="~/Home/Index">First</a>
  59. </li>
  60. <li>
  61. <a href="~/Home/List?page=@(Model.Pager.CurrentPage - 1)">Previous</a>
  62. </li>
  63. }
  64.  
  65. @for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++)
  66. {
  67. <li class="@(page == Model.Pager.CurrentPage ? "active" : "")">
  68. <a href="~/Home/List?page=@page">@page</a>
  69. </li>
  70. }
  71.  
  72. @if (Model.Pager.CurrentPage < Model.Pager.TotalPages)
  73. {
  74. <li>
  75. <a href="~/Home/List?page=@(Model.Pager.CurrentPage + 1)">Next</a>
  76. </li>
  77. <li>
  78. <a href="~/Home/List?page=@(Model.Pager.TotalPages)">Last</a>
  79. </li>
  80. }
  81. </ul>
  82. }
  83. </body>
  84.  
  85. using System;
  86. using System.Collections.Generic;
  87. using System.Linq;
  88. using System.Web;
  89. using System.Web.Mvc;
  90. using OT_lib.Interfaces;
  91. using OT_lib.BusinessLayer;
  92. using OT_lib.Entity;
  93. using OverTime.Models;
  94. using PagedList;
  95.  
  96.  
  97. namespace OverTime.Controllers
  98. {
  99. public class UserController : Controller {
  100.  
  101. [HttpGet]
  102. public ActionResult Pagination(int? page)
  103. {
  104. var dummyItems = Enumerable.Range(1, 150).Select(x => "Items" + x);
  105. var pager = new Pager(dummyItems.Count(), page);
  106.  
  107. var viewModel = new UserModel()
  108. {
  109. Items = dummyItems.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize),
  110. Pager = pager
  111. };
  112.  
  113. return View(viewModel);
  114. }
  115.  
  116. public ActionResult List(UserModel usermodel)
  117. {
  118. //UserBusinessLayer userService = new UserBusinessLayer("sqlconn");
  119.  
  120. IUserInterface userService = new UserBusinessLayer("sqlConn");
  121. List<UserEntity> list = userService.GetAllUsers();
  122. List<UserModel> listModel = new List<UserModel>();
  123.  
  124. foreach (var item in list)
  125. {
  126. listModel.Add(new UserModel()
  127. {
  128. email = item.email,
  129. password = item.password,
  130. username = item.username,
  131. usr_Id = item.usr_Id
  132.  
  133. });
  134. }
  135. return View(listModel);
  136. }
  137.  
  138. public ActionResult CreateUser()
  139. {
  140. return View();
  141. }
  142.  
  143. [HttpPost]
  144. public ActionResult CreateUser(UserModel userModel)
  145. {
  146. //UserBusinessLayer userService = new UserBusinessLayer("sqlConn");
  147.  
  148. IUserInterface userService = new UserBusinessLayer("sqlConn");
  149.  
  150. userService.CreateUser(new UserEntity()
  151. {
  152. username = userModel.username,
  153. email = userModel.email,
  154. password = userModel.password
  155. });
  156.  
  157. return RedirectToAction("List");
  158. }
  159.  
  160. public ActionResult EditUser(int id)
  161. {
  162. //UserBusinessLayer userService = new UserBusinessLayer("sqlconn");
  163.  
  164. IUserInterface userService = new UserBusinessLayer("sqlConn");
  165.  
  166. UserModel userModel = new UserModel();
  167.  
  168. try
  169. {
  170. UserEntity userEntity = userService.GetUserId(id);
  171.  
  172. userModel.usr_Id = userEntity.usr_Id;
  173. userModel.email = userEntity.email;
  174. userModel.username = userEntity.username;
  175. userModel.password = userEntity.password;
  176. }
  177. catch (Exception ex)
  178. {
  179. throw ex;
  180. }
  181.  
  182. return View(userModel);
  183. }
  184.  
  185. //Update user info
  186. [HttpPost]
  187. public ActionResult EditUser(UserModel userModel)
  188. {
  189. //UserBusinessLayer userService = new UserBusinessLayer("sqlConn");
  190.  
  191. IUserInterface userService = new UserBusinessLayer("sqlConn");
  192.  
  193. userService.EditUser(new UserEntity()
  194. {
  195. usr_Id = userModel.usr_Id,
  196. username = userModel.username,
  197. email = userModel.email,
  198. password = userModel.password
  199. });
  200.  
  201. return RedirectToAction("List");
  202. }
  203.  
  204. public ActionResult DeleteUser(int id)
  205. {
  206. //UserBusinessLayer userService = new UserBusinessLayer("sqlconn");
  207. IUserInterface userService = new UserBusinessLayer("sqlConn");
  208.  
  209. UserModel userModel = new UserModel();
  210.  
  211. try
  212. {
  213. UserEntity userEntity = userService.GetUserId(id);
  214.  
  215. userModel.usr_Id = userEntity.usr_Id;
  216. userModel.email = userEntity.email;
  217. userModel.username = userEntity.username;
  218. userModel.password = userEntity.password;
  219. }
  220. catch (Exception ex)
  221. {
  222. throw ex;
  223. }
  224.  
  225. return View(userModel);
  226. }
  227.  
  228. [HttpPost, ActionName("DeleteUser")]
  229. public ActionResult DeleteUserConfirmed(int id)
  230. {
  231. //UserBusinessLayer userService = new UserBusinessLayer("sqlconn");
  232. IUserInterface userService = new UserBusinessLayer("sqlConn");
  233.  
  234. try
  235. {
  236. userService.DeleteUser(id);
  237. }
  238. catch (Exception eDelete)
  239. {
  240. throw eDelete;
  241. }
  242.  
  243. return RedirectToAction("List");
  244. }
  245.  
  246. public ActionResult Details(int id)
  247. {
  248. //UserBusinessLayer userService = new UserBusinessLayer("sqlconn");
  249. IUserInterface userService = new UserBusinessLayer("sqlConn");
  250.  
  251. UserModel userModel = new UserModel();
  252.  
  253. try
  254. {
  255. UserEntity userEntity = userService.GetUserId(id);
  256.  
  257. userModel.usr_Id = userEntity.usr_Id;
  258. userModel.email = userEntity.email;
  259. userModel.username = userEntity.username;
  260. userModel.password = userEntity.password;
  261.  
  262. }
  263. catch (Exception ex)
  264. {
  265. throw ex;
  266. }
  267.  
  268. return View(userModel);
  269. }
  270. }
  271. }
  272.  
  273. using System;
  274. using System.Collections.Generic;
  275. using System.Linq;
  276. using System.Web;
  277. using System.ComponentModel.DataAnnotations;
  278. using System.Web.Mvc;
  279.  
  280. namespace OverTime.Models
  281. {
  282. public class UserModel
  283. {
  284. public IEnumerable<string> Items { get; set; }
  285. public Pager Pager { get; set; }
  286.  
  287. public int usr_Id { get; set; }
  288.  
  289. [Display(Name = "Username")]
  290. [Required(ErrorMessage="Username is required")]
  291. [RegularExpression(@"^[a-zA-Z0-9]+$", ErrorMessage = "user name must be combination of letters and numbers only.")]
  292. public string username { get; set; }
  293.  
  294. [Display(Name = "Email")]
  295. [Required(ErrorMessage = "Email is required")]
  296. [EmailAddress(ErrorMessage="Invalid email address")]
  297. public string email { get; set; }
  298.  
  299. [Display(Name = "Password")]
  300. [Required(ErrorMessage = "Password is required")]
  301. [Remote("CheckEmail", "Account")]
  302. public string password { get; set; }
  303.  
  304. [Display(Name = "Confirm Password")]
  305. [Required(ErrorMessage = "Confirmation of password is required")]
  306. //[Compare("password", ErrorMessage="Passwords do not match")]
  307. public string confirmPassword { get; set; }
  308. }
  309.  
  310. public class Pager
  311. {
  312. public Pager(int totalItems, int? page, int pageSize = 10)
  313. {
  314. var totalPage = (int)Math.Ceiling((decimal)totalItems / (decimal)pageSize);
  315. var currentPage = page != null ? (int)page : 1;
  316. var startPage = currentPage - 5;
  317. var endPage = currentPage + 4;
  318.  
  319. if (startPage <= 0)
  320. {
  321. endPage -= (startPage - 1);
  322. startPage = 1;
  323. }
  324. if (endPage > totalPage)
  325. {
  326. endPage = totalPage;
  327.  
  328. if (endPage > 10)
  329. {
  330. startPage = endPage - 9;
  331. }
  332. }
  333.  
  334. TotalItems = totalItems;
  335. CurrentPage = currentPage;
  336. PageSize = pageSize;
  337. TotalPages = totalPage;
  338. StartPage = startPage;
  339. EndPage = endPage;
  340.  
  341. }
  342.  
  343. public int TotalItems { get; private set; }
  344. public int CurrentPage { get; private set; }
  345. public int PageSize { get; private set; }
  346. public int TotalPages { get; private set; }
  347. public int StartPage { get; private set; }
  348. public int EndPage { get; private set; }
  349.  
  350. }
  351.  
  352.  
  353.  
  354. }
Add Comment
Please, Sign In to add comment