2using System.Collections.Generic;
3using System.Runtime.CompilerServices;
5using Newtonsoft.Json.Linq;
8using UnityEngine.UIElements;
32 bool hasErrored =
false;
35 if (hasErrorSetup ==
false)
39 if (
Error.Equals(
"true", StringComparison.CurrentCultureIgnoreCase))
45 hasErrored = !
string.IsNullOrEmpty(
Error);
55 public class JoinSessionResponse : FailureResponse
62 IEnumerable<JProperty> dataPropertyEnumerator =
Data.Properties();
63 foreach (JProperty property
in dataPropertyEnumerator)
65 if (property.Name.Equals(
"SessionId", StringComparison.OrdinalIgnoreCase))
67 SessionId = JsonConvert.DeserializeObject<
int>(
property.Value.ToString());
84 return (
Error.Equals(
"true", StringComparison.CurrentCultureIgnoreCase));
90 IEnumerable<JProperty> dataPropertyEnumerator =
Data.Properties();
92 foreach (JProperty currentProperty
in dataPropertyEnumerator)
96 currentUser.UserId = currentProperty.Name;
97 currentUser.AvailableModules = JsonConvert.DeserializeObject<List<int>>(
98 currentProperty.Value.ToString()
121 [JsonProperty(PropertyName =
"userIds")]
122 public List<int>
UserIds =
new List<int>();
126 public class LoginData
158 var isSuperAdmin = !String.IsNullOrEmpty(
Role) &&
Role.Equals(
"superadmin", StringComparison.CurrentCultureIgnoreCase);
159 var isPlatformOrg =
Org !=
null && !String.IsNullOrEmpty(
Org.
Type) &&
Org.
Type.Equals(
"platform", StringComparison.CurrentCultureIgnoreCase);
160 return isPlatformOrg && isSuperAdmin;
176 public class UserAccessResponseContent : IPlatformErrorable
247 public SessionData(
float score,
float scaled,
float min,
float max,
int duration,
bool completed,
bool success)
259#if UNITY_6000_0_OR_NEWER
266 public string Name =
"";
288#if UNITY_6000_0_OR_NEWER
294 public List<OrgModuleDownload>
Downloads =
new List<OrgModuleDownload>();
300#if UNITY_6000_0_OR_NEWER
301 public event EventHandler<BindablePropertyChangedEventArgs> propertyChanged;
306 Downloads =
new List<OrgModuleDownload>();
311 Downloads =
new List<OrgModuleDownload>();
317 ID = token.Value<
int>(
"ID");
318 Name = token.Value<
string>(
"Name");
322 Details = token.Value<
string>(
"Details");
326 externalId = token.Value<
string>(
"externalId");
329 var PlayerToken = token.Value<JObject>(
"player");
331 if (PlayerToken !=
null)
336 var DownloadTokens = token.Value<JArray>(
"Downloads");
338 if (DownloadTokens !=
null)
340 foreach (JToken DownloadToken
in DownloadTokens)
348 var availableLanguages = GetValue<JArray>(token,
"availableLanguages");
350 if (availableLanguages !=
null)
352 var availableLanguagesList =
new List<string>();
354 foreach (JToken languageToken
in availableLanguages)
356 string displayName = GetValue<string>(languageToken,
"displayName");
357 if (!
string.IsNullOrEmpty(displayName))
359 availableLanguagesList.Add(displayName);
366 var industry = GetValue<string>(token,
"Industry");
367 if (!
string.IsNullOrEmpty(industry) && industry.Length > 0)
369 Industry =
char.ToUpper(industry[0]) + (industry.Length > 1 ? industry[1..] :
string.Empty);
372 var distributor = GetValue<JToken>(token,
"distributor");
373 if (distributor !=
null)
382 private T
GetValue<T>(JToken token,
string propertyName, T defaultValue =
default)
384 return token[propertyName] !=
null ? token.Value<T>(propertyName) : defaultValue;
387#if UNITY_6000_0_OR_NEWER
388 void Notify([CallerMemberName]
string property =
"")
390 propertyChanged?.Invoke(
this,
new BindablePropertyChangedEventArgs(property));
414 public void Parse(JToken token)
416 ID = token.Value<
int>(
"ID");
417 VersionID = token.Value<
int>(
"VersionID");
419 externalId = token.Value<
string>(
"externalId");
421 Version = token.Value<
string>(
"Version");
422 Platform = token.Value<
string>(
"Platform");
423 ApkName = token.Value<
string>(
"ApkName");
424 URL = token.Value<
string>(
"URL");
425 Status = token.Value<
string>(
"Status");
429#region Platform Models
431 public class PlatformPlayer
438 public List<PlatformPlayerDownload>
versions =
new List<PlatformPlayerDownload>();
442 id = tokenObject.Value<
int>(
"id");
444 name = tokenObject.Value<
string>(
"name");
445 description = tokenObject.Value<
string>(
"description");
448 var versionTokens = tokenObject.Value<JArray>(
"versions");
449 if (versionTokens ==
null)
451 versionTokens =
new JArray();
454 foreach (JToken Version
in versionTokens)
456 versions.Add(
new PlatformPlayerDownload(Version));
474 id = token.Value<
int>(
"id");
476 version = token.Value<
string>(
"version");
477 status = token.Value<
string>(
"status");
478 URL = token.Value<
string>(
"URL");
479 ApkName = token.Value<
string>(
"ApkName");
489 public string Msg {
get;
set; }
494 return (
User ==
null ||
string.IsNullOrEmpty(
Token));
501 public int Id {
get;
set; }
506 public string Role {
get;
set; }
509 public string LastName {
get;
set; }
510 public string Username {
get;
set; }
511 public string Email {
get;
set; }
512 public string Phone {
get;
set; }
513 public string Status {
get;
set; }
517 public int OrgId {
get;
set; }
535 public class OrgProperties
543 public OrgProperties(
string primaryColor,
string secondaryColor,
string hubLogoURL,
string orgName)
552 public class QuickIDUser
561 public QuickIDUser(
string firstName,
string lastName,
string username,
string email)
571 public class QuickIDLoginData
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)
OrgProperties(string primaryColor, string secondaryColor, string hubLogoURL, string orgName)
OrgProperties OrgProperties
List< QuickIDUser > QuickIDUsers
QuickIDLoginData(string serialNumber, string username)
QuickIDUser(string firstName, string lastName, string username, string email)
SessionData(float score, float scaled, float min, float max, int duration, bool completed, bool success)
LoginResponseContent User
List< int > AvailableModules