예제 #1
0
        public async Task <Int32> CreateChatItem(ChatItemVM item)
        {
            var chatItem = _map.Map <ChatItem>(item);

            db.ChatItems.Add(chatItem);
            await db.SaveChangesAsync();

            return(chatItem.ChatItemId);
        }
예제 #2
0
        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);
            }
        }