BasicController.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System.Diagnostics;
  2. using bitforum.Models;
  3. using bitforum.Repository;
  4. using Microsoft.AspNetCore.Authorization;
  5. using Microsoft.AspNetCore.Mvc;
  6. using bitforum.Helpers;
  7. using bitforum.Models.User;
  8. using Microsoft.AspNetCore.Identity;
  9. namespace bitforum.Controllers.Setting
  10. {
  11. [Authorize]
  12. [Route("Setting")]
  13. public class BasicController : Controller
  14. {
  15. private readonly ILogger<BasicController> _logger;
  16. private readonly ConfigRepository _configRepository;
  17. private readonly UserManager<ApplicationUser> _userManager;
  18. private readonly string _ViewPath = "~/Views/Setting/Basic.cshtml";
  19. public BasicController(ILogger<BasicController> logger, ConfigRepository configRepository, UserManager<ApplicationUser> userManager)
  20. {
  21. _logger = logger;
  22. _configRepository = configRepository;
  23. _userManager = userManager;
  24. }
  25. [HttpGet("Basic")]
  26. public IActionResult Index()
  27. {
  28. ViewBag.config = _configRepository.GetAll();
  29. // 최고 관리자
  30. ViewBag.Admin = _userManager.GetUsersInRoleAsync("Admin").Result?.ToList();
  31. return View(_ViewPath);
  32. }
  33. [HttpPost("Basic")]
  34. public IActionResult Save(BasicForm request)
  35. {
  36. string message;
  37. if (!ModelState.IsValid)
  38. {
  39. message = "기본 설정 값 저장에 실패";
  40. _logger.LogWarning(message);
  41. TempData["ErrorMessages"] = message;
  42. return View(_ViewPath, request);
  43. }
  44. Func.SaveConfig(request, _configRepository.Replace);
  45. message = "기본 설정 값이 정상적으로 저장되었습니다.";
  46. _logger.LogInformation(message);
  47. TempData["SuccessMessage"] = message;
  48. return RedirectToAction("Index");
  49. }
  50. [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
  51. public IActionResult Error()
  52. {
  53. return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
  54. }
  55. }
  56. }