using GreenTree.Nachtragsmanagement.Core.Authentication; using GreenTree.Nachtragsmanagement.Services.User; using GreenTree.Nachtragsmanagement.Web.Models.Admin.User; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace GreenTree.Nachtragsmanagement.Web.Controllers { public class AdminController : Controller { private readonly IUserService _userService; private readonly IUserHelper _userHelper; public AdminController( IUserService userService, IUserHelper userHelper) { _userService = userService; _userHelper = userHelper; } #region Users // GET: Admin Users public ActionResult ViewUsers() { var users = _userService.GetAllUsers(); var userModels = users .Select(u => UserDataModel.FromUser(u, false)); return View("~/Views/Admin/Users/View.cshtml", userModels); } public ActionResult EditUser(int id = -1) { var user = _userService.GetUserById(id); var userModel = UserDataModel.FromUser(user, true); return PartialView("~/Views/Admin/Users/_UserEditPartial.cshtml", userModel); } [HttpPost, ValidateInput(false)] public ActionResult EditUser(UserDataModel userModel) { if (!ModelState.IsValid) return PartialView("~/Views/Admin/Users/_UserEditPartial.cshtml", userModel); if (userModel.Id == -1) { var user = userModel.ToUser(); _userService.InsertUser(user); } else { var user = _userService.GetUserById(userModel.Id); user.CustomNumber = userModel.CustomerNumber; user.Forename = userModel.Forename; user.Lastname = userModel.Lastname; user.MailAddress = userModel.MailAddress; _userService.UpdateUser(user); } return RedirectToAction("ViewUsers"); } public ActionResult DeleteUser(int id) { var user = _userService.GetUserById(id); if (user != null) _userService.DeleteUser(user); return RedirectToAction("ViewUsers"); } #endregion #region Roles // GET: Admin Roles public ActionResult ViewRoles() { return View("~/Views/Admin/Roles/View.cshtml"); } #endregion #region Plugins // GET: Admin Plugins public ActionResult ViewPlugins() { return View("~/Views/Admin/Plugins/View.cshtml"); } #endregion } }