Ejemplo n.º 1
0
        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]);
            }
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        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;
 }