25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

56 lines
1.8 KiB

  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. namespace SUISS.Cloud
  6. {
  7. public class SSPInboxController
  8. {
  9. public SSPInboxController(IFriendsController friendsController, GiftController giftController)
  10. {
  11. this._friendsController = friendsController;
  12. this._giftController = giftController;
  13. }
  14. public CloudRequest<Inbox, InboxErrors?> RefreshLists()
  15. {
  16. return new CloudRequest<Inbox, InboxErrors?>(this.CoRefreshLists());
  17. }
  18. private IEnumerator CoRefreshLists()
  19. {
  20. CloudRequest<FriendErrors?> refreshTask = this._friendsController.RefreshLists();
  21. yield return refreshTask;
  22. if (refreshTask.Error != null)
  23. {
  24. UnityEngine.Debug.LogError("Error refreshing friends list: " + refreshTask.Error);
  25. }
  26. CloudRequest<IList<IGift>, GiftErrors?> giftInboxTask = this._giftController.Inbox();
  27. yield return giftInboxTask;
  28. if (giftInboxTask.Error != null)
  29. {
  30. UnityEngine.Debug.LogError("Error retrieving gifts inbox: " + giftInboxTask.Error);
  31. }
  32. if (refreshTask.Error != null || giftInboxTask.Error != null)
  33. {
  34. if (refreshTask.Error == FriendErrors.NoInternet || giftInboxTask.Error == GiftErrors.NoInternet)
  35. {
  36. yield return new YieldError<InboxErrors?>(new InboxErrors?(InboxErrors.NoInternet));
  37. }
  38. if (giftInboxTask.Error == GiftErrors.PlayernamesNotLoggedIn)
  39. {
  40. yield return new YieldError<InboxErrors?>(new InboxErrors?(InboxErrors.PlayernamesNotLoggedIn));
  41. }
  42. yield return new YieldError<InboxErrors?>(new InboxErrors?(InboxErrors.GeneralError));
  43. }
  44. yield return new YieldResult<Inbox>(new Inbox(giftInboxTask.Result));
  45. yield break;
  46. }
  47. private IFriendsController _friendsController;
  48. private GiftController _giftController;
  49. }
  50. }