Skip to content

Instantly share code, notes, and snippets.

@slashP
Created March 7, 2013 15:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save slashP/5108906 to your computer and use it in GitHub Desktop.
Save slashP/5108906 to your computer and use it in GitHub Desktop.
SignalR pirate chat
public class ChatHub : Hub
{
public void GetAll()
{
using (var db = new DataContext())
{
var messages = db.ChatMessages.OrderByDescending(x => x.Id).Take(10).ToList();
Clients.Caller.SendMessage(messages.Select(x => new { x.Message, x.User }));
}
}
public void Send(string message, string user)
{
using (var client = new WebClient())
{
var html = client.DownloadData("http://translate-pirate.com/cgi-bin/xlate.cgi?cmd=translate&input=" + message);
var pirateText = GetPirateText(Encoding.UTF8.GetString(html));
Clients.All.SendMessage(new[] { new { Message = pirateText, User = user } });
using (var db = new DataContext())
{
var chatMessage = new ChatMessage { Message = pirateText, User = user };
db.ChatMessages.Add(chatMessage);
db.SaveChanges();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment