public List <PrivateChatMessage> GetScrollingChatData(string fromid, string toid, int start = 10, int length = 1) { takeCounter = (length * start); // 20 skipCounter = ((length - 1) * start); // 10 List <PrivateChatMessage> msg = new List <PrivateChatMessage>(); var uow = new XpoDAO().ProvideUnitOfWork(); var ChatPrivateMessageMasters = new XPCollection <ChatPrivateMessageMaster>(uow); var ChatPrivateMessageDetails = new XPCollection <ChatPrivateMessageDetail>(uow); var v = (from a in ChatPrivateMessageMasters join b in 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(takeCounter).Skip(skipCounter).ToList(); foreach (var a in v) { var res = new PrivateChatMessage() { userName = a.UserName, message = a.Message }; msg.Add(res); } return(msg); }
private void AddPrivateMessageinCache(string fromEmail, string chatToEmail, string userName, string message) { var uow = new XpoDAO().ProvideUnitOfWork(); var ChatPrivateMessageMasters = new XPCollection <ChatPrivateMessageMaster>(uow); // Save master var master = ChatPrivateMessageMasters.ToList().Where(a => a.EmailID.Equals(fromEmail)).ToList(); if (master.Count == 0) { var result = new ChatPrivateMessageMaster(uow) { EmailID = fromEmail, UserName = userName }; ChatPrivateMessageMasters.Add(result); uow.CommitChanges(); } // Save details var ChatPrivateMessageDetails = new XPCollection <ChatPrivateMessageDetail>(uow); var resultDetails = new ChatPrivateMessageDetail(uow) { MasterEmailID = fromEmail, ChatToEmailID = chatToEmail, Message = message }; ChatPrivateMessageDetails.Add(resultDetails); uow.CommitChanges(); }
public void Connect(string userName, string email) { emailIDLoaded = email; var id = Context.ConnectionId; var uow = new XpoDAO().ProvideUnitOfWork(); var result = new XPCollection <ChatUserDetail>(uow); var item = result.FirstOrDefault(x => x.EmailID == email); if (item != null) { uow.Delete(item); //result.Remove(item); uow.CommitChanges(); // Disconnect Clients.All.onUserDisconnectedExisting(item.ConnectionId, item.UserName); } var Users = result; if (Users.Where(x => x.EmailID == email).ToList().Count == 0) { var userdetails = new ChatUserDetail(uow) { ConnectionId = id, UserName = userName, EmailID = email }; uow.CommitChanges();; // send to caller var connectedUsers = result; var CurrentMessage = new XPCollection <ChatMessageDetail>(uow);// dc.ChatMessageDetails.ToList(); List <TempChatMessageDetail> lstTempChatMessageDetail = new List <TempChatMessageDetail>(); foreach (var currentMessage in CurrentMessage) { lstTempChatMessageDetail.Add(new TempChatMessageDetail() { EmailID = currentMessage.EmailID, Message = currentMessage.Message, UserName = currentMessage.UserName }); } List <TempChatUserDetail> lstTempChatUserDetail = new List <TempChatUserDetail>(); foreach (var user in connectedUsers) { var tempChatUserDetail = new TempChatUserDetail() { ConnectionId = user.ConnectionId, EmailID = user.EmailID, UserName = user.UserName }; lstTempChatUserDetail.Add(tempChatUserDetail); } Clients.Caller.onConnected(id, userName, lstTempChatUserDetail, lstTempChatMessageDetail);//connectedUsers } // send to all except caller client Clients.AllExcept(id).onNewUserConnected(id, userName, email); }
public List <PrivateChatMessage> GetPrivateMessage(string fromid, string toid, int take) { List <PrivateChatMessage> msg = new List <PrivateChatMessage>(); var uow = new XpoDAO().ProvideUnitOfWork(); var ChatUserDetails = new XPCollection <ChatPrivateMessageMaster>(uow); var ChatPrivateMessageDetails = new XPCollection <ChatPrivateMessageDetail>(uow); var v = (from a in ChatUserDetails join b in 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); }
private void AddAllMessageinCache(string userName, string message) { var uow = new XpoDAO().ProvideUnitOfWork(); var ChatMessageDetails = new XPCollection <ChatMessageDetail>(uow); var messageDetail = new ChatMessageDetail(uow) { UserName = userName, Message = message, EmailID = emailIDLoaded }; ChatMessageDetails.Add(messageDetail); uow.CommitChanges(); }
public ActionResult About() { HttpCookie ThisLanguage = System.Web.HttpContext.Current.Request.Cookies["NOPLanguage"]; var aboutUsModel = new AboutUsModel(); if (ThisLanguage != null) { var xpoDAO = new XpoDAO(); var provideUnitOfWork = xpoDAO.ProvideUnitOfWork(); var ResultData = provideUnitOfWork.FindObject <About>(null); switch (ThisLanguage.Value) { case "en": { aboutUsModel.Language = "en"; aboutUsModel.BannerTitle = ResultData.TitleP01; break; } case "vi": { aboutUsModel.Language = "vi"; aboutUsModel.BannerTitle = ResultData.TitleVNP01; break; } default: { aboutUsModel.Language = "en"; aboutUsModel.BannerTitle = ResultData.TitleP01; break; } } } else { } return(View("AboutUs", aboutUsModel)); var dao = new XpoDAO(); var uow = dao.ProvideUnitOfWork(); var result = uow.FindObject <About>(null); string language = "vi"; AboutUsModel model = new AboutUsModel(); return(View("AboutUs", model)); }
public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled) { var uow = new XpoDAO().ProvideUnitOfWork(); var result = new XPCollection <ChatUserDetail>(uow); var item = result.FirstOrDefault(x => x.ConnectionId == Context.ConnectionId); if (item != null) { //result.Remove(item); uow.Delete(item); uow.CommitChanges(); var id = Context.ConnectionId; Clients.All.onUserDisconnected(id, item.EmailID); //Clients.All.onUserDisconnected(id, item.UserName); } return(base.OnDisconnected(stopCalled)); }
public void SendPrivateMessage(string toUserId, string message, string status) { string fromUserId = Context.ConnectionId; var uow = new XpoDAO().ProvideUnitOfWork(); var ChatUserDetails = new XPCollection <ChatUserDetail>(uow); var toUser = ChatUserDetails.FirstOrDefault(x => x.ConnectionId == toUserId); var fromUser = ChatUserDetails.FirstOrDefault(x => x.ConnectionId == fromUserId); if (toUser != null && fromUser != null) { if (status == "Click") { AddPrivateMessageinCache(fromUser.EmailID, toUser.EmailID, fromUser.UserName, message); } // send to Clients.Client(toUserId).sendPrivateMessage(fromUserId, fromUser.UserName, message, fromUser.EmailID, toUser.EmailID, status, fromUserId); // send to caller user Clients.Caller.sendPrivateMessage(toUserId, fromUser.UserName, message, fromUser.EmailID, toUser.EmailID, status, fromUserId); } }