ServerMessageController.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using NTMiner.Core.MinerServer;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Web.Http;
  5. namespace NTMiner.Controllers {
  6. // 注意该控制器不能重命名
  7. public class ServerMessageController : ApiControllerBase, IServerMessageController {
  8. [HttpPost]
  9. public DataResponse<List<ServerMessageData>> ServerMessages([FromBody]ServerMessagesRequest request) {
  10. try {
  11. DateTime timestamp = Timestamp.FromTimestamp(request.Timestamp + 1);
  12. var data = WebApiRoot.ServerMessageSet.GetServerMessages(timestamp);
  13. return DataResponse<List<ServerMessageData>>.Ok(data);
  14. }
  15. catch (Exception e) {
  16. Logger.ErrorDebugLine(e);
  17. return ResponseBase.ServerError<DataResponse<List<ServerMessageData>>>(e.Message);
  18. }
  19. }
  20. [HttpPost]
  21. public ResponseBase AddOrUpdateServerMessage([FromBody]DataRequest<ServerMessageData> request) {
  22. if (request == null || request.Data == null) {
  23. return ResponseBase.InvalidInput("参数错误");
  24. }
  25. try {
  26. if (!IsValidAdmin(request, out ResponseBase response, out _)) {
  27. return response;
  28. }
  29. VirtualRoot.Execute(new AddOrUpdateServerMessageCommand(request.Data));
  30. WebApiRoot.UpdateServerMessageTimestamp();
  31. return ResponseBase.Ok();
  32. }
  33. catch (Exception e) {
  34. Logger.ErrorDebugLine(e);
  35. return ResponseBase.ServerError(e.Message);
  36. }
  37. }
  38. [HttpPost]
  39. public ResponseBase MarkDeleteServerMessage([FromBody]DataRequest<Guid> request) {
  40. if (request == null || request.Data == Guid.Empty) {
  41. return ResponseBase.InvalidInput("参数错误");
  42. }
  43. try {
  44. if (!IsValidAdmin(request, out ResponseBase response, out _)) {
  45. return response;
  46. }
  47. VirtualRoot.Execute(new MarkDeleteServerMessageCommand(request.Data));
  48. WebApiRoot.UpdateServerMessageTimestamp();
  49. return ResponseBase.Ok();
  50. }
  51. catch (Exception e) {
  52. Logger.ErrorDebugLine(e);
  53. return ResponseBase.ServerError(e.Message);
  54. }
  55. }
  56. }
  57. }