| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- using Domain.Entities.Forum.Boards;
- using SharedKernel.Extensions;
- using MediatR;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.RazorPages;
- namespace Admin.Pages.Forum.Board.Meta;
- public class ExpModel(IMediator mediator) : PageModel
- {
- public int BoardID { get; set; }
- public List<(int ID, string Name)> BoardList { get; set; } = [];
- public string? QueryString { get; set; }
- [BindProperty]
- public InputModel Input { get; set; } = new();
- public sealed class InputModel
- {
- public int ID { get; set; }
- public int BoardID { get; set; }
- public bool EnableExp { get; set; }
- public bool ShowExpGuide { get; set; }
- // 경험치 지급량
- public ushort PostWriteExp { get; set; }
- public ushort CommentWriteExp { get; set; }
- public ushort FileUploadExp { get; set; }
- public short FileDownloadExp { get; set; }
- public short OtherPostReadExp { get; set; }
- public ushort OtherPostLikeExp { get; set; }
- public ushort OtherPostDisLikeExp { get; set; }
- public ushort OtherCommentLikeExp { get; set; }
- public ushort OtherCommentDisLikeExp { get; set; }
- public ushort OwnPostReadExp { get; set; }
- public ushort OwnPostLikeExp { get; set; }
- public short OwnPostDisLikeExp { get; set; }
- public ushort OwnCommentLikeExp { get; set; }
- public short OwnCommentDisLikeExp { get; set; }
- // 경험치 회수량
- public ushort PostWriteUndoExp { get; set; }
- public ushort CommentWriteUndoExp { get; set; }
- public ushort FileUploadUndoExp { get; set; }
- public ushort OtherPostReadUndoExp { get; set; }
- public ushort OtherPostLikeUndoExp { get; set; }
- public ushort OtherPostDisLikeUndoExp { get; set; }
- public ushort OtherCommentLikeUndoExp { get; set; }
- public ushort OtherCommentDisLikeUndoExp { get; set; }
- public ushort OwnPostReadUndoExp { get; set; }
- public ushort OwnPostLikeUndoExp { get; set; }
- public ushort OwnPostDisLikeUndoExp { get; set; }
- public ushort OwnCommentLikeUndoExp { get; set; }
- public ushort OwnCommentDisLikeUndoExp { get; set; }
- // 경험치 지급 기한
- public ushort PostWriteExpWithinDays { get; set; }
- public ushort CommentWriteExpWithinDays { get; set; }
- public ushort FileUploadExpWithinDays { get; set; }
- public ushort OtherPostReadExpWithinDays { get; set; }
- public ushort OtherPostLikeExpWithinDays { get; set; }
- public ushort OtherPostDisLikeExpWithinDays { get; set; }
- public ushort OtherCommentLikeExpWithinDays { get; set; }
- public ushort OtherCommentDisLikeExpWithinDays { get; set; }
- public ushort OwnPostReadExpWithinDays { get; set; }
- public ushort OwnPostLikeExpWithinDays { get; set; }
- public ushort OwnPostDisLikeExpWithinDays { get; set; }
- public ushort OwnCommentLikeExpWithinDays { get; set; }
- public ushort OwnCommentDisLikeExpWithinDays { get; set; }
- }
- public async Task OnGetAsync(int id, CancellationToken ct)
- {
- BoardID = id;
- QueryString = Request.QueryString.ToString();
- var boards = await mediator.Send(new SearchBoards.Query(null, null, 1, 100), ct);
- BoardList = [..boards.List.Select(c => (c.ID, c.Name))];
- var meta = await mediator.Send(new GetBoardMeta.Query(id), ct);
- Input = new InputModel
- {
- ID = meta.ID,
- BoardID = meta.BoardID,
- EnableExp = meta.Exp.EnableExp,
- ShowExpGuide = meta.Exp.ShowExpGuide,
- PostWriteExp = meta.Exp.PostWriteExp,
- CommentWriteExp = meta.Exp.CommentWriteExp,
- FileUploadExp = meta.Exp.FileUploadExp,
- FileDownloadExp = meta.Exp.FileDownloadExp,
- OtherPostReadExp = meta.Exp.OtherPostReadExp,
- OtherPostLikeExp = meta.Exp.OtherPostLikeExp,
- OtherPostDisLikeExp = meta.Exp.OtherPostDisLikeExp,
- OtherCommentLikeExp = meta.Exp.OtherCommentLikeExp,
- OtherCommentDisLikeExp = meta.Exp.OtherCommentDisLikeExp,
- OwnPostReadExp = meta.Exp.OwnPostReadExp,
- OwnPostLikeExp = meta.Exp.OwnPostLikeExp,
- OwnPostDisLikeExp = meta.Exp.OwnPostDisLikeExp,
- OwnCommentLikeExp = meta.Exp.OwnCommentLikeExp,
- OwnCommentDisLikeExp = meta.Exp.OwnCommentDisLikeExp,
- PostWriteUndoExp = meta.Exp.PostWriteUndoExp,
- CommentWriteUndoExp = meta.Exp.CommentWriteUndoExp,
- FileUploadUndoExp = meta.Exp.FileUploadUndoExp,
- OtherPostReadUndoExp = meta.Exp.OtherPostReadUndoExp,
- OtherPostLikeUndoExp = meta.Exp.OtherPostLikeUndoExp,
- OtherPostDisLikeUndoExp = meta.Exp.OtherPostDisLikeUndoExp,
- OtherCommentLikeUndoExp = meta.Exp.OtherCommentLikeUndoExp,
- OtherCommentDisLikeUndoExp = meta.Exp.OtherCommentDisLikeUndoExp,
- OwnPostReadUndoExp = meta.Exp.OwnPostReadUndoExp,
- OwnPostLikeUndoExp = meta.Exp.OwnPostLikeUndoExp,
- OwnPostDisLikeUndoExp = meta.Exp.OwnPostDisLikeUndoExp,
- OwnCommentLikeUndoExp = meta.Exp.OwnCommentLikeUndoExp,
- OwnCommentDisLikeUndoExp = meta.Exp.OwnCommentDisLikeUndoExp,
- PostWriteExpWithinDays = meta.Exp.PostWriteExpWithinDays,
- CommentWriteExpWithinDays = meta.Exp.CommentWriteExpWithinDays,
- FileUploadExpWithinDays = meta.Exp.FileUploadExpWithinDays,
- OtherPostReadExpWithinDays = meta.Exp.OtherPostReadExpWithinDays,
- OtherPostLikeExpWithinDays = meta.Exp.OtherPostLikeExpWithinDays,
- OtherPostDisLikeExpWithinDays = meta.Exp.OtherPostDisLikeExpWithinDays,
- OtherCommentLikeExpWithinDays = meta.Exp.OtherCommentLikeExpWithinDays,
- OtherCommentDisLikeExpWithinDays = meta.Exp.OtherCommentDisLikeExpWithinDays,
- OwnPostReadExpWithinDays = meta.Exp.OwnPostReadExpWithinDays,
- OwnPostLikeExpWithinDays = meta.Exp.OwnPostLikeExpWithinDays,
- OwnPostDisLikeExpWithinDays = meta.Exp.OwnPostDisLikeExpWithinDays,
- OwnCommentLikeExpWithinDays = meta.Exp.OwnCommentLikeExpWithinDays,
- OwnCommentDisLikeExpWithinDays = meta.Exp.OwnCommentDisLikeExpWithinDays
- };
- }
- public async Task<IActionResult> OnPostAsync(CancellationToken ct)
- {
- try
- {
- if (!ModelState.IsValid)
- {
- throw new Exception(ModelState.GetErrorMessages());
- }
- await mediator.Send(new UpdateBoardMeta.Command(
- Input.ID,
- Input.BoardID,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- new BoardMetaExp
- {
- EnableExp = Input.EnableExp,
- ShowExpGuide = Input.ShowExpGuide,
- PostWriteExp = Input.PostWriteExp,
- CommentWriteExp = Input.CommentWriteExp,
- FileUploadExp = Input.FileUploadExp,
- FileDownloadExp = Input.FileDownloadExp,
- OtherPostReadExp = Input.OtherPostReadExp,
- OtherPostLikeExp = Input.OtherPostLikeExp,
- OtherPostDisLikeExp = Input.OtherPostDisLikeExp,
- OtherCommentLikeExp = Input.OtherCommentLikeExp,
- OtherCommentDisLikeExp = Input.OtherCommentDisLikeExp,
- OwnPostReadExp = Input.OwnPostReadExp,
- OwnPostLikeExp = Input.OwnPostLikeExp,
- OwnPostDisLikeExp = Input.OwnPostDisLikeExp,
- OwnCommentLikeExp = Input.OwnCommentLikeExp,
- OwnCommentDisLikeExp = Input.OwnCommentDisLikeExp,
- PostWriteUndoExp = Input.PostWriteUndoExp,
- CommentWriteUndoExp = Input.CommentWriteUndoExp,
- FileUploadUndoExp = Input.FileUploadUndoExp,
- OtherPostReadUndoExp = Input.OtherPostReadUndoExp,
- OtherPostLikeUndoExp = Input.OtherPostLikeUndoExp,
- OtherPostDisLikeUndoExp = Input.OtherPostDisLikeUndoExp,
- OtherCommentLikeUndoExp = Input.OtherCommentLikeUndoExp,
- OtherCommentDisLikeUndoExp = Input.OtherCommentDisLikeUndoExp,
- OwnPostReadUndoExp = Input.OwnPostReadUndoExp,
- OwnPostLikeUndoExp = Input.OwnPostLikeUndoExp,
- OwnPostDisLikeUndoExp = Input.OwnPostDisLikeUndoExp,
- OwnCommentLikeUndoExp = Input.OwnCommentLikeUndoExp,
- OwnCommentDisLikeUndoExp = Input.OwnCommentDisLikeUndoExp,
- PostWriteExpWithinDays = Input.PostWriteExpWithinDays,
- CommentWriteExpWithinDays = Input.CommentWriteExpWithinDays,
- FileUploadExpWithinDays = Input.FileUploadExpWithinDays,
- OtherPostReadExpWithinDays = Input.OtherPostReadExpWithinDays,
- OtherPostLikeExpWithinDays = Input.OtherPostLikeExpWithinDays,
- OtherPostDisLikeExpWithinDays = Input.OtherPostDisLikeExpWithinDays,
- OtherCommentLikeExpWithinDays = Input.OtherCommentLikeExpWithinDays,
- OtherCommentDisLikeExpWithinDays = Input.OtherCommentDisLikeExpWithinDays,
- OwnPostReadExpWithinDays = Input.OwnPostReadExpWithinDays,
- OwnPostLikeExpWithinDays = Input.OwnPostLikeExpWithinDays,
- OwnPostDisLikeExpWithinDays = Input.OwnPostDisLikeExpWithinDays,
- OwnCommentLikeExpWithinDays = Input.OwnCommentLikeExpWithinDays,
- OwnCommentDisLikeExpWithinDays = Input.OwnCommentDisLikeExpWithinDays
- }), ct);
- TempData["SuccessMessage"] = "경험치 설정이 저장되었습니다.";
- }
- catch (Exception e)
- {
- TempData["ErrorMessages"] = e.Message;
- }
- return Redirect($"/Forum/Board/Meta/Exp/{Input.BoardID}{Request.QueryString}");
- }
- }
|