51 lines
1.7 KiB
C#
51 lines
1.7 KiB
C#
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<string, string> _propertyConversions;
|
|
|
|
private AssetStoreUserResolver()
|
|
{
|
|
_propertyConversions = new Dictionary<string, string>()
|
|
{
|
|
{ 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);
|
|
}
|
|
}
|
|
}
|
|
} |