2using Newtonsoft.Json.Linq;
4using System.Collections.Generic;
5using System.ComponentModel;
6using System.Runtime.CompilerServices;
7using System.Security.Cryptography;
10using UnityEngine.UIElements;
34 bool hasErrored =
false;
37 if (hasErrorSetup ==
false)
41 if (
Error.Equals(
"true", StringComparison.CurrentCultureIgnoreCase))
47 hasErrored = !
string.IsNullOrEmpty(
Error);
57 public class JoinSessionResponse : FailureResponse
64 IEnumerable<JProperty> dataPropertyEnumerator =
Data.Properties();
65 foreach (JProperty property
in dataPropertyEnumerator)
67 if (property.Name.Equals(
"SessionId", StringComparison.OrdinalIgnoreCase))
69 SessionId = JsonConvert.DeserializeObject<
int>(
property.Value.ToString());
86 return (
Error.Equals(
"true", StringComparison.CurrentCultureIgnoreCase));
92 IEnumerable<JProperty> dataPropertyEnumerator =
Data.Properties();
94 foreach (JProperty currentProperty
in dataPropertyEnumerator)
98 currentUser.UserId = currentProperty.Name;
99 currentUser.AvailableModules = JsonConvert.DeserializeObject<List<int>>(
100 currentProperty.Value.ToString()
123 [JsonProperty(PropertyName =
"userIds")]
124 public List<int>
UserIds =
new List<int>();
128 public class LoginData
160 var isSuperAdmin = !String.IsNullOrEmpty(
Role) &&
Role.Equals(
"superadmin", StringComparison.CurrentCultureIgnoreCase);
161 var isPlatformOrg =
Org !=
null && !String.IsNullOrEmpty(
Org.
Type) &&
Org.
Type.Equals(
"platform", StringComparison.CurrentCultureIgnoreCase);
162 return isPlatformOrg && isSuperAdmin;
178 public class UserAccessResponseContent : IPlatformErrorable
249 public SessionData(
float score,
float scaled,
float min,
float max,
int duration,
bool completed,
bool success)
261#if UNITY_6000_0_OR_NEWER
268 public string Name =
"";
290#if UNITY_6000_0_OR_NEWER
296 public List<OrgModuleDownload>
Downloads =
new List<OrgModuleDownload>();
302#if UNITY_6000_0_OR_NEWER
303 public event EventHandler<BindablePropertyChangedEventArgs> propertyChanged;
308 Downloads =
new List<OrgModuleDownload>();
313 Downloads =
new List<OrgModuleDownload>();
319 ID = token.Value<
int>(
"ID");
320 Name = token.Value<
string>(
"Name");
324 Details = token.Value<
string>(
"Details");
328 externalId = token.Value<
string>(
"externalId");
331 var PlayerToken = token.Value<JObject>(
"player");
333 if (PlayerToken !=
null)
338 var DownloadTokens = token.Value<JArray>(
"Downloads");
340 if (DownloadTokens !=
null)
342 foreach (JToken DownloadToken
in DownloadTokens)
350 var availableLanguages = GetValue<JArray>(token,
"availableLanguages");
352 if (availableLanguages !=
null)
354 var availableLanguagesList =
new List<string>();
356 foreach (JToken languageToken
in availableLanguages)
358 string displayName = GetValue<string>(languageToken,
"displayName");
359 if (!
string.IsNullOrEmpty(displayName))
361 availableLanguagesList.Add(displayName);
368 var industry = GetValue<string>(token,
"Industry");
369 if (!
string.IsNullOrEmpty(industry) && industry.Length > 0)
371 Industry =
char.ToUpper(industry[0]) + (industry.Length > 1 ? industry[1..] :
string.Empty);
374 var distributor = GetValue<JToken>(token,
"distributor");
375 if (distributor !=
null)
384 private T
GetValue<T>(JToken token,
string propertyName, T defaultValue =
default)
386 return token[propertyName] !=
null ? token.Value<T>(propertyName) : defaultValue;
389#if UNITY_6000_0_OR_NEWER
390 void Notify([CallerMemberName]
string property =
"")
392 propertyChanged?.Invoke(
this,
new BindablePropertyChangedEventArgs(property));
416 public void Parse(JToken token)
418 ID = token.Value<
int>(
"ID");
419 VersionID = token.Value<
int>(
"VersionID");
421 externalId = token.Value<
string>(
"externalId");
423 Version = token.Value<
string>(
"Version");
424 Platform = token.Value<
string>(
"Platform");
425 ApkName = token.Value<
string>(
"ApkName");
426 URL = token.Value<
string>(
"URL");
427 Status = token.Value<
string>(
"Status");
431#region Platform Models
433 public class PlatformPlayer
440 public List<PlatformPlayerDownload>
versions =
new List<PlatformPlayerDownload>();
444 id = tokenObject.Value<
int>(
"id");
446 name = tokenObject.Value<
string>(
"name");
447 description = tokenObject.Value<
string>(
"description");
450 var versionTokens = tokenObject.Value<JArray>(
"versions");
451 if (versionTokens ==
null)
453 versionTokens =
new JArray();
456 foreach (JToken Version
in versionTokens)
458 versions.Add(
new PlatformPlayerDownload(Version));
476 id = token.Value<
int>(
"id");
478 version = token.Value<
string>(
"version");
479 status = token.Value<
string>(
"status");
480 URL = token.Value<
string>(
"URL");
481 ApkName = token.Value<
string>(
"ApkName");
491 public string Msg {
get;
set; }
496 return (
User ==
null ||
string.IsNullOrEmpty(
Token));
503 public int Id {
get;
set; }
508 public string Role {
get;
set; }
511 public string LastName {
get;
set; }
512 public string Username {
get;
set; }
513 public string Email {
get;
set; }
514 public string Phone {
get;
set; }
515 public string Status {
get;
set; }
519 public int OrgId {
get;
set; }
537 public class OrgProperties
545 public OrgProperties(
string primaryColor,
string secondaryColor,
string hubLogoURL,
string orgName)
554 public class QuickIDUser
563 public QuickIDUser(
string firstName,
string lastName,
string username,
string email)
573 public class QuickIDLoginData
586 public class UserMetricsResponse : IFailure, IPlatformErrorable
588 public List<UserMetric>
result;
621 [Description(
"superadmin")]
623 [Description(
"admin")]
625 [Description(
"manager")]
627 [Description(
"developer")]
629 [Description(
"user")]
631 [Description(
"student")]
633 [Description(
"trial")]
659 get {
return $
"{firstName} {lastName}"; }
668 if (!String.IsNullOrWhiteSpace(
email))
670 display = $
"{username} ({email})";
681 var dateFormat =
"hh:mm tt";
682 return $
"{lastActiveAt?.ToString(dateFormat)}";
691 var dateFormat =
"MM/dd/yyyy hh:mm tt";
694 dateFormat =
"hh:mm tt";
703 return "In module...";
711 return $
"In module {lastModule.description} ({lastModule.abbreviation}) - {lastActiveAt?.ToString(dateFormat)}";
716 return $
"Session Completed - {lastActiveAt?.ToString(dateFormat)}";
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
string DisplayName
[SerializeField]
string?? LastSessionDisplay
[SerializeField]
string UsernameEmail
[SerializeField]
string? LastActiveDisplay
[SerializeField]
List< UserMetric > result
List< int > AvailableModules