public void AddHeroImageTest_WithHeroImageUriOnly_ReturnSelfWithHeroImageAdded() { // Arrange Uri testHeroImageUriSrc = new Uri("C:/justatesturi.jpg"); // Act ToastContentBuilder builder = new ToastContentBuilder(); ToastContentBuilder anotherReference = builder.AddHeroImage(testHeroImageUriSrc); // Assert Assert.AreSame(builder, anotherReference); Assert.AreEqual(testHeroImageUriSrc.OriginalString, builder.Content.Visual.BindingGeneric.HeroImage.Source); }
public void AddHeroImageTest_WithHeroImageUriAndFullOptions_ReturnSelfWithHeroImageAndOptionsAdded() { // Arrange Uri testHeroImageUriSrc = new Uri("C:/justatesturi.jpg"); string testHeroImageAltText = "Test Hero Image Text"; bool testHeroImageAddImageQuery = true; // Act ToastContentBuilder builder = new ToastContentBuilder(); ToastContentBuilder anotherReference = builder.AddHeroImage(testHeroImageUriSrc, testHeroImageAltText, testHeroImageAddImageQuery); // Assert Assert.AreSame(builder, anotherReference); Assert.AreEqual(testHeroImageUriSrc.OriginalString, builder.Content.Visual.BindingGeneric.HeroImage.Source); Assert.AreEqual(testHeroImageAltText, builder.Content.Visual.BindingGeneric.HeroImage.AlternateText); Assert.AreEqual(testHeroImageAddImageQuery, builder.Content.Visual.BindingGeneric.HeroImage.AddImageQuery); }
public static ToastNotification CreateToastNotificationForMessage(DiscordMessage message) { var title = GetMessageTitle(message); var text = GetMessageContent(message); var channelName = GetChannelHeaderName(message.Channel); var animated = message.Author.AvatarHash?.StartsWith("a_") ?? false; var avatarUrl = message.Author.GetAvatarUrl(animated ? ImageFormat.Gif : ImageFormat.Png, 128); var replyString = message.Channel is DiscordDmChannel ? $"Reply to @{message.Author.Username}..." : $"Message #{message.Channel.Name}..."; var builder = new ToastContentBuilder() .AddHeader(message.ChannelId.ToString(), channelName, $"-channelId={message.ChannelId}") .AddAppLogoOverride(new Uri(avatarUrl), ToastGenericAppLogoCrop.Circle) .AddText(title, AdaptiveTextStyle.Title) .AddText(text, AdaptiveTextStyle.Caption) .AddInputTextBox("tbReply", replyString) .AddButton("tbReply", "Reply", ToastActivationType.Background, $"-channelId={message.ChannelId}") .AddToastActivationInfo($"-channelId={message.ChannelId} -messageId={message.Id}", ToastActivationType.Foreground) .AddCustomTimeStamp(message.Timestamp.DateTime); if (GetToastThumbnail(message, out var width, out var height, out var proxyUrl)) { Drawing.ScaleProportions(ref width, ref height, 640, 360); builder.AddHeroImage(new Uri(proxyUrl + $"?format=jpeg&width={(int)width}&height={(int)height}")); } var toastContent = builder.GetToastContent(); var doc = new XmlDocument(); doc.LoadXml(toastContent.GetContent()); return(new ToastNotification(doc) { NotificationMirroring = NotificationMirroring.Allowed, Group = message.Channel.Id.ToString(), RemoteId = message.Id.ToString(), }); }