RegisterController.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. namespace bitforum.Controllers.Setting
  8. {
  9. [Authorize]
  10. [Route("Setting")]
  11. public class RegisterController : Controller
  12. {
  13. private readonly ILogger<RegisterController> _logger;
  14. private readonly ConfigRepository _configRepository;
  15. private readonly string _ViewPath = "~/Views/Setting/Register.cshtml";
  16. public RegisterController(ILogger<RegisterController> logger, ConfigRepository configRepository)
  17. {
  18. _logger = logger;
  19. _configRepository = configRepository;
  20. }
  21. [HttpGet("Register")]
  22. public IActionResult Index()
  23. {
  24. ViewBag.config = _configRepository.GetAll();
  25. return View(_ViewPath);
  26. }
  27. [HttpPost("Register")]
  28. public IActionResult Save(RegisterForm request)
  29. {
  30. string message;
  31. if (!ModelState.IsValid)
  32. {
  33. message = "회원가입 설정 값 저장에 실패";
  34. _logger.LogWarning(message);
  35. TempData["ErrorMessages"] = message;
  36. return View(_ViewPath, request);
  37. }
  38. Func.SaveConfig(request, _configRepository.Replace);
  39. message = "회원가입 설정 값이 정상적으로 저장되었습니다.";
  40. _logger.LogInformation(message);
  41. TempData["SuccessMessage"] = message;
  42. return RedirectToAction("Index");
  43. }
  44. [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
  45. public IActionResult Error()
  46. {
  47. return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
  48. }
  49. }
  50. }