public static void UpdateClientPing(LoginUser loginUser, int chatClientID) { ChatClients clients = new ChatClients(loginUser); using (SqlCommand command = new SqlCommand()) { command.CommandText = @"UPDATE ChatClients SET LastPing = GETUTCDATE() WHERE ChatClientID = @ChatClientID"; command.CommandType = CommandType.Text; command.Parameters.AddWithValue("@ChatClientID", chatClientID); clients.ExecuteNonQuery(command, "ChatClients"); } }
public static ChatClient GetChatClient(LoginUser loginUser, int chatClientID) { ChatClients chatClients = new ChatClients(loginUser); chatClients.LoadByChatClientID(chatClientID); if (chatClients.IsEmpty) { return(null); } else { return(chatClients[0]); } }
public int GetInitiatorLinkedUserID() { int?userID = null; if (InitiatorType == ChatParticipantType.External) { ChatClients clients = new ChatClients(Collection.LoginUser); clients.LoadByChatClientID(InitiatorID); if (!clients.IsEmpty) { userID = clients[0].LinkedUserID; } } return(userID == null ? -1 : (int)userID); }
public static ChatRequest RequestChat(LoginUser loginUser, int organizationID, string firstName, string lastName, string email, string message, string ipAddress, int groupID = 0) { ChatClients clients = new ChatClients(loginUser); ChatClient client = clients.IsEmpty ? (new ChatClients(loginUser)).AddNewChatClient() : clients[0]; client.OrganizationID = organizationID; client.FirstName = firstName; client.LastName = lastName; client.Email = email; Users users = new Users(loginUser); if (!string.IsNullOrEmpty(email)) { users.LoadByEmail(organizationID, email); try { if (!users.IsEmpty) { client.LinkedUserID = users[0].UserID; client.CompanyName = Organizations.GetOrganization(loginUser, users[0].OrganizationID).Name; } else { string emailDomain = email.Substring(email.LastIndexOf('@') + 1).Trim(); Organization org = Organization.GetCompanyByDomain(organizationID, emailDomain, loginUser); client.CompanyName = (org != null) ? org.Name : ""; } } catch (Exception) { client.CompanyName = ""; } } else { Organization org = Organization.GetCompanyByDomain(organizationID, string.Empty, loginUser, forceUnknown: true); client.CompanyName = (org != null) ? org.Name : ""; } client.Collection.Save(); Chat chat = (new Chats(loginUser)).AddNewChat(); chat.InitiatorID = client.ChatClientID; chat.InitiatorType = ChatParticipantType.External; chat.OrganizationID = organizationID; chat.Collection.Save(); Chats.JoinChat(loginUser, client.ChatClientID, ChatParticipantType.External, chat.ChatID, ipAddress); ChatRequest request = (new ChatRequests(loginUser)).AddNewChatRequest(); request.RequestorID = client.ChatClientID; request.RequestorType = ChatParticipantType.External; request.OrganizationID = organizationID; request.ChatID = chat.ChatID; request.Message = message; request.IsAccepted = false; request.RequestType = ChatRequestType.External; request.GroupID = groupID; request.Collection.Save(); return(request); }
public ChatClient(DataRow row, ChatClients chatClients) : base(row, chatClients) { _chatClients = chatClients; }