Files
Kirill Chikalin 275dc598c7 update libs
2025-02-13 17:48:12 +03:00

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);
}
}
}
}