public async Task <IResult> ShowServerSettingsAsync() { var getGuild = await _guildAPI.GetGuildAsync(_context.GuildID.Value); if (!getGuild.IsSuccess) { return(getGuild); } var guild = getGuild.Entity; var getSettings = await _moderation.GetOrCreateServerSettingsAsync(guild.ID); if (!getSettings.IsSuccess) { return(getSettings); } var settings = getSettings.Entity; var getGuildIcon = CDN.GetGuildIconUrl(guild); var embedFields = new List <EmbedField>(); var eb = new Embed { Colour = _feedback.Theme.Secondary, Title = guild.Name, Thumbnail = getGuildIcon.IsSuccess ? new EmbedThumbnail(getGuildIcon.Entity.ToString()) : default(Optional <IEmbedThumbnail>), Fields = embedFields }; var moderationLogChannelName = settings.ModerationLogChannel.HasValue ? $"<#{settings.ModerationLogChannel}>" : "None"; embedFields.Add(new EmbedField("Moderation Log Channel", moderationLogChannelName)); var monitoringChannelName = settings.MonitoringChannel.HasValue ? $"<#{settings.MonitoringChannel}>" : "None"; embedFields.Add(new EmbedField("Event Monitor Channel", monitoringChannelName)); embedFields.Add(new EmbedField("Warning Threshold", settings.WarningThreshold.ToString())); return(await _feedback.SendContextualEmbedAsync(eb)); }
public void ReturnsUnsuccessfulResultIfInstanceHasNoImage() { var guildID = new Snowflake(0); var mockedGuild = new Mock <IGuild>(); mockedGuild.SetupGet(g => g.Icon).Returns((IImageHash?)null); mockedGuild.SetupGet(g => g.ID).Returns(guildID); var guild = mockedGuild.Object; var getActual = CDN.GetGuildIconUrl(guild, CDNImageFormat.PNG); Assert.False(getActual.IsSuccess); Assert.IsType <ImageNotFoundError>(getActual.Unwrap()); }
public void ReturnsCorrectAddressWithAnimatedImageAndCustomFormat() { var expected = new Uri("https://cdn.discordapp.com/icons/0/a_1.png"); var guildID = new Snowflake(0); var imageHash = new ImageHash("a_1"); var mockedGuild = new Mock <IGuild>(); mockedGuild.SetupGet(g => g.Icon).Returns(imageHash); mockedGuild.SetupGet(g => g.ID).Returns(guildID); var guild = mockedGuild.Object; var getActual = CDN.GetGuildIconUrl(guild, CDNImageFormat.PNG); Assert.True(getActual.IsSuccess); Assert.Equal(expected, getActual.Entity); }
/// <inheritdoc /> protected override IEnumerable <Result <Uri> > GetImageUris ( Optional <CDNImageFormat> imageFormat = default, Optional <ushort> imageSize = default ) { var guildID = new Snowflake(0); var imageHash = new ImageHash("1"); var mockedGuild = new Mock <IGuild>(); mockedGuild.SetupGet(g => g.Icon).Returns(imageHash); mockedGuild.SetupGet(g => g.ID).Returns(guildID); var guild = mockedGuild.Object; yield return(CDN.GetGuildIconUrl(guild, imageFormat, imageSize)); yield return(CDN.GetGuildIconUrl(guildID, imageHash, imageFormat, imageSize)); }
/// <inheritdoc /> public async Task <Result <QueryResult> > Handle(Query request, CancellationToken cancellationToken) { var getGuildInfoResult = await _guildApi.GetGuildAsync(request.GuildId, ct : cancellationToken); if (!getGuildInfoResult.IsSuccess) { return(Result <QueryResult> .FromError(getGuildInfoResult)); } var guildInfo = getGuildInfoResult.Entity; if (guildInfo is null) { return(new NotFoundError("Guild not found.")); } Uri?iconUrl; if (guildInfo.Icon is not null) { var getIconUrlResult = CDN.GetGuildIconUrl(request.GuildId, guildInfo.Icon, CDNImageFormat.PNG); iconUrl = !getIconUrlResult.IsSuccess ? null : getIconUrlResult.Entity; } else { iconUrl = null; } return(new QueryResult( guildInfo.Name, guildInfo.OwnerID, guildInfo.MaxMembers.HasValue ? guildInfo.MaxMembers.Value : null, guildInfo.Roles.Skip(1).ToList(), iconUrl )); }
/// <inheritdoc /> public string GetIconUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128) { return(CDN.GetGuildIconUrl(Id, _iconId, size, format)); }