ClientDataController.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 ClientDataController : ApiControllerBase, IClientDataController {
  8. #region UpdateClient
  9. [Role.User]
  10. [HttpPost]
  11. public ResponseBase UpdateClient([FromBody]UpdateClientRequest request) {
  12. if (request == null) {
  13. return ResponseBase.InvalidInput("参数错误");
  14. }
  15. try {
  16. var clientData = AppRoot.ClientDataSet.GetByObjectId(request.ObjectId);
  17. if (clientData != null && clientData.IsOwnerBy(User)) {
  18. AppRoot.ClientDataSet.UpdateClient(request.ObjectId, request.PropertyName, request.Value);
  19. }
  20. return ResponseBase.Ok();
  21. }
  22. catch (Exception e) {
  23. Logger.ErrorDebugLine(e);
  24. return ResponseBase.ServerError(e.Message);
  25. }
  26. }
  27. #endregion
  28. #region UpdateClients
  29. [Role.User]
  30. [HttpPost]
  31. public ResponseBase UpdateClients([FromBody]UpdateClientsRequest request) {
  32. if (request == null) {
  33. return ResponseBase.InvalidInput("参数错误");
  34. }
  35. try {
  36. List<string> toRemoveKeys = new List<string>();
  37. foreach (var key in request.Values.Keys) {
  38. var minerData = AppRoot.ClientDataSet.GetByObjectId(key);
  39. if (minerData == null || !minerData.IsOwnerBy(User)) {
  40. toRemoveKeys.Add(key);
  41. }
  42. }
  43. foreach (var key in toRemoveKeys) {
  44. request.Values.Remove(key);
  45. }
  46. AppRoot.ClientDataSet.UpdateClients(request.PropertyName, request.Values);
  47. return ResponseBase.Ok();
  48. }
  49. catch (Exception e) {
  50. Logger.ErrorDebugLine(e);
  51. return ResponseBase.ServerError(e.Message);
  52. }
  53. }
  54. #endregion
  55. #region RemoveClients
  56. [Role.User]
  57. [HttpPost]
  58. public ResponseBase RemoveClients([FromBody]MinerIdsRequest request) {
  59. if (request == null || request.ObjectIds == null) {
  60. return ResponseBase.InvalidInput("参数错误");
  61. }
  62. try {
  63. foreach (var objectId in request.ObjectIds) {
  64. var minerData = AppRoot.ClientDataSet.GetByObjectId(objectId);
  65. if (minerData != null && minerData.IsAdminOrOwnerBy(User)) {
  66. AppRoot.ClientDataSet.RemoveByObjectId(objectId);
  67. }
  68. }
  69. return ResponseBase.Ok();
  70. }
  71. catch (Exception e) {
  72. Logger.ErrorDebugLine(e);
  73. return ResponseBase.ServerError(e.Message);
  74. }
  75. }
  76. #endregion
  77. }
  78. }