DBSaveRequestHandler.cs 1008 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using ETModel;
  3. namespace ETHotfix
  4. {
  5. [MessageHandler(AppType.DB)]
  6. public class DBSaveRequestHandler : AMRpcHandler<DBSaveRequest, DBSaveResponse>
  7. {
  8. protected override void Run(Session session, DBSaveRequest message, Action<DBSaveResponse> reply)
  9. {
  10. RunAsync(session, message, reply).NoAwait();
  11. }
  12. protected async ETVoid RunAsync(Session session, DBSaveRequest message, Action<DBSaveResponse> reply)
  13. {
  14. DBSaveResponse response = new DBSaveResponse();
  15. try
  16. {
  17. DBCacheComponent dbCacheComponent = Game.Scene.GetComponent<DBCacheComponent>();
  18. if (string.IsNullOrEmpty(message.CollectionName))
  19. {
  20. message.CollectionName = message.Component.GetType().Name;
  21. }
  22. if (message.NeedCache)
  23. {
  24. dbCacheComponent.AddToCache(message.Component, message.CollectionName);
  25. }
  26. await dbCacheComponent.Add(message.Component, message.CollectionName);
  27. reply(response);
  28. }
  29. catch (Exception e)
  30. {
  31. ReplyError(response, e, reply);
  32. }
  33. }
  34. }
  35. }