public async Task <Int32> CreateChatItem(ChatItemVM item) { var chatItem = _map.Map <ChatItem>(item); db.ChatItems.Add(chatItem); await db.SaveChangesAsync(); return(chatItem.ChatItemId); }
public async Task SendMessage(string message, string chatId, string cacheId) { //var chatId = _connections[Context.ConnectionId]; var userData = await GetUserData(); if (userData != null) { ChatItemVM chatItem = null; if (cacheId != null) { AttachmentVM att = HttpContext.Current.Cache[cacheId] as AttachmentVM; chatItem = new ChatItemVM() { ChatId = int.Parse(chatId), OnDate = DateTime.Now, SiteUserId = userData.UserId, FileName = System.IO.Path.GetFileName(att.Filename), Said = message, Attachment = att.Content }; } else { chatItem = new ChatItemVM() { ChatId = int.Parse(chatId), OnDate = DateTime.Now, SiteUserId = userData.UserId, Said = message, Attachment = null, FileName = null }; await _cs.CreateChatItem(chatItem); } Int32 id = await _cs.CreateChatItem(chatItem); chatItem.ChatItemId = id; Clients.Group($"group-{chatId}").SendMessage(userData.UserId, userData.Username, DateTime.Now.ToString(), chatItem); } }