public AjaxChat GetUpdate(string token) { Member member = (Member)HttpContext.Current.Session["Member"]; AjaxChat ret = null; bool force = false; if (HttpContext.Current.Session["fr"] == null) { HttpContext.Current.Session["fr"] = DateTime.Now; } int mod = (((int)(DateTime.Now - (DateTime)HttpContext.Current.Session["fr"]).TotalSeconds) % 30); force = mod >= 0 && mod <= 2; ret = ChatLogic.GetUpdate(member.WebMemberID, token, force); InitLast10Messages(); foreach (AjaxChatMessage ajaxMsg in ret.Messages) { AddMessageToLast10Message(ajaxMsg); } PersistLast10Messages(); return(ret); }
public static void Login(Member member) { AjaxChatFriend owner = new AjaxChatFriend(); owner.CustomMessage = member.MemberProfile[0].TagLine; owner.Email = member.Email; owner.FirstName = member.FirstName; owner.LastName = member.LastName; owner.NickName = member.NickName; owner.OnlineStatus = OnlineStatus.Online; owner.OnlineStatusString = OnlineStatus.Online.ToString(); owner.WebMemberID = member.WebMemberID; owner.LastCommDt = DateTime.Now; ResourceFile PhotoRes = new ResourceFile(member.ProfilePhotoResourceFileID); owner.AvatorUrl = ParallelServer.Get(PhotoRes.FullyQualifiedURL) + PhotoRes.FullyQualifiedURL; ; AjaxChat c = new AjaxChat(owner); c = AddToChatData(member.WebMemberID, c); c.Owner.OnlineStatus = OnlineStatus.Online; c.Token = Next2Friends.Misc.UniqueID.NewWebID(); FillFriends(member); GetMessagesFromDB(member); }
public static void Login(Member member) { AjaxChatFriend owner = new AjaxChatFriend(); owner.CustomMessage = member.MemberProfile[0].TagLine; owner.Email = member.Email; owner.FirstName = member.FirstName; owner.LastName = member.LastName; owner.NickName = member.NickName; owner.OnlineStatus = OnlineStatus.Online; owner.OnlineStatusString = OnlineStatus.Online.ToString(); owner.WebMemberID = member.WebMemberID; owner.LastCommDt = DateTime.Now; ResourceFile PhotoRes = new ResourceFile(member.ProfilePhotoResourceFileID); owner.AvatorUrl = ParallelServer.Get(PhotoRes.FullyQualifiedURL) + PhotoRes.FullyQualifiedURL;; AjaxChat c = new AjaxChat(owner); c = AddToChatData(member.WebMemberID, c); c.Owner.OnlineStatus = OnlineStatus.Online; c.Token = Next2Friends.Misc.UniqueID.NewWebID(); FillFriends(member); GetMessagesFromDB(member); }
public static void SendMessage(AjaxChatMessage message) { AjaxChat c = GetChatObject(message.WebMemberIDTo); c.Messages.Add(message); c.Token = Next2Friends.Misc.UniqueID.NewWebID(); }
private static void FillFriends(Member member) { AjaxChat c = GetChatObject(member.WebMemberID); // Clear friend list before refreshing it. c.Friends.Clear(); List <ChatOnline> chatFriendsList = ChatOnline.GetChatFriendsByMemberID(member.MemberID); foreach (ChatOnline chatFriend in chatFriendsList) { AjaxChat chat = GetChatObject(chatFriend.WebMemberID); if (chat == null) { AjaxChatFriend ajaxChatFriend = new AjaxChatFriend(); ajaxChatFriend.WebMemberID = chatFriend.WebMemberID; ajaxChatFriend.OnlineStatus = (OnlineStatus)chatFriend.Status; ajaxChatFriend.FirstName = chatFriend.FirstName; ajaxChatFriend.LastName = chatFriend.LastName; ajaxChatFriend.NickName = chatFriend.NickName; ajaxChatFriend.Email = chatFriend.Email; ajaxChatFriend.CustomMessage = chatFriend.CustomMessage; ajaxChatFriend.AvatorUrl = ParallelServer.Get(chatFriend.AvatorUrl) + @"user/" + chatFriend.AvatorUrl; chat = new AjaxChat(ajaxChatFriend); } chat = AddToChatData(chatFriend.WebMemberID, chat); chat.Token = Next2Friends.Misc.UniqueID.NewWebID(); c.Friends.Add(chat.Owner); } }
public static AjaxChat UpdateChatObject(string WebMemberID, AjaxChat updateInfo) { AjaxChat c = GetChatObject(WebMemberID); c.Owner.AvatorUrl = updateInfo.Owner.AvatorUrl; c.Owner.CustomMessage = updateInfo.Owner.CustomMessage; c.Owner.FirstName = updateInfo.Owner.FirstName; c.Owner.LastName = updateInfo.Owner.LastName; return(c); }
public static AjaxChat GetChatObject(string WebMemberID) { AjaxChat c = null; if (ChatData.Contains(WebMemberID)) { c = (AjaxChat)ChatData[WebMemberID]; } return(c); }
private static AjaxChat AddToChatData(string WebMemberID, AjaxChat c) { if (!ChatData.Contains(WebMemberID)) { ChatData.Add(WebMemberID, c); return c; } else { return UpdateChatObject(WebMemberID, c); } }
private static AjaxChat AddToChatData(string WebMemberID, AjaxChat c) { if (!ChatData.Contains(WebMemberID)) { ChatData.Add(WebMemberID, c); return(c); } else { return(UpdateChatObject(WebMemberID, c)); } }
public static void Logoff(string WebMemberID) { AjaxChat c = GetChatObject(WebMemberID); if (c != null) { RemoveChatObject(WebMemberID); c.Messages.Clear(); c.Friends.Clear(); c = null; } }
public static AjaxChat GetUpdate(string WebMemberID, string token, bool force) { AjaxChat c = GetChatObject(WebMemberID); c.Owner.LastCommDt = DateTime.Now; string webMessageIds = ""; // The token has not changed since last fetch so no changes if (c.Token == token && !force) { return(null); } AjaxChat retObject = new AjaxChat(); retObject.Token = c.Token; retObject.Friends.AddRange(c.Friends); IList <AjaxChatMessage> msgs = (from m in c.Messages where m.Retrieved == false select m).ToList <AjaxChatMessage>(); foreach (AjaxChatMessage msg in msgs) { c.Messages.Remove(msg); //msg.Retrieved = true; webMessageIds += msg.ChatMessageWebID + ","; //ChatMessage.MarkChatmMessageDelivered(msg.ChatMessageWebID); retObject.Messages.Add(msg); } if (webMessageIds != null && webMessageIds.Length > 0) { ParameterizedThreadStart ts = new ParameterizedThreadStart(MarkChatMessageDelivered); Thread t = new Thread(ts); t.Priority = ThreadPriority.BelowNormal; t.Start(webMessageIds); } //retObject.Messages.AddRange(msgs); return(retObject); }
public AjaxChat GetLast10Msgs(string WebFriendID) { InitLast10Messages(); AjaxChat chat = new AjaxChat(); if (WebFriendID != string.Empty) { foreach (AjaxChatMessage msg in Last10Messages) { if (msg.WebMemberIDFrom == WebFriendID || msg.WebMemberIDTo == WebFriendID) { chat.Messages.Add(msg); } } } else { chat.Messages.AddRange(Last10Messages); } return(chat); }
private static void FillFriends(Member member) { AjaxChat c = GetChatObject(member.WebMemberID); // Clear friend list before refreshing it. c.Friends.Clear(); List<ChatOnline> chatFriendsList = ChatOnline.GetChatFriendsByMemberID(member.MemberID); foreach (ChatOnline chatFriend in chatFriendsList) { AjaxChat chat = GetChatObject(chatFriend.WebMemberID); if (chat == null) { AjaxChatFriend ajaxChatFriend = new AjaxChatFriend(); ajaxChatFriend.WebMemberID = chatFriend.WebMemberID; ajaxChatFriend.OnlineStatus = (OnlineStatus)chatFriend.Status; ajaxChatFriend.FirstName = chatFriend.FirstName; ajaxChatFriend.LastName = chatFriend.LastName; ajaxChatFriend.NickName = chatFriend.NickName; ajaxChatFriend.Email = chatFriend.Email; ajaxChatFriend.CustomMessage = chatFriend.CustomMessage; ajaxChatFriend.AvatorUrl = ParallelServer.Get(chatFriend.AvatorUrl) + @"user/" + chatFriend.AvatorUrl; chat = new AjaxChat(ajaxChatFriend); } chat = AddToChatData(chatFriend.WebMemberID, chat); chat.Token = Next2Friends.Misc.UniqueID.NewWebID(); c.Friends.Add( chat.Owner ); } }
public AjaxChat GetLast10Msgs(string WebFriendID) { InitLast10Messages(); AjaxChat chat = new AjaxChat(); if( WebFriendID != string.Empty ) { foreach( AjaxChatMessage msg in Last10Messages ) { if( msg.WebMemberIDFrom == WebFriendID || msg.WebMemberIDTo == WebFriendID ) { chat.Messages.Add(msg); } } } else { chat.Messages.AddRange(Last10Messages); } return chat; }
/// <summary> /// gets all the new messages that are on the server and sets them to delivered satus: true /// </summary> /// <param name="MemberID"></param> /// <returns></returns> public static List<AjaxChat> GetNewMessagesDB(string WebMemberID) { ChatInbox inbox = GetInbox(WebMemberID); List<Next2Friends.Data.Chat> chatMessages = null; List<AjaxChat> retChatMessages = new List<AjaxChat>(); if (inbox == null) return retChatMessages; chatMessages = Next2Friends.Data.Chat.GetNewChats(inbox.MemberID); foreach (Next2Friends.Data.Chat c in chatMessages) { AjaxChat ajaxC = new AjaxChat(); ajaxC.ChatWebID = c.ChatWebID; ajaxC.DTCreated = c.DTCreated; ajaxC.OtherMemberID = c.MemberIDFrom; ajaxC.Message = c.Message; retChatMessages.Add(ajaxC); } return retChatMessages; }
/// <summary> /// Sends a message to a user /// </summary> /// <param name="WebMemberID">The member posting the message</param> /// <param name="ToMemberID">The receiver of the message</param> /// <param name="Message">The text content fo the message</param> /// <returns>Whether the message was successfully sent</returns> public static bool SendMessageLive(string WebMemberID, string MemberIDTo, string FromNickName, string Message,string GUID) { ChatInbox senderInbox = GetInbox(WebMemberID); ChatInbox MemberInbox = GetInbox(MemberIDTo); // check if the user is in the list (not logged in? timed out?) if (MemberInbox != null) { AjaxChat ajaxC = new AjaxChat(); if( GUID == null) ajaxC.ChatWebID = GetGUID(); else ajaxC.ChatWebID = GUID; ajaxC.DTCreated = DateTime.Now; ajaxC.OtherMemberWebID = WebMemberID; ajaxC.OtherMemberNick = FromNickName; ajaxC.Message = Message; ajaxC.Delivered = false; MemberInbox.ChatMessages.Add(ajaxC); return true; } return false; }
public static AjaxChat GetUpdate(string WebMemberID, string token, bool force) { AjaxChat c = GetChatObject(WebMemberID); c.Owner.LastCommDt = DateTime.Now; string webMessageIds = ""; // The token has not changed since last fetch so no changes if (c.Token == token && !force ) { return null; } AjaxChat retObject = new AjaxChat(); retObject.Token = c.Token; retObject.Friends.AddRange(c.Friends); IList<AjaxChatMessage> msgs = (from m in c.Messages where m.Retrieved == false select m).ToList<AjaxChatMessage>(); foreach (AjaxChatMessage msg in msgs) { c.Messages.Remove(msg); //msg.Retrieved = true; webMessageIds += msg.ChatMessageWebID + ","; //ChatMessage.MarkChatmMessageDelivered(msg.ChatMessageWebID); retObject.Messages.Add(msg); } if (webMessageIds != null && webMessageIds.Length > 0) { ParameterizedThreadStart ts = new ParameterizedThreadStart(MarkChatMessageDelivered); Thread t = new Thread(ts); t.Priority = ThreadPriority.BelowNormal; t.Start(webMessageIds); } //retObject.Messages.AddRange(msgs); return retObject; }
public static AjaxChat UpdateChatObject(string WebMemberID,AjaxChat updateInfo) { AjaxChat c = GetChatObject(WebMemberID); c.Owner.AvatorUrl = updateInfo.Owner.AvatorUrl; c.Owner.CustomMessage = updateInfo.Owner.CustomMessage; c.Owner.FirstName = updateInfo.Owner.FirstName; c.Owner.LastName = updateInfo.Owner.LastName; return c; }