public List <PrivateChatMessage> GetScrollingChatData(string fromid, string toid, int start = 10, int length = 1) { takeCounter = (length * start); // 20 skipCounter = ((length - 1) * start); // 10 using (Service.EntityModel.DuAnYTeEntities dc = new Service.EntityModel.DuAnYTeEntities()) { List <PrivateChatMessage> msg = new List <PrivateChatMessage>(); var v = (from a in dc.ThanhViens join b in dc.ChatPrivateMessageDetails on a.id equals b.id_ThanhVien_Gui into cc from c in cc where (c.id_ThanhVien_Gui.Equals(fromid) && c.id_ThanhVien_Nhan.Equals(toid)) || (c.id_ThanhVien_Gui.Equals(toid) && c.id_ThanhVien_Nhan.Equals(fromid)) orderby c.id descending select new { UserName = a.TaiKhoan, Message = c.NoiDung, ID = c.id }).Take(takeCounter).Skip(skipCounter).ToList(); v = v.OrderBy(s => s.ID).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { userName = a.UserName, message = a.Message }; msg.Add(res); } return(msg); } }
public List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take) { ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster> chpmm = new ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster>(); ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails> chpmd = new ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails>(); //using (Surajit_TestEntities dc = new Surajit_TestEntities()) //{ List <PrivateChatMessage> msg = new List <PrivateChatMessage>(); var v = (from a in chpmm.GetList().ToList() join b in chpmd.GetList().ToList() on a.EmailID equals b.MasterEmailID into cc from c in cc where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid)) orderby c.Id descending select new { UserName = a.UserName, Message = c.Message, ID = c.Id }).Take(take).ToList(); v = v.OrderBy(s => s.ID).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { userName = a.UserName, message = a.Message }; msg.Add(res); } return(msg); //} }
/// <summary> /// /// </summary> /// <param name="fromid"></param> /// <param name="toid"></param> /// <param name="take"></param> /// <returns></returns> public List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take) { using (Service.EntityModel.DuAnYTeEntities dc = new Service.EntityModel.DuAnYTeEntities()) { List <PrivateChatMessage> msg = new List <PrivateChatMessage>(); var v = (from a in dc.ThanhViens.ToList() join b in dc.ChatPrivateMessageDetails.ToList() on a.id equals b.id_ThanhVien_Gui into cc from c in cc where (c.id_ThanhVien_Gui.Equals(fromid) && c.id_ThanhVien_Nhan.Equals(toid)) || (c.id_ThanhVien_Gui.Equals(toid) && c.id_ThanhVien_Nhan.Equals(fromid)) orderby c.id descending select new { UserName = a.TaiKhoan, Message = c.NoiDung, ID = c.id }).Take(take).ToList(); v = v.OrderBy(s => s.ID).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { userName = a.UserName, message = a.Message }; msg.Add(res); } return(msg); } }
public List <PrivateChatMessage> GetScrollingChatData(string fromid, string toid, int start = 10, int length = 1) { takeCounter = (length * start); // 20 skipCounter = ((length - 1) * start); // 10 ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster> chpmm = new ChatPrivateMessageMasterRepository <ChatPrivateMessageMaster>(); ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails> chpmd = new ChatPrivateMessageDetailsRepository <ChatPrivateMessageDetails>(); //using (Surajit_TestEntities dc = new Surajit_TestEntities()) //{ List <PrivateChatMessage> msg = new List <PrivateChatMessage>(); var v = (from a in chpmm.GetList().ToList() join b in chpmd.GetList().ToList() on a.EmailID equals b.MasterEmailID into cc from c in cc where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid)) orderby c.Id descending select new { UserName = a.UserName, Message = c.Message, ID = c.Id }).Take(takeCounter).Skip(skipCounter).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { userName = a.UserName, message = a.Message }; msg.Add(res); } return(msg); // } }
public static List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take) { using (var dc = new SolutionsOnlineSellingEntities()) { var msg = new List <PrivateChatMessage>(); var v = (from a in dc.ChatPrivateMessageMaster join b in dc.ChatPrivateMessageDetails on a.EmailID equals b.MasterEmailID into cc from c in cc where (c.MasterEmailID.Equals(fromid) && c.ChatToEmailID.Equals(toid)) || (c.MasterEmailID.Equals(toid) && c.ChatToEmailID.Equals(fromid)) orderby c.ID descending select new { UserName = a.UserName, Message = c.Message, ID = c.ID }).Take(take).ToList(); v = v.OrderBy(s => s.ID).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { userName = a.UserName, message = a.Message }; msg.Add(res); } return(msg); } }
public void PrivateChatMessage_Constructor() { var currentDateTime = DateTime.UtcNow; var privateChatMessage = new PrivateChatMessage( FakeObjects.TestUserWithId(), FakeValues.KeyString, FakeObjects.TestUserWithId(), FakeValues.Message, currentDateTime ); Assert.AreEqual(FakeObjects.TestUserWithId().DenormalisedUserReference(), privateChatMessage.User); Assert.AreEqual(FakeValues.KeyString, privateChatMessage.ChatId); Assert.AreEqual(FakeObjects.TestUserWithId().DenormalisedUserReference(), privateChatMessage.TargetUser); Assert.AreEqual(FakeValues.Message, privateChatMessage.Message); Assert.AreEqual(currentDateTime, privateChatMessage.Timestamp); }
public async Task <GetPrivateChatMessageDto> AddMessageAsync(CreatePrivateChatMessageDto messageDto, CancellationToken ct = default) { _logger.LogInformation("Create private chat message {PrivateChatMessage}", messageDto); PrivateChat chat = await _unitOfWork.PrivateChatRepository.GetAsync(messageDto.ChatId, ct); if (chat == null) { _logger.LogWarning("Private chat with id {PrivateChatId} not found", messageDto.ChatId); throw new ChatNotFoundException(); } PrivateChatMessage message = _mapper.Map <PrivateChatMessage>(messageDto); message.CreatedAt = message.UpdatedAt = DateTime.UtcNow; _unitOfWork.PrivateChatMessageRepository.Create(message); await _unitOfWork.CommitAsync(ct); return(_mapper.Map <GetPrivateChatMessageDto>(message)); }
public void Send(string message, string to) { string senderName = Context.User.Identity.Name; User sender = _userRepository.GetSingleByUsername(senderName); User receiver = _userRepository.GetSingleByUsername(to); if (receiver != null) { IEnumerable<HubConnection> receiverConnections = _hubConnectionRepository .GetAllIncluding(conn => conn.User) .Where(conn => conn.User.Name == to).ToArray(); PrivateChatMessage privateChatMessage = new PrivateChatMessage { ReceiverId = receiver.Id, SenderId = sender.Id, Content = message, ReceivedOn = DateTimeOffset.Now }; _privateChatMessageRepository.Add(privateChatMessage); _privateChatMessageRepository.Save(); if (receiverConnections.Any()) { IEnumerable<HubConnection> senderConnections = _hubConnectionRepository .GetAllIncluding(conn => conn.User) .Where(conn => conn.User.Name == senderName).ToArray(); IEnumerable<string> allReceivers = senderConnections.Select(conn => conn.ConnectionId) .Concat(receiverConnections.Select(conn => conn.ConnectionId)); foreach (string connectionId in allReceivers) { Clients.Client(connectionId).received(new { sender = senderName, message = message, isPrivate = true }); } } } }
public void Send(string message, string to) { string senderName = Context.User.Identity.Name; User sender = _userRepository.GetSingleByUsername(senderName); User receiver = _userRepository.GetSingleByUsername(to); if (receiver != null) { IEnumerable <HubConnection> receiverConnections = _hubConnectionRepository .GetAllIncluding(conn => conn.User) .Where(conn => conn.User.Name == to).ToArray(); PrivateChatMessage privateChatMessage = new PrivateChatMessage { ReceiverId = receiver.Id, SenderId = sender.Id, Content = message, ReceivedOn = DateTimeOffset.Now }; _privateChatMessageRepository.Add(privateChatMessage); _privateChatMessageRepository.Save(); if (receiverConnections.Any()) { IEnumerable <HubConnection> senderConnections = _hubConnectionRepository .GetAllIncluding(conn => conn.User) .Where(conn => conn.User.Name == senderName).ToArray(); IEnumerable <string> allReceivers = senderConnections.Select(conn => conn.ConnectionId) .Concat(receiverConnections.Select(conn => conn.ConnectionId)); foreach (string connectionId in allReceivers) { Clients.Client(connectionId).received(new { sender = senderName, message = message, isPrivate = true }); } } } }