using Newtonsoft.Json.Serialization; using System.Collections.Generic; namespace AssetStoreTools.Api.Models { internal class User { public string Id { get; set; } public string SessionId { get; set; } public string Name { get; set; } public string Username { get; set; } public string PublisherId { get; set; } public bool IsPublisher => !string.IsNullOrEmpty(PublisherId); public override string ToString() { return $"{nameof(Id)}: {Id}\n" + $"{nameof(Name)}: {Name}\n" + $"{nameof(Username)}: {Username}\n" + $"{nameof(PublisherId)}: {PublisherId}\n" + $"{nameof(IsPublisher)}: {IsPublisher}\n" + $"{nameof(SessionId)}: [HIDDEN]"; } public class AssetStoreUserResolver : DefaultContractResolver { private static AssetStoreUserResolver _instance; public static AssetStoreUserResolver Instance => _instance ?? (_instance = new AssetStoreUserResolver()); private Dictionary _propertyConversions; private AssetStoreUserResolver() { _propertyConversions = new Dictionary() { { nameof(User.SessionId), "xunitysession" }, { nameof(User.PublisherId), "publisher" } }; } protected override string ResolvePropertyName(string propertyName) { if (_propertyConversions.ContainsKey(propertyName)) return _propertyConversions[propertyName]; return base.ResolvePropertyName(propertyName); } } } }