public void AddMessageToLog(ChatMessage message) { if (Log == null) { Log = new ChatLog(Id); } Log.Messages.Add(message); }
public ChatMessageViewModel(ChatMessage message) { TimeSend = message.TimeSend; Message = message.Message; SenderName = message.Sender.UserName; }
public ActionResult Delete(ChatMessage model) { string errorText; TempData["Error"] = context.Delete(model, out errorText) ? null : errorText; return RedirectToAction("Messages", new { id = model.LogId }); }
public void Send(string messageText, string roomId) { using (var context = new MagicDbContext()) { var userId = Context.User.Identity.GetUserId(); var sender = context.Users.Find(userId); var message = new ChatMessage(messageText) { Sender = sender, Message = messageText }; var chatRoom = context.ChatRooms.Include(r => r.Users.Select(u => u.User)).First(r => r.Id == roomId); foreach (var user in chatRoom.Users) { SubscribeActiveConnections(chatRoom.Id, user.UserId); } Clients.Group(roomId).addMessage(roomId, message.TimeSend.ToString("HH:mm:ss"), message.Sender.UserName, message.Sender.ColorCode, message.Message); chatRoom.AddMessageToLog(message); context.InsertOrUpdate(chatRoom); foreach (var notification in chatRoom.Users.Where(u => u.User.Status == UserStatus.Offline).Select(u => new ChatMessageNotification { RecipientId = u.UserId, MessageId = message.Id, LogId = message.LogId })) { context.Insert(notification); } } }