2using System.Collections.Generic;
3using System.Runtime.CompilerServices;
5using Newtonsoft.Json.Linq;
8using UnityEngine.UIElements;
31 bool hasErrored =
false;
34 if (hasErrorSetup ==
false)
38 if (
Error.Equals(
"true", StringComparison.CurrentCultureIgnoreCase))
44 hasErrored = !
string.IsNullOrEmpty(
Error);
54 public class JoinSessionResponse : FailureResponse
61 IEnumerable<JProperty> dataPropertyEnumerator =
Data.Properties();
62 foreach (JProperty property
in dataPropertyEnumerator)
64 if (property.Name.Equals(
"SessionId", StringComparison.OrdinalIgnoreCase))
66 SessionId = JsonConvert.DeserializeObject<
int>(
property.Value.ToString());
83 return (
Error.Equals(
"true", StringComparison.CurrentCultureIgnoreCase));
89 IEnumerable<JProperty> dataPropertyEnumerator =
Data.Properties();
91 foreach (JProperty currentProperty
in dataPropertyEnumerator)
95 currentUser.UserId = currentProperty.Name;
96 currentUser.AvailableModules = JsonConvert.DeserializeObject<List<int>>(
97 currentProperty.Value.ToString()
120 [JsonProperty(PropertyName =
"userIds")]
121 public List<int>
UserIds =
new List<int>();
125 public class LoginData
157 var isSuperAdmin = !String.IsNullOrEmpty(
Role) &&
Role.Equals(
"superadmin", StringComparison.CurrentCultureIgnoreCase);
158 var isPlatformOrg =
Org !=
null && !String.IsNullOrEmpty(
Org.
Type) &&
Org.
Type.Equals(
"platform", StringComparison.CurrentCultureIgnoreCase);
159 return isPlatformOrg && isSuperAdmin;
175 public class UserAccessResponseContent : IPlatformErrorable
246 public SessionData(
float score,
float scaled,
float min,
float max,
int duration,
bool completed,
bool success)
258#if UNITY_6000_0_OR_NEWER
265 public string Name =
"";
287#if UNITY_6000_0_OR_NEWER
293 public List<OrgModuleDownload>
Downloads =
new List<OrgModuleDownload>();
299#if UNITY_6000_0_OR_NEWER
300 public event EventHandler<BindablePropertyChangedEventArgs> propertyChanged;
305 Downloads =
new List<OrgModuleDownload>();
310 Downloads =
new List<OrgModuleDownload>();
316 ID = token.Value<
int>(
"ID");
317 Name = token.Value<
string>(
"Name");
321 Details = token.Value<
string>(
"Details");
325 externalId = token.Value<
string>(
"externalId");
328 var PlayerToken = token.Value<JObject>(
"player");
330 if (PlayerToken !=
null)
335 var DownloadTokens = token.Value<JArray>(
"Downloads");
337 if (DownloadTokens !=
null)
339 foreach (JToken DownloadToken
in DownloadTokens)
347 var availableLanguages = GetValue<JArray>(token,
"availableLanguages");
349 if (availableLanguages !=
null)
351 var availableLanguagesList =
new List<string>();
353 foreach (JToken languageToken
in availableLanguages)
355 string displayName = GetValue<string>(languageToken,
"displayName");
356 if (!
string.IsNullOrEmpty(displayName))
358 availableLanguagesList.Add(displayName);
365 var industry = GetValue<string>(token,
"Industry");
366 if (!
string.IsNullOrEmpty(industry) && industry.Length > 0)
368 Industry =
char.ToUpper(industry[0]) + (industry.Length > 1 ? industry[1..] :
string.Empty);
371 var distributor = GetValue<JToken>(token,
"distributor");
372 if (distributor !=
null)
381 private T
GetValue<T>(JToken token,
string propertyName, T defaultValue =
default)
383 return token[propertyName] !=
null ? token.Value<T>(propertyName) : defaultValue;
386#if UNITY_6000_0_OR_NEWER
387 void Notify([CallerMemberName]
string property =
"")
389 propertyChanged?.Invoke(
this,
new BindablePropertyChangedEventArgs(property));
413 public void Parse(JToken token)
415 ID = token.Value<
int>(
"ID");
416 VersionID = token.Value<
int>(
"VersionID");
418 externalId = token.Value<
string>(
"externalId");
420 Version = token.Value<
string>(
"Version");
421 Platform = token.Value<
string>(
"Platform");
422 ApkName = token.Value<
string>(
"ApkName");
423 URL = token.Value<
string>(
"URL");
424 Status = token.Value<
string>(
"Status");
429 public class PlatformPlayer
436 public List<PlatformPlayerDownload>
versions =
new List<PlatformPlayerDownload>();
440 id = tokenObject.Value<
int>(
"id");
442 name = tokenObject.Value<
string>(
"name");
443 description = tokenObject.Value<
string>(
"description");
446 var versionTokens = tokenObject.Value<JArray>(
"versions");
447 if (versionTokens ==
null)
449 versionTokens =
new JArray();
452 foreach (JToken Version
in versionTokens)
454 versions.Add(
new PlatformPlayerDownload(Version));
472 id = token.Value<
int>(
"id");
474 version = token.Value<
string>(
"version");
475 status = token.Value<
string>(
"status");
476 URL = token.Value<
string>(
"URL");
477 ApkName = token.Value<
string>(
"ApkName");
478 platform = token.Value<
string>(
"platform");
AssistedLoginCode AssistedLogin
List< UserModulesData > ParsedData
LoginData(string username, string password)
bool IsPlatformSuperadmin()
OrgModuleDownload(JToken token)
bool IsAuthenticatedLaunch
string AvailableLanguages
List< OrgModuleDownload > Downloads
T GetValue< T >(JToken token, string propertyName, T defaultValue=default)
SessionData(float score, float scaled, float min, float max, int duration, bool completed, bool success)
LoginResponseContent User
List< int > AvailableModules