public static void SetCurrentChatID(int chatID) { ChatUserSetting setting = ChatUserSettings.GetSetting(UserSession.LoginUser, UserSession.LoginUser.UserID); setting.CurrentChatID = chatID; setting.Collection.Save(); }
public static bool ToggleAvailable() { ChatUserSetting setting = ChatUserSettings.GetSetting(UserSession.LoginUser, UserSession.LoginUser.UserID); setting.IsAvailable = !setting.IsAvailable; setting.Collection.Save(); return(setting.IsAvailable); }
public TsChatUpdate GetChatUpdate(int lastChatMessageID, int lastChatRequestID) { TsChatUpdate update = new TsChatUpdate(); try { User user = Users.GetUser(LoginUser.Anonymous, TSAuthentication.UserID); user.UpdatePing(); LoginUser loginUser = new LoginUser(user.UserID, user.OrganizationID, null); List <GrowlMessage> chatMessageGrowl = new List <GrowlMessage>(); List <GrowlMessage> chatRequestGrowl = new List <GrowlMessage>(); update.LastChatRequestID = lastChatRequestID; update.LastChatMessageID = lastChatMessageID; update.ChatMessageCount = 0; update.ChatRequestCount = 0; if (user.IsChatUser && ChatUserSettings.GetSetting(loginUser, user.UserID).IsAvailable) { ChatMessages chatMessages = new ChatMessages(loginUser); update.ChatMessageCount = chatMessages.GetUnreadMessageCount(loginUser.UserID, ChatParticipantType.User); update.ChatRequestCount = user.IsChatUser ? ChatRequests.GetWaitingRequestCount(loginUser, loginUser.UserID, loginUser.OrganizationID) : 0; if (lastChatMessageID < 0) { update.LastChatMessageID = ChatMessages.GetLastMessageID(loginUser); } chatMessages.LoadUnpreviewedMessages(loginUser.UserID, update.LastChatMessageID); foreach (ChatMessage chatMessage in chatMessages) { chatMessageGrowl.Add(new GrowlMessage(chatMessage.Message, chatMessage.PosterName, "ui-state-active")); update.LastChatMessageID = chatMessage.ChatMessageID; } ChatRequests requests = new ChatRequests(loginUser); requests.LoadNewWaitingRequests(loginUser.UserID, loginUser.OrganizationID, lastChatRequestID); foreach (ChatRequest chatRequest in requests) { chatRequestGrowl.Add(new GrowlMessage(string.Format("{0} {1} is requesting a chat!", chatRequest.Row["FirstName"].ToString(), chatRequest.Row["LastName"].ToString()), "Chat Request", "ui-state-error")); update.LastChatRequestID = chatRequest.ChatRequestID; } } update.NewChatMessages = chatMessageGrowl.ToArray(); update.NewChatRequests = chatRequestGrowl.ToArray(); } catch (Exception ex) { ExceptionLogs.LogException(LoginUser.Anonymous, ex, "Main Chat Upate"); } return(update); }
public static string GetChatUserSetting(RestCommand command, int userID) { ChatUserSetting chatUserSetting = ChatUserSettings.GetChatUserSetting(command.LoginUser, userID); if (chatUserSetting.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(chatUserSetting.GetXml("ChatUserSetting", true)); }
public ChatUserSettingProxy GetCurrentUserChatSettings() { LoginUser loginUser = TSAuthentication.GetLoginUser(); ChatUserSetting setting = ChatUserSettings.GetChatUserSetting(loginUser, TSAuthentication.UserID); if (setting == null) { setting = (new ChatUserSettings(loginUser)).AddNewChatUserSetting(); setting.UserID = TSAuthentication.UserID; } return(setting.GetProxy()); }
public static string GetChatUserSettings(RestCommand command) { ChatUserSettings chatUserSettings = new ChatUserSettings(command.LoginUser); chatUserSettings.LoadByOrganizationID(command.Organization.OrganizationID); if (command.Format == RestFormat.XML) { return(chatUserSettings.GetXml("ChatUserSettings", "ChatUserSetting", true, command.Filters)); } else { throw new RestException(HttpStatusCode.BadRequest, "Invalid data format"); } }
public static string[] GetChatHtml(UserInfoProxy userInfo, int chatID, int lastMessageID) { LoginUser loginUser = new LoginUser(userInfo.UserID, userInfo.OrganizationID, null); ChatUserSetting setting = ChatUserSettings.GetSetting(loginUser, loginUser.UserID); setting.CurrentChatID = chatID; setting.Collection.Save(); Chat chat = Chats.GetChat(loginUser, chatID); if (chat == null || chat.OrganizationID != loginUser.OrganizationID) { return(null); } ChatMessages messages = new ChatMessages(loginUser); int i = messages.GetLastMessageID(chatID); string chatHtml = ""; if (i > -1 && i != lastMessageID) { ChatParticipants.UpdateLastMessageID(loginUser, loginUser.UserID, ChatParticipantType.User, chatID, i); chatHtml = chat.GetHtml(true, loginUser.CultureInfo); } // load typers ChatParticipants participants = new ChatParticipants(loginUser); participants.LoadTypers(loginUser.UserID, ChatParticipantType.User, chatID, 2); StringBuilder typers = new StringBuilder(); foreach (ChatParticipant item in participants) { if (typers.Length > 0) { typers.Append(", "); } typers.Append(item.FirstName); } if (typers.Length > 0) { typers.Append(" is typing a message."); } return(new string[] { chatID.ToString(), i.ToString(), chatHtml, typers.ToString() }); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (UserSession.CurrentUser.ProductType == ProductType.Express || UserSession.CurrentUser.ProductType == ProductType.BugTracking) { tbChat.FindItemByValue("opencustomer").Visible = false; } ChatUserSetting setting = ChatUserSettings.GetSetting(UserSession.LoginUser, UserSession.LoginUser.UserID); if (!setting.IsAvailable) { RadToolBarButton button = (RadToolBarButton)tbChat.FindItemByValue("available"); button.ImageUrl = "../images/icons/chat_d.png"; button.Text = "I am not available"; } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); //Session.Clear(); //Session.Abandon(); Response.Cache.SetAllowResponseInBrowserHistory(false); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetNoStore(); Response.Expires = 0; fieldSID.Value = TSAuthentication.SessionID; Evergage.Value = SystemSettings.GetEverageDataset(); ChatUserSetting setting = ChatUserSettings.GetSetting(UserSession.LoginUser, UserSession.LoginUser.UserID); setting.CurrentChatID = -1; setting.Collection.Save(); }
public void ProcessRequest(HttpContext context) { context.Response.Cache.SetCacheability(HttpCacheability.NoCache); context.Response.AddHeader("Expires", "-1"); context.Response.AddHeader("Pragma", "no-cache"); if (TSAuthentication.Ticket == null) { context.Response.ContentType = "text/plain"; context.Response.StatusCode = (int)HttpStatusCode.Forbidden; context.Response.ClearContent(); context.Response.End(); return; } TsChatUpdate update = new TsChatUpdate(); using (Stream receiveStream = context.Request.InputStream) { using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) { string requestContent = readStream.ReadToEnd(); JObject args = JObject.Parse(requestContent); int lastChatRequestID = int.Parse(args["lastChatRequestID"].ToString());; int lastChatMessageID = int.Parse(args["lastChatMessageID"].ToString());; try { User user = Users.GetUser(LoginUser.Anonymous, TSAuthentication.UserID); if (user == null) { context.Response.ContentType = "text/plain"; context.Response.StatusCode = (int)HttpStatusCode.Forbidden; context.Response.ClearContent(); context.Response.End(); return; } user.UpdatePing(); LoginUser loginUser = new LoginUser(user.UserID, user.OrganizationID, null); List <GrowlMessage> chatMessageGrowl = new List <GrowlMessage>(); List <GrowlMessage> chatRequestGrowl = new List <GrowlMessage>(); update.LastChatRequestID = lastChatRequestID; update.LastChatMessageID = lastChatMessageID; update.ChatMessageCount = 0; update.ChatRequestCount = 0; if (user.IsChatUser && ChatUserSettings.GetSetting(loginUser, user.UserID).IsAvailable) { ChatMessages chatMessages = new ChatMessages(loginUser); update.ChatMessageCount = chatMessages.GetUnreadMessageCount(loginUser.UserID, ChatParticipantType.User); update.ChatRequestCount = user.IsChatUser ? ChatRequests.GetWaitingRequestCount(loginUser, loginUser.UserID, loginUser.OrganizationID) : 0; if (lastChatMessageID < 0) { update.LastChatMessageID = ChatMessages.GetLastMessageID(loginUser); } chatMessages.LoadUnpreviewedMessages(loginUser.UserID, update.LastChatMessageID); foreach (ChatMessage chatMessage in chatMessages) { chatMessageGrowl.Add(new GrowlMessage(chatMessage.Message, chatMessage.PosterName, "ui-state-active")); update.LastChatMessageID = chatMessage.ChatMessageID; } ChatRequests requests = new ChatRequests(loginUser); requests.LoadNewWaitingRequests(loginUser.UserID, loginUser.OrganizationID, lastChatRequestID); foreach (ChatRequest chatRequest in requests) { chatRequestGrowl.Add(new GrowlMessage(string.Format("{0} {1} is requesting a chat!", chatRequest.Row["FirstName"].ToString(), chatRequest.Row["LastName"].ToString()), "Chat Request", "ui-state-error")); update.LastChatRequestID = chatRequest.ChatRequestID; } } update.NewChatMessages = chatMessageGrowl.ToArray(); update.NewChatRequests = chatRequestGrowl.ToArray(); } catch (Exception ex) { ExceptionLogs.LogException(LoginUser.Anonymous, ex, "Main Chat Upate"); } } } context.Response.ContentType = "application/json; charset=utf-8"; context.Response.Write(JsonConvert.SerializeObject(update)); }