summaryrefslogtreecommitdiff
path: root/Project-Unite/NotificationDaemon.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Project-Unite/NotificationDaemon.cs')
-rw-r--r--Project-Unite/NotificationDaemon.cs34
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));
}