using System.Collections.ObjectModel; namespace Shogi.Api.Models; public class User { public static readonly ReadOnlyCollection Adjectives = new(new[] { "Fortuitous", "Retractable", "Happy", "Habbitable", "Creative", "Fluffy", "Impervious", "Kingly" }); public static readonly ReadOnlyCollection Subjects = new(new[] { "Hippo", "Basil", "Mouse", "Walnut", "Prince", "Lima Bean", "Coala", "Potato", "Penguin" }); public static User CreateMsalUser(string id) => new(id, id, WhichLoginPlatform.Microsoft); public static User CreateGuestUser(string id) { var random = new Random(); // Adjective var index = (int)Math.Floor(random.NextDouble() * Adjectives.Count); var adj = Adjectives[index]; // Subject index = (int)Math.Floor(random.NextDouble() * Subjects.Count); var subj = Subjects[index]; return new User(id, $"{adj} {subj}", WhichLoginPlatform.Guest); } public string Id { get; } public string DisplayName { get; } public WhichLoginPlatform LoginPlatform { get; } public bool IsGuest => LoginPlatform == WhichLoginPlatform.Guest; public bool IsAdmin => LoginPlatform == WhichLoginPlatform.Microsoft && Id == "Hauth@live.com"; public User(string id, string displayName, WhichLoginPlatform platform) { Id = id; DisplayName = displayName; LoginPlatform = platform; } }