Edit.cshtml.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Application.Abstractions.Messaging;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.AspNetCore.Mvc.RazorPages;
  4. using SharedKernel.Extensions;
  5. namespace Admin.Pages.Forum.Comments.List;
  6. public class EditModel(IMediator mediator) : PageModel
  7. {
  8. public string? QueryString { get; set; }
  9. public int CommentID { get; set; }
  10. public int BoardID { get; set; }
  11. public string BoardName { get; set; } = "";
  12. public int PostID { get; set; }
  13. public string PostSubject { get; set; } = "";
  14. public string CommentContent { get; set; } = "";
  15. public string? Name { get; set; }
  16. public string? SID { get; set; }
  17. public bool IsReply { get; set; }
  18. public bool IsSecret { get; set; }
  19. public bool IsDeleted { get; set; }
  20. public int Likes { get; set; }
  21. public int Dislikes { get; set; }
  22. public int Reports { get; set; }
  23. public int Replies { get; set; }
  24. public string? UpdatedAt { get; set; }
  25. public string CreatedAt { get; set; } = "";
  26. public async Task OnGetAsync(int id, CancellationToken ct)
  27. {
  28. var result = await mediator.Send(new GetComment.Query(id), ct);
  29. if (result.IsFailure)
  30. {
  31. TempData["ErrorMessages"] = result.Error.Description;
  32. QueryString = Request.QueryString.ToString();
  33. return;
  34. }
  35. var data = result.Value;
  36. CommentID = data.ID;
  37. BoardID = data.BoardID;
  38. BoardName = data.BoardName;
  39. PostID = data.PostID;
  40. PostSubject = data.PostSubject;
  41. CommentContent = data.Content;
  42. Name = data.Name;
  43. SID = data.SID;
  44. IsReply = data.IsReply;
  45. IsSecret = data.IsSecret;
  46. IsDeleted = data.IsDeleted;
  47. Likes = data.Likes;
  48. Dislikes = data.Dislikes;
  49. Reports = data.Reports;
  50. Replies = data.Replies;
  51. UpdatedAt = data.UpdatedAt.GetDateAt() ?? "-";
  52. CreatedAt = data.CreatedAt.GetDateAt();
  53. QueryString = Request.QueryString.ToString();
  54. }
  55. public async Task<IActionResult> OnPostDeleteAsync(int id, CancellationToken ct)
  56. {
  57. try
  58. {
  59. await mediator.Send(new DeleteComment.Command([id]), ct);
  60. TempData["SuccessMessage"] = "댓글이 삭제되었습니다.";
  61. return RedirectToPage("/Forum/Comments/List/Index");
  62. }
  63. catch (Exception e)
  64. {
  65. TempData["ErrorMessages"] = e.Message;
  66. return Redirect($"/Forum/Comments/List/Edit/{id}{Request.QueryString}");
  67. }
  68. }
  69. }