public string Post(MessageModel m) { var time = DateTime.Now; using (var context = new ChatEntities()) { var user = context.Users.SingleOrDefault(u => u.Email == m.Email); if (user != null) { context.Messages.Add(new MvcApplication2.Data.Message { UserId = user.Id, Time = time, Text = m.Text, SessionId = m.SessionId }); context.SaveChanges(); Dispatcher.NewMessage(); } } return time.ToString(); }
public ActionResult Index() { var emailCookie = Request.Cookies["Email"]; var passwordCookie = Request.Cookies["Password"]; if (emailCookie != null && passwordCookie != null) { try { Session["User"] = AuthHelper.Login(emailCookie.Value, passwordCookie.Value); } catch { } } using (var context = new ChatEntities()) { var messages = context.Messages .OrderByDescending(m => m.Time) .Take(5) .ToArray(); ViewBag.Messages = messages.Select(m => new MessageModel(m)).ToList(); ViewBag.Messages.Reverse(); } return View(); }
public IEnumerable<MessageModel> GetNew(int userId, long lastId) { using (var context = new ChatEntities()) { do { var result = context.Messages.Where(m => m.Id > lastId).ToArray(); if (result.Length > 0) { return result.Select(m => new MessageModel(m)).ToArray(); } else { Dispatcher.Subscribe(userId); Dispatcher.Wait(userId); } } while (true); } }