View.cshtml.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using SharedKernel.Extensions;
  2. using MediatR;
  3. using Microsoft.AspNetCore.Mvc.RazorPages;
  4. namespace Admin.Pages.Channel.List
  5. {
  6. public class ViewModel(IMediator mediator) : PageModel
  7. {
  8. public int ID { get; set; }
  9. public int MemberID { get; set; }
  10. public string? MemberInfo { get; set; }
  11. public string SID { get; set; } = default!;
  12. public string Name { get; set; } = default!;
  13. public string? Handle { get; set; }
  14. public string YouTubeUrl { get; set; } = default!;
  15. public decimal PlatformFeeRate { get; set; }
  16. public bool IsVerified { get; set; }
  17. public bool IsActive { get; set; }
  18. public string? UpdatedAt { get; set; }
  19. public string CreatedAt { get; set; } = default!;
  20. public async Task OnGetAsync(int id, CancellationToken ct)
  21. {
  22. var result = await mediator.Send(new GetChannel.Query(id), ct);
  23. if (result is null)
  24. {
  25. return;
  26. }
  27. ID = result.ID;
  28. MemberID = result.MemberID;
  29. MemberInfo = $"[{result.MemberID}] {result.MemberEmail}, {result.MemberName ?? result.MemberSID ?? "-"}";
  30. SID = result.SID;
  31. Name = result.Name;
  32. Handle = result.Handle;
  33. YouTubeUrl = result.YouTubeUrl;
  34. PlatformFeeRate = result.PlatformFeeRate;
  35. IsVerified = result.IsVerified;
  36. IsActive = result.IsActive;
  37. UpdatedAt = result.UpdatedAt.GetDateAt();
  38. CreatedAt = result.CreatedAt.GetDateAt();
  39. }
  40. }
  41. }