41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using System.Collections.Immutable;
|
|
using System.Linq;
|
|
using Model = Discord.API.Team;
|
|
|
|
namespace Discord.Rest
|
|
{
|
|
public class RestTeam : RestEntity<ulong>, ITeam
|
|
{
|
|
/// <inheritdoc />
|
|
public string IconUrl => _iconId != null ? CDN.GetTeamIconUrl(Id, _iconId) : null;
|
|
/// <inheritdoc />
|
|
public IReadOnlyList<ITeamMember> TeamMembers { get; private set; }
|
|
/// <inheritdoc />
|
|
public string Name { get; private set; }
|
|
/// <inheritdoc />
|
|
public ulong OwnerUserId { get; private set; }
|
|
|
|
private string _iconId;
|
|
|
|
internal RestTeam(BaseDiscordClient discord, ulong id)
|
|
: base(discord, id)
|
|
{
|
|
}
|
|
internal static RestTeam Create(BaseDiscordClient discord, Model model)
|
|
{
|
|
var entity = new RestTeam(discord, model.Id);
|
|
entity.Update(model);
|
|
return entity;
|
|
}
|
|
internal virtual void Update(Model model)
|
|
{
|
|
if (model.Icon.IsSpecified)
|
|
_iconId = model.Icon.Value;
|
|
Name = model.Name;
|
|
OwnerUserId = model.OwnerUserId;
|
|
TeamMembers = model.TeamMembers.Select(x => new RestTeamMember(Discord, x)).ToImmutableArray();
|
|
}
|
|
}
|
|
}
|