diff options
| author | Michael <[email protected]> | 2017-04-17 08:30:58 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-04-17 08:30:58 -0400 |
| commit | a9b8092732e2012ffadc552052e2e070cbf380e4 (patch) | |
| tree | 73be56bcba46bddc04bd728e932d438912276d1a /Project-Unite/NotificationDaemon.cs | |
| parent | c018558559b5454210d301ba693a046a07ea4cae (diff) | |
| download | project-unite-a9b8092732e2012ffadc552052e2e070cbf380e4.tar.gz project-unite-a9b8092732e2012ffadc552052e2e070cbf380e4.tar.bz2 project-unite-a9b8092732e2012ffadc552052e2e070cbf380e4.zip | |
SignalR notifications
Diffstat (limited to 'Project-Unite/NotificationDaemon.cs')
| -rw-r--r-- | Project-Unite/NotificationDaemon.cs | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/Project-Unite/NotificationDaemon.cs b/Project-Unite/NotificationDaemon.cs index 25d384a..2e548ea 100644 --- a/Project-Unite/NotificationDaemon.cs +++ b/Project-Unite/NotificationDaemon.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text; using System.Web; +using Microsoft.AspNet.SignalR; using Project_Unite.Models; namespace Project_Unite @@ -10,6 +12,13 @@ namespace Project_Unite { public static Action<Notification> OnBroadcast; + private static void SendMessage(string uid, string message) + { + GlobalHost + .ConnectionManager + .GetHubContext<NotificationHub>().Clients.User(uid).sendMessage(message); + } + public static void NotifyFollowers(string uid, string title, string desc, string url) { var db = new ApplicationDbContext(); @@ -34,7 +43,28 @@ namespace Project_Unite } } - public static void NotifyUser(string uid, string target, string title, string desc, string url) + private static string ComposeHtml(Notification note) + { + var builder = new StringBuilder(); + builder.AppendLine("<a href=\"" + note.ActionUrl + "\">"); + //Avatar holder start: + builder.AppendLine("<div style=\"width:64px;height:64px;display:inline-block;\">"); + //Avatar + builder.AppendLine("<img src=\"" + note.AvatarUrl + "\" width=\"64\" height=\"64\"/>"); + //Avatar holder end: + builder.AppendLine("</div>"); + + //Notification title. + builder.AppendLine("<p><strong>" + note.Title + "</strong><br/><br/>"); + //Contents. + builder.AppendLine(note.Description + "</p>"); + + builder.AppendLine("</a>"); + return builder.ToString(); + + } + + public static void NotifyUser(string uid, string target, string title, string desc, string url) { var db = new ApplicationDbContext(); var user = db.Users.FirstOrDefault(x => x.Id == uid); @@ -53,6 +83,8 @@ namespace Project_Unite db.Notifications.Add(note); db.SaveChanges(); + + SendMessage(target, ComposeHtml(note)); } |
