EmployeeController.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using GreenTree.Strohrmann.ERP.Core.Domain.Business;
  6. using GreenTree.Strohrmann.ERP.Domain.Model;
  7. using GreenTree.Strohrmann.ERP.Web.Extension;
  8. using GreenTree.Strohrmann.ERP.Web.Models.Business;
  9. using Microsoft.AspNetCore.Http;
  10. using Microsoft.AspNetCore.Mvc;
  11. using Microsoft.AspNetCore.Mvc.Rendering;
  12. namespace GreenTree.Strohrmann.ERP.Web.Controllers
  13. {
  14. public class EmployeeController : Controller
  15. {
  16. #region DI fields
  17. // The global DbContext
  18. private readonly ERPDbContext _eRPDbContext;
  19. #endregion
  20. #region Ctor
  21. /// <summary>
  22. /// Initializes a new instance of the EmployeeController class
  23. /// </summary>
  24. /// <param name="eRPDbContext">Global DbContext.</param>
  25. public EmployeeController(ERPDbContext eRPDbContext)
  26. {
  27. _eRPDbContext = eRPDbContext;
  28. }
  29. #endregion
  30. #region Actions
  31. // GET: EmployeeController
  32. public ActionResult Index()
  33. {
  34. var employees = _eRPDbContext.Employees
  35. .ToList()
  36. .Select(e => new EmployeeModel(e));
  37. return View(employees);
  38. }
  39. // GET: EmployeeController/Details/5
  40. public ActionResult Details(int id)
  41. {
  42. var employee = _eRPDbContext.Employees
  43. .FirstOrDefault(e => e.Id == id);
  44. var employeeModel = new EmployeeModel(employee);
  45. return View(employeeModel);
  46. }
  47. // GET: EmployeeController/Create
  48. public ActionResult Create()
  49. {
  50. ViewData.AddSelectList("AvailableDegrees", _eRPDbContext.EmployeeDegrees, m => m.Id, m => m.Name);
  51. return View();
  52. }
  53. // POST: EmployeeController/Create
  54. [HttpPost]
  55. [ValidateAntiForgeryToken]
  56. public ActionResult Create(EmployeeModel model)
  57. {
  58. if (!ModelState.IsValid)
  59. {
  60. ViewData.AddSelectList("AvailableDegrees", _eRPDbContext.EmployeeDegrees, m => m.Id, m => m.Name);
  61. return View(model);
  62. }
  63. var employee = new Employee
  64. {
  65. Firstname = model.Firstname,
  66. Lastname = model.Lastname,
  67. Birthdate = model.Birthdate,
  68. MailAddress = model.MailAddress,
  69. EmployeeDegree = _eRPDbContext.EmployeeDegrees.Find(model.EmployeeDegree.Id),
  70. CreatedBy = User.Identity.Name,
  71. CreatedOn = DateTime.Now
  72. };
  73. _eRPDbContext.Employees.Add(employee);
  74. _eRPDbContext.SaveChanges();
  75. return RedirectToAction(nameof(Index));
  76. }
  77. // GET: EmployeeController/Edit/5
  78. public ActionResult Edit(int id)
  79. {
  80. ViewData.AddSelectList("AvailableDegrees", _eRPDbContext.EmployeeDegrees, m => m.Id, m => m.Name);
  81. var employee = _eRPDbContext.Employees
  82. .FirstOrDefault(c => c.Id == id);
  83. var employeeModel = new EmployeeModel(employee);
  84. return View(employeeModel);
  85. }
  86. // POST: EmployeeController/Edit/5
  87. [HttpPost]
  88. [ValidateAntiForgeryToken]
  89. public ActionResult Edit(int id, EmployeeModel model)
  90. {
  91. if (!ModelState.IsValid)
  92. {
  93. ViewData.AddSelectList("AvailableDegrees", _eRPDbContext.EmployeeDegrees, m => m.Id, m => m.Name);
  94. return View(model);
  95. }
  96. var employee = _eRPDbContext.Employees
  97. .FirstOrDefault(u => u.Id == id);
  98. employee.Firstname = model.Firstname;
  99. employee.Lastname = model.Lastname;
  100. employee.Birthdate = model.Birthdate;
  101. employee.MailAddress = model.MailAddress;
  102. employee.EmployeeDegree = _eRPDbContext.EmployeeDegrees.Find(model.EmployeeDegree.Id);
  103. employee.ChangedBy = User.Identity.Name;
  104. employee.ChangedOn = DateTime.Now;
  105. _eRPDbContext.SaveChanges();
  106. return RedirectToAction(nameof(Index));
  107. }
  108. // POST: EmployeeController/Delete/5
  109. [HttpPost]
  110. [ValidateAntiForgeryToken]
  111. public ActionResult Delete(int id, IFormCollection collection)
  112. {
  113. var employee = _eRPDbContext.Employees
  114. .FirstOrDefault(c => c.Id == id);
  115. _eRPDbContext.Employees.Remove(employee);
  116. _eRPDbContext.SaveChanges();
  117. return RedirectToAction(nameof(Index));
  118. }
  119. #endregion
  120. #region Helper
  121. #endregion
  122. }
  123. }