Advertisement
Guest User

Untitled

a guest
May 11th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.82 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using Architecture.DataModels.Constants;
  4. using Architecture.Services.Interface;
  5. using Assets.Scripts.Architecture.Services.Interface;
  6. using Assets.Scripts.DataModels;
  7. using Assets.Scripts.DataModels.BackendRequest;
  8. using Assets.Scripts.NetworkingHelpers.Responses;
  9. using Assets.Scripts.Services.Interfaces;
  10. using UnityEngine;
  11.  
  12. namespace Architecture.Services.Implementation
  13. {
  14.     class InternalApiService : IInternalApiService
  15.     {
  16.         private INetworkingService _networkingService;
  17.         private INetworkingClientDataService _networkingClientDataService;
  18.         private IParseService _parseService;
  19.         private IProfileContainer _profileContainer;
  20.         private IFileService _fileService;
  21.  
  22.         public event Action<Token> OnInternalApiRequestLoginAsyncSucces = delegate { };
  23.         public event Action<string> OnInternalApiRequestLoginAsyncFailed = delegate { };
  24.  
  25.         public event Action<string> OnInternalApiRequestUserRegistrationAsyncSucces = delegate { };
  26.         public event Action<string> OnInternalApiRequestUserRegistrationAsyncFailed = delegate { };
  27.  
  28.         public event Action<string> OnInternalApiRequestAdminRegistrationAsyncSucces = delegate { };
  29.         public event Action<string> OnInternalApiRequestAdminRegistrationAsyncFailed = delegate { };
  30.  
  31.         public event Action<string> OnInternalApiPostProcessPointFileAsyncSucces = delegate { };
  32.         public event Action<string> OnInternalApiPostProcessPointFileAsyncFailed = delegate { };
  33.  
  34.         public event Action<List<TouristlCityData>> OnInternalApiPostGetCityPointsAsyncSucces = delegate { };
  35.         public event Action<string> OnInternalApiPostGetCityPointsAsyncFailed = delegate { };
  36.  
  37.         public event Action<string> OnInternalApiPutUploadFileAsyncSucces = delegate { };
  38.         public event Action<string> OnInternalApiPutUploadFileAsyncFailed = delegate { };
  39.  
  40.         public event Action<Texture2D, string> OnInternalApiGetPictureAndCasheAsyncSucces = delegate { };
  41.         public event Action<string> OnInternalApiGetPictureAndCasheAsyncFailed = delegate { };
  42.  
  43.         public InternalApiService(INetworkingService networkingService, INetworkingClientDataService networkingClientDataService, IParseService parseService, IProfileContainer profileContainer, IFileService fileService)
  44.         {
  45.             _networkingService = networkingService;
  46.             _networkingClientDataService = networkingClientDataService;
  47.             _parseService = parseService;
  48.             _profileContainer = profileContainer;
  49.             _fileService = fileService;
  50.  
  51.             InitSubscribtions();
  52.         }
  53.  
  54.         private void InitSubscribtions()
  55.         {
  56.             UnityEngine.Debug.Log("Inited");
  57.             _networkingService.OnPostLoginAsyncSucces += HandleSuccesLogin;
  58.             _networkingService.OnPostLoginAsyncFailed += HandleFailedLogin;
  59.  
  60.             _networkingService.OnPostUserRegistrationAsyncSucces += HandleSuccesUserRegistration;
  61.             _networkingService.OnPostUserRegistrationAsyncFailed += HandleFailedUserRegistration;
  62.  
  63.             _networkingService.OnPostAdminRegistrationAsyncSucces += HandleSuccesAdminRegistration;
  64.             _networkingService.OnPostAdminRegistrationAsyncFailed += HandleFailedAdminRegistration;
  65.  
  66.             _networkingService.OnPostProcessPointFileAsyncSucces += HandleSuccesProcessPointFile;
  67.             _networkingService.OnPostProcessPointFileAsyncFailed += HandleFailedProcessPointFile;
  68.            
  69.             _networkingService.OnPostGetCityPointsAsyncSucces += HandleSuccesGetCityPoints;
  70.             _networkingService.OnPostGetCityPointsAsyncFailed += HandleFailedGetCityPoints;
  71.  
  72.             _networkingService.OnPutUploadFileAsyncSucces += HandleSuccesPutUploadFile;
  73.             _networkingService.OnPutUploadFileAsyncFailed += HandleFailedPutUploadFile;
  74.  
  75.             _networkingService.OnGetPictureAsyncSucces += HandleSuccesGetPicture;
  76.             _networkingService.OnGetPictureAsyncFailed += HandleFailedGetPicture;
  77.         }
  78.  
  79.         public void RequestLogin(string usernameParam, string passwordParam)
  80.         {
  81.             UnityEngine.Debug.Log("RequestLogin");
  82.             var body = new LogingAndPasswordContainer
  83.             {
  84.                 username = usernameParam,
  85.                 password = passwordParam
  86.             };
  87.             string serializebody = _parseService.SerializeObject(body);
  88.             _networkingService.PostLoginAsync(BackendUries.LoginUri, _networkingClientDataService.GetLoginHeader, serializebody);
  89.         }
  90.  
  91.         public void RequestUserRegistration(string usernameParam, string passwordParam)
  92.         {
  93.             UnityEngine.Debug.Log("RequestUserRegistration");
  94.             var body = new LogingAndPasswordContainer
  95.             {
  96.                 username = usernameParam,
  97.                 password = passwordParam
  98.             };
  99.             string serializebody = _parseService.SerializeObject(body);
  100.             _networkingService.PostUserRegistrationAsync(BackendUries.UserRegistrationUri, _networkingClientDataService.GetLoginHeader, serializebody);
  101.         }
  102.  
  103.         public void RequestAdminRegistration(string usernameParam, string passwordParam)
  104.         {
  105.             UnityEngine.Debug.Log("RequestAdminRegistration");
  106.             var body = new LogingAndPasswordContainer
  107.             {
  108.                 username = usernameParam,
  109.                 password = passwordParam
  110.             };
  111.             string serializebody = _parseService.SerializeObject(body);
  112.             _networkingService.PostAdminRegistrationAsync(BackendUries.AdminRegistrationUri, _networkingClientDataService.GetLoginHeaderWithToken, serializebody);
  113.         }
  114.  
  115.         public void PostProcessPointFile(string countryCode, string cityName, List<string> filenames)
  116.         {
  117.             UnityEngine.Debug.Log("PostProcessPointFile");
  118.             var body = new ProcessPointContainer
  119.             {
  120.                 country = countryCode,
  121.                 city = cityName,
  122.                 filenames = filenames
  123.             };
  124.             string serializebody = _parseService.SerializeObject(body);
  125.             _networkingService.PostProcessPointFileAsync(BackendUries.ProcessPointFileUri, _networkingClientDataService.GetLoginHeaderWithToken, serializebody);
  126.         }
  127.  
  128.         public void PostGetCityPoints(string countryCode, string cityName)
  129.         {
  130.             UnityEngine.Debug.Log("PostGetCityPoints");
  131.             var body = new LocationPostContainer
  132.             {
  133.                 code = countryCode,
  134.                 city = cityName
  135.             };
  136.             var serializebody = _parseService.SerializeObject(body);
  137.             _networkingService.PostGetCityPointsAsync(BackendUries.GetCityPointsUri, _networkingClientDataService.GetLoginHeaderWithToken, serializebody, countryCode);
  138.         }
  139.  
  140.         public void PutUploadFile(string filepath)
  141.         {
  142.             UnityEngine.Debug.Log("PutUploadFile");
  143.             var file = _fileService.ReadFileAsBytes(filepath);
  144.             _networkingService.PutUploadFileAsync(BackendUries.UploadFileUri, _networkingClientDataService.GetTokenHeader, file);
  145.         }
  146.  
  147.         public void GetPictureAndCashe(string uri, string fullFilePath)
  148.         {
  149.             UnityEngine.Debug.Log("GetPictureAndCashe");
  150.             _networkingService.GetPictureOnMarkerAsync(fullFilePath, uri);
  151.         }
  152.  
  153.         #region ResponceHandlers
  154.         private void HandleSuccesLogin(string result)
  155.         {
  156.             UnityEngine.Debug.Log("HandleSuccesLogin");
  157.             var resultInfo = _parseService.ParseRawResponseTo<Token>(result);
  158.             _profileContainer.UserToken = resultInfo;
  159.             OnInternalApiRequestLoginAsyncSucces?.Invoke(resultInfo);
  160.         }
  161.  
  162.         private void HandleFailedLogin(string result)
  163.         {
  164.             UnityEngine.Debug.Log("HandleFailedLogin");
  165.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  166.             OnInternalApiRequestLoginAsyncFailed?.Invoke(resultInfo);
  167.         }
  168.  
  169.         private void HandleSuccesUserRegistration(string result)
  170.         {
  171.             UnityEngine.Debug.Log("HandleSuccesUserRegistration");
  172.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  173.             OnInternalApiRequestUserRegistrationAsyncSucces?.Invoke(resultInfo);
  174.         }
  175.         private void HandleFailedUserRegistration(string result)
  176.         {
  177.             UnityEngine.Debug.Log("HandleFailedUserRegistration");
  178.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  179.             OnInternalApiRequestUserRegistrationAsyncFailed?.Invoke(resultInfo);
  180.         }
  181.  
  182.         private void HandleSuccesAdminRegistration(string result)
  183.         {
  184.             UnityEngine.Debug.Log("HandleSuccesAdminRegistration");
  185.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  186.             OnInternalApiRequestAdminRegistrationAsyncSucces?.Invoke(resultInfo);
  187.         }
  188.  
  189.         private void HandleFailedAdminRegistration(string result)
  190.         {
  191.             UnityEngine.Debug.Log("HandleFailedAdminRegistration");
  192.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  193.             OnInternalApiRequestAdminRegistrationAsyncFailed?.Invoke(resultInfo);
  194.         }
  195.  
  196.         private void HandleSuccesProcessPointFile(string result)
  197.         {
  198.             UnityEngine.Debug.Log("HandleSuccesProcessPointFile");
  199.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  200.             OnInternalApiPostProcessPointFileAsyncSucces?.Invoke(resultInfo);
  201.         }
  202.  
  203.         private void HandleFailedProcessPointFile(string result)
  204.         {
  205.             UnityEngine.Debug.Log("HandleFailedProcessPointFile");
  206.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  207.             OnInternalApiPostProcessPointFileAsyncFailed?.Invoke(resultInfo);
  208.         }
  209.  
  210.         private void HandleSuccesGetCityPoints(string result)
  211.         {
  212.             //TODO this api always return only ONE EXACTLY CITY, so we should invoke NOT A LIST, BUT A CITY;
  213.             UnityEngine.Debug.Log("HandleSuccesGetCityPoints");
  214.             var resultInfo = _parseService.ParseRawResponseTo<List<TouristlCityData>>(result);
  215.             OnInternalApiPostGetCityPointsAsyncSucces?.Invoke(resultInfo);
  216.         }
  217.         private void HandleFailedGetCityPoints(string result)
  218.         {
  219.             UnityEngine.Debug.Log("HandleFailedGetCityPoints");
  220.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  221.             OnInternalApiPostGetCityPointsAsyncFailed?.Invoke(resultInfo);
  222.         }
  223.         private void HandleSuccesPutUploadFile(string result)
  224.         {
  225.             UnityEngine.Debug.Log("HandleSuccesPutUploadFile");
  226.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  227.             OnInternalApiPutUploadFileAsyncSucces?.Invoke(resultInfo);
  228.         }
  229.         private void HandleFailedPutUploadFile(string result)
  230.         {
  231.             UnityEngine.Debug.Log("HandleFailedPutUploadFile");
  232.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  233.             OnInternalApiPutUploadFileAsyncFailed?.Invoke(resultInfo);
  234.         }
  235.         private void HandleSuccesGetPicture(Texture2D picture, string fullFilePath)
  236.         {
  237.             UnityEngine.Debug.Log("HandleSuccesGetPicture");
  238.             _fileService.SaveFile(picture.EncodeToJPG(), fullFilePath);
  239.             OnInternalApiGetPictureAndCasheAsyncSucces?.Invoke(picture, fullFilePath);
  240.         }
  241.         private void HandleFailedGetPicture(string result)
  242.         {
  243.             UnityEngine.Debug.Log("HandleFailedGetPicture");
  244.             var resultInfo = _parseService.ParseRawResponseTo<string>(result);
  245.             OnInternalApiGetPictureAndCasheAsyncFailed?.Invoke(resultInfo);
  246.         }
  247.         #endregion
  248.     }
  249. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement