using System; using System.Collections.Generic; using System.Dynamic; using System.Threading.Tasks; using CitizenFX.Core; using Mosleys.Shared.Models; namespace Mosleys.Client { public static class Utils { public static async Task GetAllExhibits() { dynamic data = await Mosleys.ServerCallback("mosleys:server:getExhibits"); try { List vehicles = new List(); foreach (var exhibit in data.vehicles) { vehicles.Add(ExhibitVehicle.FromDynamic(exhibit)); } return vehicles.ToArray(); } catch (Exception e) { Debug.WriteLine(e.ToString()); } return Array.Empty(); } public static async Task GetPlayerExhibits() { dynamic data = await Mosleys.ServerCallback("mosleys:server:getPlayerExhibits"); try { List vehicles = new List(); foreach (var exhibit in data.vehicles) { vehicles.Add(ExhibitVehicle.FromDynamic(exhibit)); } return vehicles.ToArray(); } catch (Exception e) { Debug.WriteLine(e.ToString()); } return Array.Empty(); } public static async Task GetExhibitBySlot(int slot) { dynamic data = await Mosleys.ServerCallback("mosleys:server:getExhibitBySlot", slot); return ExhibitVehicle.FromDynamic(data); } public static void PrintDynamic(dynamic data, string prefix = "") { foreach (var element in (data as IDictionary)) { Debug.WriteLine($"{prefix}{element.Key}: {element.Value}"); if (element.Value.GetType() == typeof(ExpandoObject)) { PrintDynamic(element.Value, prefix + "\t"); } if (element.Value.GetType() == typeof(List)) { Debug.WriteLine(prefix + "\t", string.Join(", ", element.Value)); } } } } }