CMS.Chat.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CMS.Chat</name>
    </assembly>
    <members>
        <member name="T:CMS.Chat.ChatCacheBeacon">
            <summary>
            This class uses cache to control timeouts of other cached items.
             
            It does not store any data itself.
             
            It allows to invalidate caches across web farms (that's the reason why cache is used here - touching cache is propagated across web farms) or only locally.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCacheBeacon.#ctor(System.String,System.TimeSpan)">
            <summary>
            Constructs cache beacon.
             
            First call to IsValid method will return false.
            </summary>
            <param name="key">Globally unique key</param>
            <param name="persistence">Persistence - method IsValid() will return false after this amount of time passes</param>
        </member>
        <member name="M:CMS.Chat.ChatCacheBeacon.IsValid">
            <summary>
            Checks if beacon is valid. It takes into consideration local and cache invalidation.
             
            If beacon is not valid, it calls Reset itself, so next call will return true again.
             
            First call to this method will return false.
             
            Method is thread safe.
            </summary>
            <returns>True if timeout has not passed and nobody has invalidated this beacon</returns>
        </member>
        <member name="M:CMS.Chat.ChatCacheBeacon.Reset">
            <summary>
            Resets timeout, so next time IsValid() will return false again after amount of time specified by persistence argument
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCacheBeacon.Invalidate">
            <summary>
            Invalidates beacon - next call of IsValid will return false.
             
            This invalidation works across web farms.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCacheBeacon.InvalidateLocally">
            <summary>
            Invalidates beacon - next call of IsValid will return false.
             
            This invalidation works only locally.
            </summary>
        </member>
        <member name="T:CMS.Chat.FetchDataFunc`2">
            <summary>
            Function to return data for ChatParametrizedCacheWrapper. It takes IChatCacheableParam as parameter.
            </summary>
            <typeparam name="TData">Type of return data</typeparam>
            <typeparam name="TParam">Type of parameter</typeparam>
            <param name="param">Parameter</param>
        </member>
        <member name="T:CMS.Chat.ChatParametrizedCacheWrapper`2">
            <summary>
            This class represents parametrized cache. This is cache which takes params in form of IChatCacheableParam, makes
            hash code from this param (CacheKey) and if this key exists in cache, it returns cache. If key does not exists,
            it uses function of type FetchDataFunc to get data and store them in cache.
             
            Function FetchDataFunc returns IEnumerable. This means that this cache is useful only for sequences.
            </summary>
            <typeparam name="TData">Type of cached data</typeparam>
            <typeparam name="TParam">Type of param</typeparam>
        </member>
        <member name="T:CMS.Chat.ChatParametrizedCacheWrapper`2.ParametrizedCacheWrapperData`1">
            <summary>
            Internal representation of data in ChatParametrizedCacheWrapper.
            </summary>
            <typeparam name="TDataInner">Payload</typeparam>
        </member>
        <member name="P:CMS.Chat.ChatParametrizedCacheWrapper`2.ParametrizedCacheWrapperData`1.Items">
            <summary>
            Items.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatParametrizedCacheWrapper`2.ParametrizedCacheWrapperData`1.LastChange">
            <summary>
            Last change of items.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatParametrizedCacheWrapper`2.#ctor(System.String,CMS.Chat.FetchDataFunc{`0,`1},System.TimeSpan)">
            <summary>
            Constructor.
            </summary>
            <param name="key">Unique key</param>
            <param name="fetchDataFunc">Function to retrieve data</param>
            <param name="maxDelay">Cache persistence</param>
        </member>
        <member name="M:CMS.Chat.ChatParametrizedCacheWrapper`2.GetData(`1)">
            <summary>
            Gets data from cache (if item in cache with key made from <paramref name="param"/> exists) or from function FetchDataFunc.
             
            Post cache filter is applied to data after taking it from cache.
             
            Null is returned if nothing was found.
            </summary>
            <param name="param">Parameter - data will be stored to (and retrieved from) cache based on this parameter.</param>
        </member>
        <member name="M:CMS.Chat.ChatParametrizedCacheWrapper`2.GetData(`1,System.Func{`0,System.Boolean})">
            <summary>
            Gets data from cache (if item in cache with key made from <paramref name="param"/> exists) or from function FetchDataFunc.
             
            Post cache filter is applied to data after taking it from cache.
             
            Null is returned if nothing was found.
            </summary>
            <param name="param">Parameter - data will be stored to (and retrieved from) cache based on this parameter.</param>
            <param name="postCacheFilter">Post cache filter - filter which will be applied to data after retrieval from cache</param>
        </member>
        <member name="T:CMS.Chat.FetchAllDataFunc`1">
            <summary>
            Function which returns all data in CurrentStateCacheWrapper. This function is used to load initial data. Then
            FetchChangedDataFunc is used to update current state.
            </summary>
            <typeparam name="TData">Type of data</typeparam>
        </member>
        <member name="T:CMS.Chat.FetchChangedDataFunc`1">
            <summary>
            This function returns changed data.
            </summary>
            <typeparam name="TData">Type of data</typeparam>
            <param name="since">Returns data changed since this time</param>
        </member>
        <member name="T:CMS.Chat.ChatCurrentStateCacheWrapper`2">
            <summary>
            This cache wrapper holds Dictionary of items called 'current state', which is bascically an key-value collection of items.
            Items in this collections can be modified by FetchChangedDataFunc.
             
            It takes two functions:
            FetchAllDataFunc - this function is used to load initial current state
            FetchChangedDataFunc - this function is used to load changes to current state in time
            </summary>
            <typeparam name="TData">Type of cached items</typeparam>
            <typeparam name="TKey">Type of primary key of items</typeparam>
        </member>
        <member name="T:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentStateCacheWrapperData`2">
            <summary>
            Internal representation of data stored in ChatCurrentStateCacheWrapper. It contains dictionary of TData indexed by TKey.
            </summary>
            <typeparam name="TKeyInner">Type of key in a dictionary</typeparam>
            <typeparam name="TDataInner">Type of item in a dictionary</typeparam>
        </member>
        <member name="P:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentStateCacheWrapperData`2.IsLoaded">
            <summary>
            Returns true if current state has been already loaded.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentStateCacheWrapperData`2.Items">
            <summary>
            Values in this dictionary (implementation of ICacheWrapperResponse's property). User is interested in this value.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentStateCacheWrapperData`2.Dictionary">
            <summary>
            Dictionary of items.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentStateCacheWrapperData`2.LastChange">
            <summary>
            Last change of data in this container.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentStateCacheWrapperData`2.SetLastChangeIfGreater(System.DateTime)">
            <summary>
            Sets LastChange to the value passed in parameter if this parameter is greater than current LastChange.
            </summary>
            <param name="newLastChange">New last change</param>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.#ctor(System.String,CMS.Chat.FetchAllDataFunc{`0},CMS.Chat.FetchChangedDataFunc{`0},System.TimeSpan)">
            <summary>
            Constructor.
            </summary>
            <param name="key">Unique key</param>
            <param name="fetchAllDataFunc">Function which loads all data</param>
            <param name="fetchChangedDataFunc">Function which loads changed data</param>
            <param name="maxDelay">Persistence of cache (how often fetchChangedDataFunc will be called)</param>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.UpdateIfOutdated">
            <summary>
            This method checks cache beacon and if it is needed (timeout or invalidation) it reloads data.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.GetDataFromCache">
            <summary>
            Gets data (CurrentStateCacheWrapperData) from classic CMS Cache. If data are not present, the new empty object is created and immediately inserted into cache.
             
            Only this method should be used to get data from Cache, because it is thread safe.
            </summary>
            <returns>Data from cache</returns>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.LoadCurrentState(CMS.Chat.ChatCurrentStateCacheWrapper{`0,`1}.CurrentStateCacheWrapperData{`1,`0})">
            <summary>
            Perform the first load of data and fills passed structure with results. fetchAllDataFunc function is used.
            </summary>
            <param name="currentState">CurrentState data structure to be filled</param>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.UpdateCurrentState(CMS.Chat.ChatCurrentStateCacheWrapper{`0,`1}.CurrentStateCacheWrapperData{`1,`0})">
            <summary>
            Updates data in current state data structure. Update means that only data changed since currentState.LastChange are loaded using fetchChangedDataFunc.
            </summary>
            <param name="currentState">CurrentState data structure to be updated</param>
        </member>
        <member name="P:CMS.Chat.ChatCurrentStateCacheWrapper`2.CurrentState">
            <summary>
            Current state of items. It is not older than 'maxDelay'
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.GetCurrentStateWithLastChange">
            <summary>
            Gets current state together with time of last change.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.ForceTryGetItem(`1,`0@)">
            <summary>
            Tries to get item from CurrentState. If item wasn't found, current state is reloaded and then it tries again.
            </summary>
            <param name="key">Primary key</param>
            <param name="item">Output data</param>
            <returns>True if item was found</returns>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.UpdateAndTryGetItem(`1,`0@)">
            <summary>
            Invalidates cache and then tries to get item.
            </summary>
            <param name="key">PK</param>
            <param name="item">Output data</param>
            <returns>True if item was found</returns>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.InvalidateLocally">
            <summary>
            Invalidates data - this means, that before next getting of data (get CurrentState) data will be updated.
             
            Only on this machine.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCurrentStateCacheWrapper`2.Invalidate">
            <summary>
            Invalidates data - this means, that before next getting of data (get CurrentState) data will be updated.
             
            Across web farms.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2">
            <summary>
            This cache wrapper combines CurrentStateWrapper and ParametrizedCacheWrapper. Where parametrized cache wrapper takes
            only one argument - DateTime. This argument is automatically wrapped in IChatCacheableParam.
            </summary>
            <typeparam name="TData">Type of data</typeparam>
            <typeparam name="TPrimaryKey">Type of primary key</typeparam>
        </member>
        <member name="T:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.SinceWhenCacheParam">
            <summary>
            Wraps one argument (DateTime) in class implementing IChatCacheableParam.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.SinceWhenCacheParam.SinceWhen">
            <summary>
            Since when data should be loaded.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.SinceWhenCacheParam.CacheKey">
            <summary>
            Cache key
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.#ctor(System.String,CMS.Chat.FetchAllDataFunc{`0},CMS.Chat.FetchChangedDataFunc{`0},System.TimeSpan)">
            <summary>
            Constructor. Inits inner ChatParametrizedCacheWrapper and ChatCurrentStateCacheWrapper
            </summary>
            <param name="key">Unique key</param>
            <param name="fetchAllDataFunc">Function to get all data (current state)</param>
            <param name="fetchChangedDataFunc">Function to get changed data</param>
            <param name="maxDelay">Cache persistence</param>
        </member>
        <member name="P:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.CurrentState">
            <summary>
            Current state of items. It is not older than 'maxDelay'
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.GetCurrentStateWithLastChange">
            <summary>
            Gets current state together with time of last change.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.ForceGetItem(`1,`0@)">
            <summary>
            Tries to get item from CurrentState. If item wasn't found, current state is reloaded and then it tries again.
            </summary>
            <param name="key">Primary key</param>
            <param name="item">Output data</param>
            <returns>True if item was found</returns>
        </member>
        <member name="M:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.UpdateAndTryGetItem(`1,`0@)">
            <summary>
            Invalidates cache and then tries to get item.
            </summary>
            <param name="key">PK</param>
            <param name="item">Output data</param>
            <returns>True if item was found</returns>
        </member>
        <member name="M:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.GetLatestData(System.DateTime)">
            <summary>
            Gets data from cache (if item in cache with key made from <paramref name="changedSince"/> exists). Otherwise it gets items from fetchChangedDataFunc.
             
            This function returns only data changed after <paramref name="changedSince"/>.
             
            Null is returned if nothing was found.
            </summary>
            <param name="changedSince">Data changed after this time will be returned.</param>
        </member>
        <member name="M:CMS.Chat.ChatIncrementalCacheWithCurrentStateWrapper`2.InvalidateCurrentState">
            <summary>
            Invalidates current state. Before next fetch of current state data (property CurrentState, method UpdateAndTryGetItem(), etc.)
            data will be reloaded from data source.
            </summary>
        </member>
        <member name="T:CMS.Chat.IChatCacheableParam">
            <summary>
            Parametrized cache accepts this interface as a parameter.
            </summary>
        </member>
        <member name="P:CMS.Chat.IChatCacheableParam.CacheKey">
            <summary>
            This key will be used as a cache key.
            </summary>
        </member>
        <member name="T:CMS.Chat.ICacheWrapperResponse`1">
            <summary>
            This interface is returned from Chat cache wrappers when collection of items and its last modification time are needed.
            </summary>
            <typeparam name="TData">Type of one item in collection</typeparam>
        </member>
        <member name="P:CMS.Chat.ICacheWrapperResponse`1.Items">
            <summary>
            Collection of items.
            </summary>
        </member>
        <member name="P:CMS.Chat.ICacheWrapperResponse`1.LastChange">
            <summary>
            DateTime of last modification time of Items.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatBadWordsException">
            <summary>
            Exception which is thrown when some user submitted text contains bad words
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatBadWordsException.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatBadWordsException.#ctor(System.String)">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatProtectionHelper">
            <summary>
            Provides methods for chat protection.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.IsSupportChatPanelEnabled">
            <summary>
            Indicates whether support chat panel is enabled based on chat settings and user permissions.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.CheckNameForBadWords(System.String)">
            <summary>
            Throws <see cref="T:CMS.Chat.ChatBadWordsException"/> if there are some bad words in name.
            </summary>
            <param name="name">Name to be checked for bad words</param>
            <exception cref="T:CMS.Chat.ChatBadWordsException">Throws ChatBadWordsException when bad word is found.</exception>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.HasCurrentUserPermission(CMS.Chat.ChatPermissionEnum)">
            <summary>
            Checks if current user (CMSUser) has permission to perform specified chat-related action.
            </summary>
            <param name="permission">Permission to check</param>
            <returns>True if user has permission, otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.HasUserPermission(CMS.Membership.UserInfo,CMS.Chat.ChatPermissionEnum)">
            <summary>
            Checks if specified user (CMSUser) has permission to perform specified chat-related action.
            </summary>
            <param name="user">UserInfo to check for permission</param>
            <param name="permission">Permission to check</param>
            <returns>True if user has permission, otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.CheckOperationForFlooding(CMS.Chat.FloodOperationEnum)">
            <summary>
            Checks if specified operation happened too early after the previous call. If it happened too early (earlier than timespan specified in settings),
            it is considered as flooding and operation should be stopped.
            </summary>
            <param name="operation">Type of operation</param>
            <returns>True if everything is ok. False if operation should be stopped.</returns>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.IsSupportChatPanelEnabledInternal">
            <summary>
            Indicates whether support chat panel is enabled based on chat settings and user permissions.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.CheckNameForBadWordsInternal(System.String)">
            <summary>
            Throws <see cref="T:CMS.Chat.ChatBadWordsException"/> if there are some bad words in name.
            </summary>
            <param name="name">Name to be checked for bad words</param>
            <exception cref="T:CMS.Chat.ChatBadWordsException">Throws ChatBadWordsException when bad word is found.</exception>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.HasCurrentUserPermissionInternal(CMS.Chat.ChatPermissionEnum)">
            <summary>
            Checks if current user (CMSUser) has permission to perform specified chat-related action.
            </summary>
            <param name="permission">Permission to check</param>
            <returns>True if user has permission, otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.HasUserPermissionInternal(CMS.Membership.UserInfo,CMS.Chat.ChatPermissionEnum)">
            <summary>
            Checks if specified user (CMSUser) has permission to perform specified chat-related action.
            </summary>
            <param name="user">UserInfo to check for permission</param>
            <param name="permission">Permission to check</param>
            <returns>True if user has permission, otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatProtectionHelper.CheckOperationForFloodingInternal(CMS.Chat.FloodOperationEnum)">
            <summary>
            Checks if specified operation happened too early after the previous call. If it happened too early (earlier than timespan specified in settings),
            it is considered as flooding and operation should be stopped.
            </summary>
            <param name="operation">Type of operation</param>
            <returns>True if everything is ok. False if operation should be stopped.</returns>
        </member>
        <member name="T:CMS.Chat.ChatSettingsProvider">
            <summary>
            Provides values for chat settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.ForceAnonymUniqueNicknamesSetting">
            <summary>
            If false, anonymou are allowed to have duplicate nicknames. If true, all nicknames must be uniques.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.UserLogoutTimeoutSetting">
            <summary>
            Gets timeout needed to automatically logout chat user. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.SupportLogoutTimeoutSetting">
            <summary>
            Gets timeout needed to automatically logout user from support chat. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.SupportRoomReleaseTimeoutSetting">
            <summary>
            Gets number of seconds needed to realease room taken by support engineer. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.GuestPrefixSetting">
            <summary>
            Gets prefix of guest user. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.RedirectURLJoinSetting">
            <summary>
            Gets redirect URL after join room. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.RedirectURLLeaveSetting">
            <summary>
            Gets redirect URL after leave room. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.RedirectURLLogoutSetting">
            <summary>
            Gets redirect URL after logout chat. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.RedirectURLLoginSetting">
            <summary>
            Gets redirect URL after login chat. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.AreAnonymsAllowedGloballySetting">
            <summary>
            Gets true, if anonymous users are allowed in chat.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.PostMessageFloodProtectionIntervalSetting">
            <summary>
            Post message flooding protection interval. In seconds.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.CreateRoomFloodProtectionIntervalSetting">
            <summary>
            Create room flooding protection interval. In seconds.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.JoinRoomFloodProtectionIntervalSetting">
            <summary>
            Join room flooding protection interval. In seconds.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.ChangeNicknameFloodProtectionIntervalSetting">
            <summary>
            Change nickname flooding protection interval. In seconds.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.KickLastingIntervalSetting">
            <summary>
            Kick lasting interval.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.MaximumMessageLengthSetting">
            <summary>
            Kick lasting interval.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.IsFloodingProtectionEnabledSetting">
            <summary>
            Gets true if flooding protection is enabled.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.FirstLoadMessagesCountSetting">
            <summary>
            Count of messages loaded on first load.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.GlobalPingIntervalSetting">
            <summary>
            Global ping (method Ping() on service) interval.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.RoomPingIntervalSetting">
            <summary>
            Room ping interval.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.WPPagingItems">
            <summary>
            Items per page default setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.WPGroupPagesBy">
            <summary>
            Number of pages in one group default setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.WPShowFilterLimit">
            <summary>
            Show filter limit default setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.WPSearchModeMaxUsers">
            <summary>
            Search mode - response max users default limit.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.WPInviteModePagingItems">
            <summary>
            Items per page limit for webparts in invite mode.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.WPInviteModeSearchMode">
            <summary>
            Items per page limit for webparts in invite mode.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.EnableBBCodeSetting">
            <summary>
            Enabled BB Code globally setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.ResolveURLEnabled">
            <summary>
            Enabled URL resolving in messages setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.EnableSmileys">
            <summary>
            Enabled smileys globally setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.EnableSoundLiveChat">
            <summary>
            Enabled sound in live chat setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.EnableSoundSupportChat">
            <summary>
            Enabled sound in support chat setting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.DaysNeededToDeleteRecordsSetting">
            <summary>
            Days needed to delete old chat records.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationRoomMessages">
            <summary>
            Gets default messages transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationRoomUsers">
            <summary>
            Gets default room users transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationRoomName">
            <summary>
            Gets default room name transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationRooms">
            <summary>
            Gets default rooms transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationNotifications">
            <summary>
            Gets default notification transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationOnlineUsers">
            <summary>
            Gets default online users transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationErrors">
            <summary>
            Gets default errors transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationErrorsDeleteAll">
            <summary>
            Gets default errors delete all transformation name. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationSupportRequest">
            <summary>
            Gets default support request transformation. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.TransformationInitiatedChat">
            <summary>
            Gets default initiated chat transformation. Value is taken from settings.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.IsSupportEnabledSetting">
            <summary>
            Gets true if support chat is enabled.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.SupportMessageSendToSetting">
            <summary>
            Gets the email address where support messages are sent to.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.ChatAdministrationPopupWindowUrl">
            <summary>
            Gets address of support chat popup window opened from Desk.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.ChatRoomPopupWindowUrl">
            <summary>
            Returns chat room window url from global chat settings
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.SupportMailDialogURL">
            <summary>
            Gets address of offline support form. This is a form which is used to send support requests to mail.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSettingsProvider.IsSupportMailEnabledAndValid">
            <summary>
            Gets true if sending support requests to mail is enabled and addresses (from and to) are valid emails.
             
            Only lenght of those addresses are checked because validity is handled by Settings validation regex in Site manager.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatModuleMetadata">
            <summary>
            Represents the Chat module metadata.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatModuleMetadata.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="T:CMS.Chat.AdminLevelEnum">
            <summary>
            Possible admin levels of chat user in room.
            </summary>
        </member>
        <member name="F:CMS.Chat.AdminLevelEnum.None">
            <summary>
            Noting (can't join in private rooms. Is the same as Join in public rooms).
            </summary>
        </member>
        <member name="F:CMS.Chat.AdminLevelEnum.Join">
            <summary>
            Can join to the private rooms.
            </summary>
        </member>
        <member name="F:CMS.Chat.AdminLevelEnum.Admin">
            <summary>
            Is admin in room.
            </summary>
        </member>
        <member name="F:CMS.Chat.AdminLevelEnum.Creator">
            <summary>
            Is creator of the room. This admin level can not be revoked.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatNotificationTypeEnum">
            <summary>
            Types of chat notifications.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.Invitation">
            <summary>
            Invitation
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.InvitationDeclined">
            <summary>
            Decline.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.InvitationAccepted">
            <summary>
            Accept.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.NicknameAutomaticallyChanged">
            <summary>
            Nickname was changed by system (when CMS user choose nickname, all anonyms with this nicknames are renamed).
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.Kicked">
            <summary>
            Receiver of this message was kicked by sender from room with RoomID of this notification.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.KickedPermanently">
            <summary>
            Receiver of this message was kicked by sender from room with RoomID of this notification. This kick is permanent.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.AdminAdded">
            <summary>
            Receiver of this message was added to the list of room admins
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationTypeEnum.AdminDeleted">
            <summary>
            Receiver of this message was deleted from the list of room admins
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatPermissionEnum">
            <summary>
            Enum of chat permissions.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatPermissionEnum.EnterSupport">
            <summary>
            Enter support permission.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatPermissionEnum.ManageRooms">
            <summary>
            User with this permission is something like global admin for chat (can create rooms, is admin in every room, etc.).
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatPermissionEnum.CreateRoomsFromLiveSite">
            <summary>
            User with this permission will be able to create rooms from the live site.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatRoomMessagesDirectionEnum">
            <summary>
            Directions for chat room messages window
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatRoomMessagesDirectionEnum.Up">
            <summary>
            Up.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatRoomMessagesDirectionEnum.Down">
            <summary>
            Down.
            </summary>
        </member>
        <member name="T:CMS.Chat.FloodOperationEnum">
            <summary>
            Operations which are checked for flooding.
            </summary>
        </member>
        <member name="F:CMS.Chat.FloodOperationEnum.PostMessage">
            <summary>
            Post message operation
            </summary>
        </member>
        <member name="F:CMS.Chat.FloodOperationEnum.CreateRoom">
            <summary>
            Create room operation.
            </summary>
        </member>
        <member name="F:CMS.Chat.FloodOperationEnum.JoinRoom">
            <summary>
            Join room operation.
            </summary>
        </member>
        <member name="F:CMS.Chat.FloodOperationEnum.ChangeNickname">
            <summary>
            Change nickname operation.
            </summary>
        </member>
        <member name="T:CMS.Chat.InitiatedChatRequestStateEnum">
            <summary>
            State of initiated chat request.
            </summary>
        </member>
        <member name="F:CMS.Chat.InitiatedChatRequestStateEnum.New">
            <summary>
            Default state. User will be notified about requests in this state.
            </summary>
        </member>
        <member name="F:CMS.Chat.InitiatedChatRequestStateEnum.Accepted">
            <summary>
            User has accepted this request and is (or was) chatting with supporter.
            </summary>
        </member>
        <member name="F:CMS.Chat.InitiatedChatRequestStateEnum.Declined">
            <summary>
            Request was declined and shall not be shown to user ever again.
            </summary>
        </member>
        <member name="F:CMS.Chat.InitiatedChatRequestStateEnum.Deleted">
            <summary>
            Request is marked for deletion - should be removed from cache and will be deleted from database in the next cleaning.
            </summary>
        </member>
        <member name="T:CMS.Chat.JoinRoomResultEnum">
            <summary>
            Possible results from JoinRoom operations.
            </summary>
        </member>
        <member name="F:CMS.Chat.JoinRoomResultEnum.Joined">
            <summary>
            User joined to the room in current operation.
            </summary>
        </member>
        <member name="F:CMS.Chat.JoinRoomResultEnum.AlreadyIn">
            <summary>
            User was already joined.
            </summary>
        </member>
        <member name="F:CMS.Chat.JoinRoomResultEnum.WrongPassword">
            <summary>
            Wrong password.
            </summary>
        </member>
        <member name="F:CMS.Chat.JoinRoomResultEnum.RoomDisabled">
            <summary>
            Room was not found or is disabled.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatServiceException">
            <summary>
            Exception used to pass status code and status message to the service.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatServiceException.#ctor(CMS.Chat.ChatResponseStatusEnum)">
            <summary>
            Constucts exception. Message is set to the default value associated with status code.
            </summary>
            <param name="statusCode">Code of the response</param>
        </member>
        <member name="M:CMS.Chat.ChatServiceException.#ctor(CMS.Chat.ChatResponseStatusEnum,System.String)">
            <summary>
            Constructs exception.
            </summary>
            <param name="statusCode">Code</param>
            <param name="statusMessage">Status message</param>
        </member>
        <member name="P:CMS.Chat.ChatServiceException.StatusCode">
            <summary>
            Status code of chat response.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatServiceException.StatusMessage">
            <summary>
            Message of chat response.
            </summary>
        </member>
        <member name="T:CMS.Chat.InitiateChatRequestData">
            <summary>
            Data class containing information about chat request. This class is send to client.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.InitiatorName">
            <summary>
            Nickname of chat user who initiated this chat.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.RoomID">
            <summary>
            ID of room which was created for this conversation.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.Messages">
            <summary>
            Messages written by supporter.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.IsRemoved">
            <summary>
            If true, request was accepted or rejected and should be hidden on client.
             
            Request should be removed if state is something else than New.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.LastChange">
            <summary>
            Time when was this request changed for the last time. This time should be send back to server by client in next request.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.RequestState">
            <summary>
            State of this request.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.ChangeType">
            <summary>
            Type of change. Based on this value item will be removed from cache or just modified. Item should be removed only if it is in the Deleted state.
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.PK">
            <summary>
            This request will be stored under this key in cache. It can be either UserID or ContactID (depending how was it retrieved from DB).
            </summary>
        </member>
        <member name="P:CMS.Chat.InitiateChatRequestData.ChangeTime">
            <summary>
            When was this request changed for the last time (new message in room, changed state, etc.).
            </summary>
        </member>
        <member name="T:CMS.Chat.SupportRoomsData">
            <summary>
            Data about support rooms.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomsData.LastChange">
            <summary>
            Datetime of the newest message added to support rooms.
             
            Client should send this datetime in next SupportPing().
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomsData.List">
            <summary>
            Rooms with new messages.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatInitiatedChatRequestInfo">
            <summary>
            ChatInitiatedChatRequestInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatInitiatedChatRequestInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatInitiatedChatRequestInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestLastModification">
            <summary>
            Time of last modification of this request.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestRoomID">
            <summary>
            Conversation will take place in this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestUserID">
            <summary>
            Request is meant for user with this ID. If it is null, ContactID is used.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestID">
            <summary>
            Unique identifier of this request.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestInitiatorName">
            <summary>
            Friendly name of initiator of this chat (usually it will be just nickanme of user who started inserted this request).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestInitiatorChatUserID">
            <summary>
            Chat user who inserted this request.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestContactID">
            <summary>
            Request is meant for contact with this ID. If it is null, UserID is used.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatInitiatedChatRequestInfo.InitiatedChatRequestState">
            <summary>
            State of this request.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatInitiatedChatRequestInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatInitiatedChatRequestInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatInitiatedChatRequestInfoProvider">
            <summary>
            Class providing ChatInitiatedChatRequestInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.GetInitiatedChatRequests">
            <summary>
            Returns the query for all chat initiated chat requests.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.GetChatInitiatedChatRequestInfo(System.Int32)">
            <summary>
            Returns initiated chat request with specified ID.
            </summary>
            <param name="requestId">Initiated chat request ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.SetChatInitiatedChatRequestInfo(CMS.Chat.ChatInitiatedChatRequestInfo)">
            <summary>
            Sets (updates or inserts) specified initiated chat request.
            </summary>
            <param name="requestObj">Initiated chat request to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.DeleteChatInitiatedChatRequestInfo(CMS.Chat.ChatInitiatedChatRequestInfo)">
            <summary>
            Deletes specified initiated chat request.
            </summary>
            <param name="requestObj">Initiated chat request to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.DeleteChatInitiatedChatRequestInfo(System.Int32)">
            <summary>
            Deletes initiated chat request with specified ID.
            </summary>
            <param name="requestId">Initiated chat request ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.GetAllInitiateRequests(System.Boolean)">
            <summary>
            Gets all active initiated chat request.
            </summary>
            <param name="byUser">If true, requests will be grouped by user (PK will be UserID). Otherwise it will be ContactID.</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.GetChangedInitiateRequests(System.Boolean,System.DateTime)">
            <summary>
            Gets requests which has changed (change of state or new message) since changedSince.
            </summary>
            <param name="byUser">If true, requests will be grouped by user (PK will be UserID). Otherwise it will be ContactID.</param>
            <param name="changedSince">Request changed since this time will be returned</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.GetInitiateRequest(System.Nullable{System.Int32},System.Nullable{System.Int32})">
            <summary>
            Finds initiated chat request by user id or contact id. One of these has to be not null.
            </summary>
            <param name="userID">If not null, finds initiate request by user id</param>
            <param name="contactID">If not null, finds initiate request by contact id</param>
            <returns>ChatInitiatedChatRequestInfo or null if the request was not found</returns>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.GetInitiateRequest(System.Int32)">
            <summary>
            Gets initiated chat request by room ID.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestInfoProvider.CleanOldRequests">
            <summary>
            Cleans old initiated chat requests. First, requests are changed to the 'deleted' state, co they can be removed from cache and on the second pass, they are completely deleted.
            </summary>
            <returns>Number of completely deleted requests.</returns>
        </member>
        <member name="T:CMS.Chat.ChatInitiatedChatRequestHelper">
            <summary>
            Helper class for initiated chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestHelper.InitiateChatByUserID(System.Int32)">
            <summary>
            Initiates chat with user. User can't be public user.
            </summary>
            <param name="userID">ID of user to initiate chat with.</param>
            <returns>Room which was created for this conversation.</returns>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestHelper.InitiateChatByContactID(System.Int32)">
            <summary>
            Initiates chat with Contact.
            </summary>
            <param name="contactID">ID of contact to initiate chat with.</param>
            <returns>Room created for this communication.</returns>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestHelper.AcceptChatRequest(CMS.Chat.ChatInitiatedChatRequestInfo)">
            <summary>
            Accepts request. Marks it as accepted, gives user join rights to this room and logs him into chat.
            </summary>
            <param name="request">Request to accept.</param>
        </member>
        <member name="M:CMS.Chat.ChatInitiatedChatRequestHelper.DeclineChatRequest(CMS.Chat.ChatInitiatedChatRequestInfo)">
            <summary>
            Declines request
            </summary>
            <param name="request">Initiated chat request to decline.</param>
        </member>
        <member name="T:CMS.Chat.RoomAdminState">
            <summary>
            Admin state of one user in one room.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomAdminState.RoomID">
            <summary>
            Room ID
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomAdminState.LastChange">
            <summary>
            Last change of admin state
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomAdminState.AdminLevel">
            <summary>
            Current admin level
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomAdminState.IsOneOnOne">
            <summary>
            Is room one to one
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomAdminState.#ctor(System.Int32,System.DateTime,CMS.Chat.AdminLevelEnum,System.Boolean)">
            <summary>
            Constructor.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="lastChange">Last change of admin state</param>
            <param name="adminLevel">Admin level</param>
            <param name="isOneOnOne">Is room one to one</param>
        </member>
        <member name="T:CMS.Chat.InitiatedChats">
            <summary>
            This class holds initiated chat requests in cache. There are two caches grouped by UserID and ContactID, so checking for
            request is fast.
             
            Cache invalidates itself after certain amount of time (no manual invalidation).
            </summary>
        </member>
        <member name="M:CMS.Chat.InitiatedChats.#ctor(System.String)">
            <summary>
            Constructs InitiatedChats. Initializes cache wrappers.
            </summary>
            <param name="parentName">This string is used as a cache key - it has to be unique for every created instance of this class</param>
        </member>
        <member name="M:CMS.Chat.InitiatedChats.GetInitiatedChatRequest(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.DateTime})">
            <summary>
            Gets Initiated chat request by ContactID or UserID if exists.
             
            First it searches request by contactID, if request is found, it is returned.
             
            Then it searches by userID.
             
            If request is not found or was created before <paramref name="changedSince"/> null is returned.
            </summary>
            <param name="contactID">Request for this contact is searched. Ignored if null.</param>
            <param name="userID">Request for this user is searched. Ignored if null.</param>
            <param name="changedSince">Last change this client received.</param>
        </member>
        <member name="M:CMS.Chat.InitiatedChats.InvalidateContactIDCache">
            <summary>
            Invalidates cache organized by ContactID. So on the next call to GetInitiatedChatRequest, result will be 100% accurate.
            </summary>
        </member>
        <member name="M:CMS.Chat.InitiatedChats.InvalidateUserIDCache">
            <summary>
            Invalidates cache organized by UserID. So on the next call to GetInitiatedChatRequest, result will be 100% accurate.
            </summary>
        </member>
        <member name="T:CMS.Chat.MessageCacheParams">
            <summary>
            Params for getting messages from database. Those params have to be wrapped in class to be usable by ChatParametrizedCacheWrapper.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageCacheParams.MaxCount">
            <summary>
            Maximum number of messages retrieved. Or unlimited if null.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageCacheParams.SinceWhen">
            <summary>
            Messages sent since when.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageCacheParams.CacheKey">
            <summary>
            Unique key of this params - for caching.
            </summary>
        </member>
        <member name="T:CMS.Chat.OnlineSupport">
            <summary>
            Class holding cache of users online on support.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineSupport.OnlineSupporters">
            <summary>
            Dictionary of chat users who are online on support. Dictionary is indexed by chat user ID.
            </summary>
        </member>
        <member name="M:CMS.Chat.OnlineSupport.InvalidateOnlineSupportCache">
            <summary>
            Invalidates cache of online supporters. This method has to be called after user logs into or leaves support. Otherwise cache can be outdated.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineSupport.OnlineSupportersCount">
            <summary>
            Gets count of users online on support.
            </summary>
        </member>
        <member name="M:CMS.Chat.OnlineSupport.#ctor(System.String,System.Int32)">
            <summary>
            Constructor. Initializes cache.
            </summary>
            <param name="parentName">This string is used as a cache key - it has to be unique for every instance of this class</param>
            <param name="siteID">Supporters on this site will be handled by this class</param>
        </member>
        <member name="T:CMS.Chat.RoomsContainer">
            <summary>
            This class holds rooms for one site. Rooms are stored in classic private Dictionary field, so if Cache behavior is desired (ability to clear it, etc.) instance of this class has to be put into Cache.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomsContainer.PublicRooms">
            <summary>
            Collection of public rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.#ctor(System.String,System.Int32,System.TimeSpan)">
            <summary>
            Constructor. <paramref name="parentName"/> is used as cache key.
            </summary>
            <param name="parentName">Unique name of parent object</param>
            <param name="siteID">Site ID</param>
            <param name="maxDelay">Max delay</param>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.GetRoom(System.Int32)">
            <summary>
            Gets RoomState. Room is specified by <paramref name="chatRoomID"/>.
             
            Rooms are updated before retrieving if needed.
            </summary>
            <param name="chatRoomID">ID of a chat room</param>
            <returns>RoomState or null if room was not found</returns>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.GetChangedRooms(System.Nullable{System.DateTime},CMS.Chat.ChatUserInfo)">
            <summary>
            Gets changed rooms by specified chat user.
            </summary>
            <param name="sinceWhen">Rooms changed since this time will be returned. If null, only accessible rooms will be returned</param>
            <param name="chatUser">Chat user whose accessible rooms should be returned. If null, only public rooms will be returned.</param>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.ForceTryGetRoom(System.Int32,CMS.Chat.RoomState@)">
            <summary>
            Gets room from cache. If room is not found, new rooms from database are retrieved and then the finding is made again.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="roomState">Output RoomState</param>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.ForceUpdate">
            <summary>
            Updates rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.UpdateRoomsIfNeeded">
            <summary>
            Updates (takes changes from DB) if time since last update is greater than maxDelay.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomsContainer.GetPrivateRoom(System.Int32)">
            <summary>
            Tries to return private room. If room is not found, returns null.
            </summary>
            <param name="roomID">Room ID</param>
            <returns>RoomState or null</returns>
        </member>
        <member name="T:CMS.Chat.SupportRoom">
            <summary>
            Class storing information about room which has some pending messages needed support. This class is intended to be retrieved from DB and stored in chache.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoom.ChatRoomID">
            <summary>
            Room id.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoom.DisplayName">
            <summary>
            Room display name.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoom.UnreadMessagesCount">
            <summary>
            Count of new messages.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoom.TakenByChatUserID">
            <summary>
            Id of chat user who took this room (so this user is now providing support in this room). If null, room is not taken and should be displayed to everybody.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoom.TakenStateLastChange">
            <summary>
            Time of last change of taken state (taken -> released, taken -> resolved, released -> taken).
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoom.ChangeTime">
            <summary>
            Last change of this record (it is either TakenStateLastChange or time of last message added - the greater of both).
            </summary>
        </member>
        <member name="T:CMS.Chat.SupportRooms">
            <summary>
            This class stores cache of SupportRoom (rooms needed support). Those rooms are stored in cache under the key which is time of last change.
            </summary>
        </member>
        <member name="T:CMS.Chat.SupportRooms.SinceWhenCacheParam">
            <summary>
            Wraps one argument (DateTime?) in class implementing IChatCacheableParam.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRooms.SinceWhenCacheParam.SinceWhen">
            <summary>
            Since when data should be loaded.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRooms.SinceWhenCacheParam.CacheKey">
            <summary>
            Cache key
            </summary>
        </member>
        <member name="M:CMS.Chat.SupportRooms.SinceWhenCacheParam.#ctor(System.Nullable{System.DateTime})">
            <summary>
            Constructs SinceWhenCacheParam.
            </summary>
            <param name="sinceWhen">since when</param>
        </member>
        <member name="M:CMS.Chat.SupportRooms.#ctor(System.String,System.Int32)">
            <summary>
            Constructs SupportRooms. Initializes cache.
            </summary>
            <param name="parentName">This string is used as a cache key - it has to be unique for every created instance of this class</param>
            <param name="siteID">Taken rooms on this site (and global rooms) will be stored in this cache</param>
        </member>
        <member name="M:CMS.Chat.SupportRooms.GetChangedSupportRooms(System.Int32,System.Nullable{System.DateTime})">
            <summary>
            Gets room which needs support.
            </summary>
            <param name="supportChatUserID">ID of chat user who is online on support right now. Rooms will be filtered based on this param (if room is taken by somebody else, it won't be send, etc.)</param>
            <param name="sinceWhen">Rooms changed since this time will be send. All pending support request will be send if null.</param>
        </member>
        <member name="T:CMS.Chat.ChatOnlineSupportHelper">
            <summary>
            Helper class for online support.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportHelper.OnlineSupport">
            <summary>
            Shortcut to online supporters cache for the current site.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportHelper.SupportChatUserIDSession">
            <summary>
            ID of chat user who is logged in support "at this computer". Value is taken from and saved into session.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportHelper.SupportChatUser">
            <summary>
            Gets currently logged in supporter or null if supporter is not online.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportHelper.IsSupportOnline">
            <summary>
            True if supporter is online at this computer.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportHelper.EnterSupport">
            <summary>
            Logs currently logged in CMS User into support chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportHelper.LeaveSupport">
            <summary>
            Loggs current support user out of support chat.
            </summary>
        </member>
        <member name="T:CMS.Chat.OldInitiatedChatRequestsCleaner">
            <summary>
            Sheduled task which cleans old, unused chat records (rooms, messages, users). Setting how old data should be cleaned is in Settings.
            </summary>
        </member>
        <member name="M:CMS.Chat.OldInitiatedChatRequestsCleaner.Execute(CMS.Scheduler.TaskInfo)">
            <summary>
            Cleans old chat records.
            </summary>
            <param name="task">Container with task information</param>
            <returns>Number of records cleaned</returns>
        </member>
        <member name="T:CMS.Chat.DeletedRoomsCleaner">
            <summary>
            Scheduled task which cleans rooms marked for deletion.
            </summary>
        </member>
        <member name="M:CMS.Chat.DeletedRoomsCleaner.Execute(CMS.Scheduler.TaskInfo)">
            <summary>
            Executes task.
            </summary>
            <param name="task">TaskInfo</param>
            <returns>Number of rooms deleted</returns>
        </member>
        <member name="T:CMS.Chat.UsersInRoomsCountsData">
            <summary>
            Counts of users in all accesible or changed rooms.
            </summary>
        </member>
        <member name="P:CMS.Chat.UsersInRoomsCountsData.LastChange">
            <summary>
            Last change of users counts.
            </summary>
        </member>
        <member name="P:CMS.Chat.UsersInRoomsCountsData.List">
            <summary>
            Counts
            </summary>
        </member>
        <member name="T:CMS.Chat.OnlineUsersCountData">
            <summary>
            Info about counts of users in room.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUsersCountData.RoomID">
            <summary>
            RoomID
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUsersCountData.UsersCount">
            <summary>
            Number of online users.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUsersCountData.LastChange">
            <summary>
            Last change of online users count.
            </summary>
        </member>
        <member name="T:CMS.Chat.DeletedRecords">
            <summary>
            Class holding information about number of records deleted by scheduled task 'Delete old chat records'
            </summary>
        </member>
        <member name="P:CMS.Chat.DeletedRecords.MessagesDeleted">
            <summary>
            Messages deleted
            </summary>
        </member>
        <member name="P:CMS.Chat.DeletedRecords.RoomsDeleted">
            <summary>
            Rooms deleted
            </summary>
        </member>
        <member name="P:CMS.Chat.DeletedRecords.UsersDeleted">
            <summary>
            Users deleted
            </summary>
        </member>
        <member name="T:CMS.Chat.KickedUsers">
            <summary>
            Class holding kicked users. It should be stored in cache.
            </summary>
        </member>
        <member name="M:CMS.Chat.KickedUsers.#ctor(System.Collections.Generic.Dictionary{System.Int32,System.DateTime})">
            <summary>
            Constructor.
            </summary>
            <param name="kickedUsers">Kicked users in form Chat user id -> Kick expiration</param>
        </member>
        <member name="M:CMS.Chat.KickedUsers.IsUserKicked(System.Int32,System.Int32@)">
            <summary>
            Checks if user is kicked now.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="forHowLong">Output parameter. After how many seconds user will be able to join room.</param>
        </member>
        <member name="T:CMS.Chat.UserRoomAdminState">
            <summary>
            This class holds information about admin states of one user.
            </summary>
        </member>
        <member name="F:CMS.Chat.UserRoomAdminState.lastChange">
            <summary>
            Last change of admin states.
            </summary>
        </member>
        <member name="M:CMS.Chat.UserRoomAdminState.#ctor(System.Collections.Generic.IEnumerable{CMS.Chat.RoomAdminState})">
            <summary>
            Constructor
            </summary>
            <param name="roomAdminStates">Admin states of one user</param>
        </member>
        <member name="M:CMS.Chat.UserRoomAdminState.GetChangedRooms(System.DateTime)">
            <summary>
            Gets admin states which has changed since specified date.
            </summary>
            <param name="sinceWhen">Admin states changes later than this date</param>
        </member>
        <member name="M:CMS.Chat.UserRoomAdminState.GetRoomsWithJoinRights">
            <summary>
            Returns rooms IDs with rights are higher than None and are not one to one.
            </summary>
        </member>
        <member name="M:CMS.Chat.UserRoomAdminState.GetAdminLevelInRoom(System.Int32)">
            <summary>
            Gets admin level in specified room. Returns None if this room was not found.
            </summary>
            <param name="chatRoomID">Room ID</param>
        </member>
        <member name="T:CMS.Chat.UsersRoomAdminStates">
            <summary>
            Upper class for storing information about admin rights of users in rooms.
             
            Information are stored in a hierarchy:
             
            UsersRoomAdminStates has dictionary indexed by ints - those are chat user IDs. Values are UserRoomAdminState.
            UserRoomAdminStates has dictionary indexed by ints - those are room IDs. Values are RoomAdminState - admin state in room.
            </summary>
        </member>
        <member name="M:CMS.Chat.UsersRoomAdminStates.#ctor(System.String,System.TimeSpan)">
            <summary>
            Constructor
            </summary>
            <param name="parentName">Unique name of parent (for caching)</param>
            <param name="maxDelay">Maximum delay of retrieving info from cache</param>
        </member>
        <member name="M:CMS.Chat.UsersRoomAdminStates.GetRoomsWithChangedRights(System.Int32,System.DateTime)">
            <summary>
            Gets rooms where admin rights were changed for specified user.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="sinceWhen">Rights were changed since this time</param>
            <returns>RoomAdminStates</returns>
        </member>
        <member name="M:CMS.Chat.UsersRoomAdminStates.GetRoomsWithJoinRights(System.Int32)">
            <summary>
            Gets non one to one room where specified user has more rights than 'None'.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <returns>IDs of rooms with raised privileges</returns>
        </member>
        <member name="M:CMS.Chat.UsersRoomAdminStates.GetAdminLevelInRoom(System.Int32,System.Int32)">
            <summary>
            Gets admin level of user in a room. None is returned if room was not found.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="chatRoomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.UsersRoomAdminStates.IsUserAdmin(System.Int32,System.Int32)">
            <summary>
            Checks if user is Admin (or creator) in room.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="chatRoomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.UsersRoomAdminStates.Invalidate(System.Int32)">
            <summary>
            Invalidates admins states cache for specified user.
            </summary>
            <param name="chatUserID">Chat user ID</param>
        </member>
        <member name="T:CMS.Chat.SiteOnlineUsers">
            <summary>
            Class holding cached online users and notification (only times) on one site.
            </summary>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.#ctor(System.String,System.Int32)">
            <summary>
            Constructor.
            </summary>
            <param name="parentName">Unique name of parent</param>
            <param name="siteID">Site ID</param>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.GetOnlineUsers(System.Nullable{System.DateTime})">
            <summary>
            Gets online users from Cache.
            </summary>
            <param name="sinceWhen">If null, all online users on this site will be returned. If not null users changed since this time will be returned.</param>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.SearchOnlineUsers(System.String,System.Int32,System.Nullable{System.Int32})">
            <summary>
            Searches online users.
            </summary>
            <param name="nickname">Users with containing this substring wil be returned. Comparision is incasesensitive.</param>
            <param name="topN">Maximum number of records.</param>
            <param name="invitedToRoomID">If not null, only users who can be invited to this room will be returned</param>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.GetNotifications(System.Int32,System.Nullable{System.DateTime})">
            <summary>
            Gets new notifications for user.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="sinceWhen">Notification changed (read or send) after this time will be returned. If null, all unread notifications will be returned.</param>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.IsChatUserOnline(System.Int32)">
            <summary>
            Checks if chat user with specified ID is online.
            </summary>
            <param name="chatUserID">Id of chat user</param>
            <returns>True (is online) or false (is not online)</returns>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.GetOnlineUser(System.Int32)">
            <summary>
            Gets online user. Caller of this method assumes, that user is online. So if user is not found in cache,
            database will be queried.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <returns>OnlineUserData or null if user is not online</returns>
        </member>
        <member name="M:CMS.Chat.SiteOnlineUsers.Invalidate">
            <summary>
            Invalidates online users cache. current state. Before next fetch of current state data (property CurrentState, method UpdateAndTryGetItem(), etc.)
            data will be reloaded from data source.
            </summary>
        </member>
        <member name="T:CMS.Chat.SiteRoomsOnlineUsersCounts">
            <summary>
            Class holding counts of online users in rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.SiteRoomsOnlineUsersCounts.#ctor(System.Collections.Generic.IEnumerable{CMS.Chat.OnlineUsersCountData})">
            <summary>
            Constructor.
            </summary>
            <param name="onlineUsersCounts">List of online users</param>
        </member>
        <member name="P:CMS.Chat.SiteRoomsOnlineUsersCounts.Item(System.Int32)">
            <summary>
            Gets online users counts in one room.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="T:CMS.Chat.SiteState">
            <summary>
            Class holds four helper classes (rooms, online users, online supporters and messages in support rooms) and provide accessors for them.
            </summary>
        </member>
        <member name="P:CMS.Chat.SiteState.Rooms">
            <summary>
            Gets instance of SiteRooms.
            </summary>
        </member>
        <member name="P:CMS.Chat.SiteState.OnlineUsers">
            <summary>
            Gets instance of SiteOnlineUsers.
            </summary>
        </member>
        <member name="P:CMS.Chat.SiteState.OnlineSupport">
            <summary>
            Gets instance of OnlineSupport (cache of supporters online on this site).
            </summary>
        </member>
        <member name="P:CMS.Chat.SiteState.SupportRooms">
            <summary>
            Gets instance of SupportRooms (cache of messages in support rooms).
            </summary>
        </member>
        <member name="P:CMS.Chat.SiteState.SiteID">
            <summary>
            Gets SiteID of site which is represented by this SiteState.
            </summary>
        </member>
        <member name="M:CMS.Chat.SiteState.#ctor(System.String,System.Int32)">
            <summary>
            Constructor.
            </summary>
            <param name="parentName">Unique name of a parent class.</param>
            <param name="siteID">Site ID</param>
        </member>
        <member name="T:CMS.Chat.OldRecordsCleaner">
            <summary>
            Sheduled task which cleans old, unused chat records (rooms, messages, users). Setting how old data should be cleaned is in Settings.
            </summary>
        </member>
        <member name="M:CMS.Chat.OldRecordsCleaner.Execute(CMS.Scheduler.TaskInfo)">
            <summary>
            Cleans old chat records.
            </summary>
            <param name="task">Container with task information</param>
            <returns>Number of records cleaned</returns>
        </member>
        <member name="T:CMS.Chat.ChatOnlineSupportInfo">
            <summary>
            ChatOnlineSupportInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatOnlineSupportInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatOnlineSupportInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportInfo.ChatOnlineSupportLastChecking">
            <summary>
            DateTime of last support ping made by this instance.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportInfo.ChatOnlineSupportChatUserID">
            <summary>
            Chat user who is online as a support.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportInfo.ChatOnlineSupportID">
            <summary>
            ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineSupportInfo.ChatOnlineSupportToken">
            <summary>
            Unique token.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatOnlineSupportInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatOnlineSupportInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatOnlineSupportInfoProvider">
            <summary>
            Class providing ChatOnlineSupportInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.GetChatOnlineSupportEngineers">
            <summary>
            Returns the query for all chat online support engineers.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.GetChatOnlineSupportInfo(System.Int32)">
            <summary>
            Returns online support engineer with specified ID.
            </summary>
            <param name="engineerId">Online support engineer ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.GetChatOnlineSupportInfo(System.Guid)">
            <summary>
            Returns online support engineer with specified GUID.
            </summary>
            <param name="engineerGuid">Online support engineer GUID.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.SetChatOnlineSupportInfo(CMS.Chat.ChatOnlineSupportInfo)">
            <summary>
            Sets (updates or inserts) specified online support engineer.
            </summary>
            <param name="engineerObj">Online support engineer to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.DeleteChatOnlineSupportInfo(CMS.Chat.ChatOnlineSupportInfo)">
            <summary>
            Deletes specified online support engineer.
            </summary>
            <param name="engineerObj">Online support engineer to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.DeleteChatOnlineSupportInfo(System.Int32)">
            <summary>
            Deletes online support engineer with specified ID.
            </summary>
            <param name="engineerId">Online support engineer ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.UpdateLastChecking(System.Int32,System.Int32)">
            <summary>
            Updates lastChecking info to GETDATE() for selected online support engineer.
            </summary>
            <param name="siteID">Last checking for user will be updated on this site</param>
            <param name="chatUserID">ID of chat user who is online on support</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.GetAllOnlineSupporters(System.Int32)">
            <summary>
            Gets dictionary (ChatUserID => ChatOnlineSupportInfo) with all online supporters from DB.
            </summary>
            <param name="siteID">Supporters online on this site will be returned</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.EnterSupport(System.Int32,System.Int32)">
            <summary>
            Inserts user into table Chat_OnlineSupport. If user is already logged into support, it returns existing token. Otherwise it generates new token and returns it.
            </summary>
            <param name="siteID">User will be logged into support on this site</param>
            <param name="chatUserID">User to enter support</param>
            <returns>Login token which should be stored in cookies</returns>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.LeaveSupport(System.Int32,System.Int32)">
            <summary>
            Leaves user from support.
            </summary>
            <param name="siteID">User will be logged out of support on this site</param>
            <param name="chatUserID">User to leave.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.CleanOnlineSupport(System.Int32)">
            <summary>
            Cleans inactive (not pinging) online supporters.
            </summary>
            <param name="inactiveForSeconds">Number of seconds of inactivity needed to clean user</param>
            <returns>Number of cleaned users</returns>
        </member>
        <member name="M:CMS.Chat.ChatOnlineSupportInfoProvider.GetOnlineSupportByToken(System.String,System.Int32)">
            <summary>
            Gets online supporter by token. Returns null if user with this token is not found or is not online.
            </summary>
            <param name="token">Login token</param>
            <param name="siteID">Users on this site will be searched</param>
        </member>
        <member name="T:CMS.Chat.ChatOnlineUserHelper">
            <summary>
            Helper class for chat online users.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserHelper.ChatUserIDSession">
            <summary>
            Chat user ID stored in session. Null if no chat user id is stored in session.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.GetLoggedInChatUser(System.Boolean@)">
            <summary>
            Gets currently logged in chat user. It checks for various edge cases like CMSUser logout, change of CMSUser, etc.
             
            Returns null if user is not logged in.
            </summary>
            <param name="isHidden">Is set to true if currently logged in user is hidden (should not be displayed in the list of online users). Is set to false if user is not hidden or user was not found.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.GetLoggedInChatUser">
            <summary>
            Gets currently logged in chat user. It checks for various edge cases like CMSUser logout, change of CMSUser, etc.
             
            Returns null if user is not logged in.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.IsChatUserLoggedIn(System.Boolean)">
            <summary>
            Gets true if chat user is logged in or false if not.
            </summary>
            <param name="omitHidden">If true, hidden user won't be counted</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.IsChatUserLoggedIn">
            <summary>
            Gets true if chat user is logged in or false if not.
             
            Hidden user counts as logged in.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.LogInChatUser(CMS.Chat.ChatUserInfo)">
            <summary>
            Logs in chat user. Insets him into session, memory and DB.
            </summary>
            <param name="chatUser">Chat user to log in</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.LogInChatUser(CMS.Chat.ChatUserInfo,System.Boolean)">
            <summary>
            Logs in chat user. Insets him into session, memory and DB.
            </summary>
            <param name="chatUser">Chat user to log in</param>
            <param name="isHidden">If false, this user will be shown in online users on live site. If user was logged in as hidden before and now is logged in as 'not hidden' value will be overriden.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.LogInCurrentCMSUser">
            <summary>
            Logs into chat current CMS User.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.LogInCurrentCMSUser(System.Boolean)">
            <summary>
            Logs into chat current CMS User.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserHelper.LogOutOfChatCurrentUser">
            <summary>
            Logs current user out of chat.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatOnlineUserInfo">
            <summary>
            ChatOnlineUser data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatOnlineUserInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatOnlineUserInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserChatUserID">
            <summary>
            ID of chat online user.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserLastChecking">
            <summary>
            Time of last ping.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserID">
            <summary>
            ID of chat online user.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserSiteID">
            <summary>
            Site where user is online.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserLeaveTime">
            <summary>
            Site where user is online.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserJoinTime">
            <summary>
            Site where user is online.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserToken">
            <summary>
            Unique token.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatOnlineUserInfo.ChatOnlineUserIsHidden">
            <summary>
            True if user shouldn't be displayed on live site in list of online users.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatOnlineUser object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatOnlineUser object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatOnlineUserInfoProvider">
            <summary>
            Class providing ChatOnlineUser management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.GetChatOnlineUsers">
            <summary>
            Returns the query for all chat online users.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.GetChatOnlineUser(System.Int32)">
            <summary>
            Returns chat online user with specified ID.
            </summary>
            <param name="userId">Chat online user ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.SetChatOnlineUser(CMS.Chat.ChatOnlineUserInfo)">
            <summary>
            Sets (updates or inserts) specified chat online user.
            </summary>
            <param name="userObj">Chat online user to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.DeleteChatOnlineUser(CMS.Chat.ChatOnlineUserInfo)">
            <summary>
            Deletes specified chat online user.
            </summary>
            <param name="userObj">Chat online user to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.DeleteChatOnlineUser(System.Int32)">
            <summary>
            Deletes chat online user with specified ID.
            </summary>
            <param name="userId">Chat online user ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.GetChangedChatOnlineUsers(System.Int32,System.DateTime)">
            <summary>
            Gets online users for specified site.
            </summary>
            <param name="siteID">Site ID</param>
            <param name="changedSince">User changed since this time will be returned</param>
            <returns>Online users</returns>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.GetAllChatOnlineUsers(System.Int32)">
            <summary>
            Gets all users who are online right now on specified site.
            </summary>
            <param name="siteID">Site ID</param>
            <returns>Online users</returns>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.UpdateLastChecking(System.Int32,System.Int32)">
            <summary>
            Updates last checking to GETDATE() of the online chat user specified by siteID and chatUserID.
             
            Does nothing if this online user does not exists.
            </summary>
            <param name="siteID">Site ID</param>
            <param name="chatUserID">Chat user ID</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.Logout(System.Int32,System.Int32,System.String,System.Nullable{CMS.Chat.ChatMessageTypeEnum})">
            <summary>
            Logouts user from chat.
             
            User is also removed from all rooms where he is online now. Leave room system message is inserted to this room.
             
            Does nothing if this online user does not exists.
            </summary>
            <param name="siteID">Site ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="leaveSystemMessageFormat">Format of system message. Placeholder {nickname} will be replaced by actual user's nickname. If null system message won't be inserted.</param>
            <param name="leaveSystemMessageType">Type of leave room system message (typically ChatMessageTypeEnum.LeaveRoom)</param>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.Login(System.Int32,System.Int32,System.Boolean)">
            <summary>
            Logs in user to chat.
            It returns login token which can be used later to re-login user to chat if server looses session.
            If user is already logged in, old token is returned. Otherwise it is generated.
            </summary>
            <param name="siteID">Site ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="isHidden">If false, this user will be shown in online users on live site. False has higher priority than true.</param>
            <returns>Login token</returns>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.CleanOnlineUsers(System.Int32,System.String,CMS.Chat.ChatMessageTypeEnum)">
            <summary>
            Cleans inactive (not pinging) users.
            </summary>
            <param name="inactiveForSeconds">Seconds of inactivity needed to clean user.</param>
            <param name="leaveSystemMessageFormat">Format of system message. Placeholder {nickname} will be replaced by actual user's nickname. If null system message won't be inserted.</param>
            <param name="leaveSystemMessageType">Type of leave room system message (typically ChatMessageTypeEnum.LeaveRoom)</param>
            <returns>Number of cleaned users</returns>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUserInfoProvider.GetOnlineUserByToken(System.String,System.Int32)">
            <summary>
            Gets online user by token set in Login. User has to be logged in (Join time not null) and be logged in on the current site.
            </summary>
            <param name="token">Token</param>
            <param name="siteID">Only users online on this site will be searhed</param>
        </member>
        <member name="T:CMS.Chat.ChatSettingsHandler">
            <summary>
            ASP.NET handler for generating chat settings.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSettingsHandler.ProcessRequest(System.Web.HttpContext)">
            <summary>
            Enables processing of HTTP Web requests by a custom HttpHandler that implements
            the System.Web.IHttpHandler interface.
            </summary>
            <param name="context">
            An System.Web.HttpContext object that provides references to the intrinsic
            server objects (for example, Request, Response, Session, and Server) used
            to service HTTP requests.
            </param>
        </member>
        <member name="P:CMS.Chat.ChatSettingsHandler.IsReusable">
            <summary>
            Gets a value indicating whether another request can use the System.Web.IHttpHandler instance.
             
            True if the System.Web.IHttpHandler instance is reusable; otherwise, false.
            </summary>
        </member>
        <member name="T:CMS.Chat.JoinRoomData">
            <summary>
            Class returned by JoinRoom operation.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.ChatRoomID">
            <summary>
            Chat room ID of joined room.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.DisplayName">
            <summary>
            Display name of joined room.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.IsPrivate">
            <summary>
            True if joined room is private.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.HasPassword">
            <summary>
            True if joined room has password.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.AllowAnonym">
            <summary>
            True if joined room allows anonym users.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.IsCurrentUserAdmin">
            <summary>
            True if current user is admin in joined room (can invite users, kick them, etc.). Otherwise false.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.IsOneToOne">
            <summary>
            True if this room is used to private conversation.
            </summary>
        </member>
        <member name="P:CMS.Chat.JoinRoomData.IsSupport">
            <summary>
            True if this room is used to privide support.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatFloodProtector">
            <summary>
            Chat flood protector. Holds info about last actions in memory -> works only in one-server solution.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatFloodProtector.CheckOperation(System.Int32,CMS.Chat.FloodOperationEnum)">
            <summary>
            Checks specified operation for flooding. One user can perform an operation only once in the interval specified in settings.
            </summary>
            <param name="chatUserID">Unique identifier of the chat user.</param>
            <param name="operation">Operation performed.</param>
            <returns>True if user can perform the operation. False if it is called to early.</returns>
        </member>
        <member name="M:CMS.Chat.ChatFloodProtector.ChatFloodProtectorUser.CheckOperation(CMS.Chat.FloodOperationEnum)">
            <summary>
            Checks if user has performed this operation too early.
            </summary>
            <param name="operation">Type of operation</param>
            <returns>True if everything is ok, false if flooding has occured.</returns>
        </member>
        <member name="T:CMS.Chat.ChatGlobalData">
            <summary>
            Singleton class which holds data needed by chat. It contains instances of other classes to split responsibilities between classes.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatGlobalData.mInstance">
            <summary>
            Instance.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGlobalData.Instance">
            <summary>
            Singleton instance.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatGlobalData.#ctor">
            <summary>
            Private constructor
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatGlobalData.UNIQUE_NAME">
            <summary>
            Name of this class.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGlobalData.Sites">
            <summary>
            Gets instance of GlobalOnlineUsers.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGlobalData.FloodProtector">
            <summary>
            Gets instance of ChatFloodProtector.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGlobalData.UsersRoomAdminStates">
            <summary>
            Gets instance of ChatFloodProtector.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGlobalData.InitiatedChats">
            <summary>
            Gets instance of GlobalOnlineUsers.
            </summary>
        </member>
        <member name="T:CMS.Chat.SiteRooms">
            <summary>
            This class holds rooms (RoomStates) for site.
            </summary>
        </member>
        <member name="M:CMS.Chat.SiteRooms.#ctor(System.String,System.Int32,System.TimeSpan)">
            <summary>
            Constructor. <paramref name="parentName"/> is used as cache key.
            </summary>
            <param name="parentName">Unique name of parent object</param>
            <param name="siteID">Site ID</param>
            <param name="maxDelay">Max delay</param>
        </member>
        <member name="M:CMS.Chat.SiteRooms.GetRoom(System.Int32)">
            <summary>
            Gets RoomState. Room is specified by <paramref name="chatRoomID"/>.
             
            Rooms are updated before retrieving if needed.
            </summary>
            <param name="chatRoomID">ID of a chat room</param>
            <returns>RoomState or null if room was not found</returns>
        </member>
        <member name="M:CMS.Chat.SiteRooms.GetChangedRooms(System.Nullable{System.DateTime},CMS.Chat.ChatUserInfo)">
            <summary>
            Gets changed rooms by specified chat user.
            </summary>
            <param name="sinceWhen">Rooms changed since this time will be returned. If null, only accessible rooms will be returned</param>
            <param name="chatUser">Chat user whose accessible rooms should be returned. If null, only public rooms will be returned.</param>
        </member>
        <member name="M:CMS.Chat.SiteRooms.GetUsersInRoomsCounts(System.Nullable{System.DateTime},CMS.Chat.ChatUserInfo,System.Collections.Generic.IEnumerable{System.Int32})">
            <summary>
            Gets counts of users in rooms when this count has changed.
            </summary>
            <param name="sinceWhen">Last change this client got</param>
            <param name="chatUser">Current chat user</param>
            <param name="changedRooms">IDs of rooms which were changed since last request. Users counts in those rooms will be always send back to client (if the user is logged in and sinceWhen is not null).</param>
        </member>
        <member name="M:CMS.Chat.SiteRooms.ForceTryGetRoom(System.Int32,CMS.Chat.RoomState@)">
            <summary>
            Gets room from cache. If room is not found, new rooms from database are retrieved and then the finding is made again.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="roomState">Output RoomState</param>
        </member>
        <member name="M:CMS.Chat.SiteRooms.ForceUpdate">
            <summary>
            Updates rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.SiteRooms.GetUsersInRoomsCountsNotFirstRequest(System.Nullable{System.DateTime},CMS.Chat.ChatUserInfo,System.Collections.Generic.IEnumerable{System.Int32})">
            <summary>
            This method gets users counts in rooms changed since <paramref name="sinceWhen"/> (the number of users has to be changed - not the room itself).
             
            Rooms passed in <paramref name="changedRooms"/> are always appended to the response.
            </summary>
            <param name="sinceWhen">Time of the previous update of users count by this user</param>
            <param name="chatUser">Current chat user</param>
            <param name="changedRooms">IDs of rooms which were changed since last request. Users counts in these rooms will be always sent</param>
        </member>
        <member name="T:CMS.Chat.GlobalSites">
            <summary>
            Class holding all sites (SiteStates) installed on this instance of Kentico and being used by chat (site has to be requested at least once to be appear in memory).
            </summary>
        </member>
        <member name="M:CMS.Chat.GlobalSites.#ctor(System.String)">
            <summary>
            Constructor.
            </summary>
            <param name="parentName">Unique name of a parent class used for caching.</param>
        </member>
        <member name="P:CMS.Chat.GlobalSites.Item(System.Int32)">
            <summary>
            Gets SiteState by site ID.
            </summary>
            <param name="siteID">ID of a site.</param>
            <returns>SiteState object</returns>
        </member>
        <member name="P:CMS.Chat.GlobalSites.Current">
            <summary>
            Gets current site.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatNotificationHelper">
            <summary>
            Helper class for chat notifications.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.InsertChatNotification(CMS.Chat.ChatNotificationTypeEnum,System.Int32,System.Int32,System.Nullable{System.Int32},System.Nullable{System.Int32})">
            <summary>
            Inserts new notification to the database. If there is already an unread notification with the same sender, receiver and roomID, the new one is not inserted!
            </summary>
            <param name="type">Type of chat notification</param>
            <param name="senderID">Sender (chat user ID)</param>
            <param name="receiverID">Receiver (chat user ID)</param>
            <param name="roomID">Room ID (in case of join room, leave room, etc. notifications). Null, if notification is not room related.</param>
            <param name="siteID">Notification will be assigned to this site (null is global)</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.MarkAsReadChatNotification(CMS.Chat.ChatNotificationInfo)">
            <summary>
            Closes (marks as read) the passed notification unless it is already read.
            </summary>
            <param name="chatNotification">Chat notification to close.</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.CloseAllChatNotifications(System.Int32,System.DateTime)">
            <summary>
            Closes all current user's notifications (current user is receiver) which arrived before specified time.
            </summary>
            <param name="receiverID">Receiver of notifications</param>
            <param name="untilWhen">Notifications arrived before this time</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.SendInvitationToRoom(CMS.Chat.ChatRoomInfo,CMS.Chat.ChatUserInfo,System.Int32)">
            <summary>
            Inserts notification of type Invitation.
            </summary>
            <param name="room">Invitation to this room will be send</param>
            <param name="currentChatUser">Current chat user ID (sender of notification)</param>
            <param name="chatUserToInviteID">ID of chat user to invite (receiver of notification)</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.SendInvitationToRoom(CMS.Chat.ChatRoomInfo,CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Inserts notification of type Invitation.
            </summary>
            <param name="room">Invitation to this room will be send</param>
            <param name="currentChatUser">Current chat user ID (sender of notification)</param>
            <param name="chatUserToInvite">Chat user to invite (receiver of notification)</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.AcceptInvitation(CMS.Chat.ChatNotificationInfo)">
            <summary>
            Accepts invitation.
             
            Sets notification as read. Inserts notification about accepting invitation and gives Join right to room (if room is private).
            </summary>
            <param name="notification">Invitation to accept</param>
            <returns>Invitation to this room was accepted (or null if it is one to one). This is used to display room immediatelly on the client side.</returns>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.DeclineInvitation(CMS.Chat.ChatNotificationInfo)">
            <summary>
            Declines invitation.
            </summary>
            <param name="notification">Invitation</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationHelper.GetNotifications(System.Nullable{System.DateTime},System.Int32,System.Int32)">
            <summary>
            Gets notification belonging to specified user changed since <paramref name="since"/>.
            </summary>
            <param name="since">Notification changed (read or send) after this time will be returned. If null, all unread notifications will be returned.</param>
            <param name="receiverID">Receiver</param>
            <param name="siteID">Only notification assigned to this site will be returned</param>
        </member>
        <member name="T:CMS.Chat.ChatPopupWindowSettingsInfo">
            <summary>
            ChatPopupWindowSettings data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatPopupWindowSettingsInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatPopupWindowSettingsInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatPopupWindowSettingsInfo.ChatPopupWindowSettingsID">
            <summary>
            Row id.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatPopupWindowSettingsInfo.ChatPopupWindowSettingsChecksum">
            <summary>
            Row id.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatPopupWindowSettingsInfo.ErrorTransformationName">
            <summary>
            Name of transformation used for error messages.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatPopupWindowSettingsInfo.MessageTransformationName">
            <summary>
            Name of transformation used for messages.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatPopupWindowSettingsInfo.ErrorClearTransformationName">
            <summary>
            Name of transformation used for errors clearing label.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatPopupWindowSettingsInfo.UserTransformationName">
            <summary>
            Name of transformation used for user in users list.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatPopupWindowSettings object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatPopupWindowSettings object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatPopupWindowSettingsHelper">
            <summary>
            Helper class for managing ChatPopupWindowSettings.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsHelper.Store(System.String,System.String,System.String,System.String)">
            <summary>
            Stores settings in DB and cache for further use.
            </summary>
            <param name="messageTrans">Message transformation setting</param>
            <param name="userTrans">User transformation setting</param>
            <param name="errorTrans">Error transformation setting</param>
            <param name="errorClearTrans">Error clear transformation setting</param>
            <returns>Hash code required to retrieve stored settings.</returns>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsHelper.GetPopupWindowSettings(System.Int32)">
            <summary>
            Gets popup window settings from cache or database.
            </summary>
            <param name="hashCode">Hash code of this settings</param>
            <returns>Popup window settings</returns>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsHelper.GetStringHashCode(System.String)">
            <summary>
            We can't use string's GetHashCode, because it is not guaranteed to be equal on different CLR versions.
            </summary>
            <param name="str">Input string</param>
            <returns>Hash code</returns>
        </member>
        <member name="T:CMS.Chat.ChatPopupWindowSettingsInfoProvider">
            <summary>
            Class providing ChatPopupWindowSettings management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.GetChatPopupWindowSettings">
            <summary>
            Returns the query for all chat popup window settings.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.GetChatPopupWindowSettings(System.Int32)">
            <summary>
            Returns popup window settings with specified ID.
            </summary>
            <param name="settingsId">Popup window settings ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.SetChatPopupWindowSettings(CMS.Chat.ChatPopupWindowSettingsInfo)">
            <summary>
            Sets (updates or inserts) specified popup window settings.
            </summary>
            <param name="settingsObj">Popup window settings to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.DeleteChatPopupWindowSettings(CMS.Chat.ChatPopupWindowSettingsInfo)">
            <summary>
            Deletes specified popup window settings.
            </summary>
            <param name="settingsObj">Popup window settings to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.DeleteChatPopupWindowSettings(System.Int32)">
            <summary>
            Deletes popup window settings with specified ID.
            </summary>
            <param name="settingsId">Popup window settings ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.GetByHashCode(System.Int32)">
            <summary>
            Gets popup window settings by hash code.
            </summary>
            <param name="hashCode">Hash code</param>
        </member>
        <member name="M:CMS.Chat.ChatPopupWindowSettingsInfoProvider.Store(System.Int32,System.String,System.String,System.String,System.String)">
            <summary>
            Stores popup window settings under specified hash code.
            </summary>
            <param name="hashCode">Hash code of this settings.</param>
            <param name="messageTrans">Message transformation setting</param>
            <param name="userTrans">User transformation setting</param>
            <param name="errorTrans">Error transformation setting</param>
            <param name="errorClearTrans">Error clear transformation setting</param>
            <returns>Stored settings</returns>
        </member>
        <member name="T:CMS.Chat.ChatRoomUserHelper">
            <summary>
            Helper class for managing chat users in rooms (ChatRoomUserInfo).
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.SetChatAdminLevel(System.Int32,System.Int32,CMS.Chat.AdminLevelEnum)">
            <summary>
            Sets admin level of specified user in specified room to specified level.
            </summary>
            <param name="chatRoomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="adminLevel">New admin level</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.IncreaseChatAdminLevel(System.Int32,System.Int32,CMS.Chat.AdminLevelEnum)">
            <summary>
            Increases admin level of specified user in specified room to specified level.
             
            This means that admin level is changed only if current level of this user is lower than new one.
            </summary>
            <param name="chatRoomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="adminLevel">New admin level</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.KickUserFromRoom(System.Int32,CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Kicks user from this room. His KickExpiration is set to DateTime.Now + number of seconds specified in settings.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserToKick">Chat user to kick</param>
            <param name="kicker">Kicker (used to insert system message)</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.KickUserPermanentlyFromRoom(System.Int32,CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Kicks user permanently from this room.
             
            He is deleted from db and from memory. He can enter again only after receiving another invitation.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserToKick">Chat user to kick</param>
            <param name="kicker">Kicking chat user</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.LeaveRoom(System.Int32,System.Int32)">
            <summary>
            Removes (leaves) chat user from this room.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.LeaveRoomPermanently(System.Int32,CMS.Chat.ChatUserInfo)">
            <summary>
            Removes user permanently from this room. This means, that he has to be invited again to enter it.
             
            In public rooms it does the same as classic LeaveRoom().
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUser">User to remove</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.JoinUserToRoom(System.Int32,CMS.Chat.ChatUserInfo,System.String,System.Boolean)">
            <summary>
            Adds (joins) user to this room. If user is already online, it does nothing.
             
            It sets user's LastChecking to Now.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUser">Chat user to add</param>
            <param name="password">Entrance password to this room (checked if room has password set).</param>
            <param name="hashPassword">True if password should be hashed before joining. If false, password is already hashed.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserHelper.InvalidateAdminCache(System.Int32)">
            <summary>
            Invalidates admin cache for one user.
            </summary>
            <param name="chatUserID">This user's admin cache will be invalidated</param>
        </member>
        <member name="T:CMS.Chat.ChatHandlers">
            <summary>
            Provides handlers for chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatHandlers.Init">
            <summary>
            Initializes the chat handlers.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatHandlers.User_SignOut_Before(System.Object,CMS.Membership.SignOutEventArgs)">
            <summary>
            Event handler logs out user from chat
            </summary>
        </member>
        <member name="T:CMS.Chat.SupportOfflineMessageHelper">
            <summary>
            Helper class for support requests when no support is online.
            </summary>
        </member>
        <member name="M:CMS.Chat.SupportOfflineMessageHelper.SendSupportMessageAsMail(System.DateTime,System.String,System.String,System.String)">
            <summary>
            Sends support request to email.
             
            Does nothing, if sending to email is not enabled.
            </summary>
            <param name="createdWhen">Sending time of this message</param>
            <param name="senderEmailAddress">Email address of sender (the one who requests support)</param>
            <param name="subject">Subject</param>
            <param name="messageText">Body of the message</param>
            <returns>True if message was sent</returns>
        </member>
        <member name="T:CMS.Chat.ChatSupportTakenRoomHelper">
            <summary>
            Helper class for Chat_SupportTakenRoom.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomHelper.TakeRoom(System.Int32,System.Int32)">
            <summary>
            Sets room as taken by chat user.
            </summary>
            <param name="chatUserID">Room will be taken by this chat user.</param>
            <param name="roomID">This room will be taken.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomHelper.ResolveTakenRoom(System.Int32,System.Int32)">
            <summary>
            Deletes taken room. This room will no longer be taken.
            </summary>
            <param name="chatUserID">Chat user ID who has this room taken.</param>
            <param name="roomID">Room ID.</param>
        </member>
        <member name="T:CMS.Chat.ChatSupportTakenRoomInfo">
            <summary>
            ChatSupportTakenRoomsInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatSupportTakenRoomInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatSupportTakenRoomInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportTakenRoomInfo.ChatSupportTakenRoomID">
            <summary>
            ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportTakenRoomInfo.ChatSupportTakenRoomRoomID">
            <summary>
            ID of a chat room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportTakenRoomInfo.ChatSupportTakenRoomLastModification">
            <summary>
            DateTime when support engineer took this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportTakenRoomInfo.ChatSupportTakenRoomChatUserID">
            <summary>
            ID of a row in table Chat_OnlineSupport.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportTakenRoomInfo.ChatSupportTakenRoomResolvedDateTime">
            <summary>
            DateTime when this room was resolved for the last time. Room is resolved when support engineer leaves room.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatSupportTakenRoomsInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatSupportTakenRoomsInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatSupportTakenRoomInfoProvider">
            <summary>
            Class providing ChatSupportTakenRoomsInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.GetChatSupportTakenRooms">
            <summary>
            Returns the query for all chat support taken rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.GetChatSupportTakenRoomsInfo(System.Int32)">
            <summary>
            Returns room taken by support with specified ID.
            </summary>
            <param name="supportId">Room taken by support ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.SetChatSupportTakenRoomsInfo(CMS.Chat.ChatSupportTakenRoomInfo)">
            <summary>
            Sets (updates or inserts) specified room taken by support.
            </summary>
            <param name="supportObj">Room taken by support to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.DeleteChatSupportTakenRoomsInfo(CMS.Chat.ChatSupportTakenRoomInfo)">
            <summary>
            Deletes specified room taken by support.
            </summary>
            <param name="supportObj">Room taken by support to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.DeleteChatSupportTakenRoomsInfo(System.Int32)">
            <summary>
            Deletes room taken by support with specified ID.
            </summary>
            <param name="supportId">Room taken by support ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.ResolveTakenRoom(System.Int32,System.Int32)">
            <summary>
            Deletes taken room. This room will no longer be taken. If room is taken by other user than <paramref name="chatUserID"/>, it does nothing.
            </summary>
            <param name="chatUserID">Chat user ID who has this room taken.</param>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.CleanSupportTakenRooms(System.Int32)">
            <summary>
            Cleans taken rooms were support engineer is not pinging for more than <paramref name="inactiveForSeconds"/> seconds.
             
            Last ping time is checked in table Chat_RoomUser.
            </summary>
            <param name="inactiveForSeconds">Seconds of inactivity needed for this room to be released</param>
            <returns>Number of cleaned rooms</returns>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.TakeRoom(System.Int32,System.Int32)">
            <summary>
            Sets room as taken by chat user.
            </summary>
            <param name="chatUserID">Room will be taken by this chat user.</param>
            <param name="roomID">This room will be taken.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportTakenRoomInfoProvider.IsRoomTaken(System.Int32,System.Int32)">
            <summary>
            Checks if room is taken right now.
            </summary>
            <param name="roomID">ID of room to check</param>
            <param name="omitChatUserID">If room is taken by this user, it won't count</param>
            <returns>True if room is taken</returns>
        </member>
        <member name="T:CMS.Chat.ChatCacheDictionaryWrapper`2">
            <summary>
            This class stores cached objects in dictionary and allows to get/invalidate them individually.
            </summary>
            <typeparam name="TKey">Key type</typeparam>
            <typeparam name="TValue">Value type</typeparam>
        </member>
        <member name="M:CMS.Chat.ChatCacheDictionaryWrapper`2.#ctor(System.String,System.Func{`0,`1},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan})">
            <summary>
            Constructs cache dictionary wrapper.
            </summary>
            <param name="uniqueKey">Unique key for caching</param>
            <param name="fetchDataFunc">Function used to get one item by its key</param>
            <param name="cachePersistence">Item in cache will stay in cache for the amount of time specified by this parameter. Then it will be renewed by calling fetchDataFunc. (not used if null).</param>
            <param name="slidingExpiration">Item will stay in cache as long as it is accessed once in that time. (not used if null)</param>
        </member>
        <member name="M:CMS.Chat.ChatCacheDictionaryWrapper`2.InvalidateItem(`0)">
            <summary>
            Invalidates one item.
            </summary>
            <param name="id">Key</param>
        </member>
        <member name="M:CMS.Chat.ChatCacheDictionaryWrapper`2.InvalidateAll">
            <summary>
            Invalidates all items.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCacheDictionaryWrapper`2.GetItem(`0)">
            <summary>
            Gets item from cache.
            </summary>
            <param name="id">Key</param>
        </member>
        <member name="T:CMS.Chat.ChatCacheWrapper`1">
            <summary>
            This class wraps cached data and handles loading on background.
             
            It is designed to be used as a static field.
            </summary>
            <typeparam name="TData">Type of cached data</typeparam>
        </member>
        <member name="M:CMS.Chat.ChatCacheWrapper`1.#ctor(System.String,System.Func{`0},System.Nullable{System.TimeSpan},System.Nullable{System.TimeSpan})">
            <summary>
            Constructs CacheWrapper.
            </summary>
            <param name="uniqueKey">Unique key of this cache item</param>
            <param name="fetchDataFunc">Function which gets data</param>
            <param name="cachePersistence">Item in cache will stay in cache for the amount of time specified by this parameter. Then it will be renewed by calling fetchDataFunc. (not used if null).</param>
            <param name="slidingExpiration">Item will stay in cache as long as it is accessed once in that time. (not used if null)</param>
        </member>
        <member name="P:CMS.Chat.ChatCacheWrapper`1.Data">
            <summary>
            Gets data from cache. Loads it using fetchDataFunc if needed.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatCacheWrapper`1.AddDependency(System.String)">
            <summary>
            This cache item will be dependent on this cache key.
            </summary>
            <param name="dependencyName">Dependency name</param>
        </member>
        <member name="M:CMS.Chat.ChatCacheWrapper`1.Invalidate">
            <summary>
            Removes data from cache.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatSupportCannedResponseInfo">
            <summary>
            ChatSupportCannedResponseInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatSupportCannedResponseInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatSupportCannedResponseInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.LogExport">
            <summary>
            Export only canned responses which do not belong to user (are site bound or global).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.ChatSupportCannedResponseID">
            <summary>
            ID of this canned response
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.ChatSupportCannedResponseChatUserID">
            <summary>
            Owner of this canned response
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.ChatSupportCannedResponseTagName">
            <summary>
            Tag of this canned response. This field will be used to find canned response.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.ChatSupportCannedResponseName">
            <summary>
            Code name of this canned response. Used for exporting.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.ChatSupportCannedResponseText">
            <summary>
            Text of this canned response. Code name will be replaced with this field.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatSupportCannedResponseInfo.ChatSupportCannedResponseSiteID">
            <summary>
            Site to which this canned response belongs (null = global).
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfo.CheckPermissionsInternal(CMS.DataEngine.PermissionsEnum,System.String,CMS.Base.IUserInfo,System.Boolean)">
            <summary>
            Checks whether the specified user has permissions for this object. This method is called automatically after CheckPermissions event was fired.
            Check takes into account the fact, that the canned response can be personal and its owner thus has all the permissions.
            </summary>
            <param name="permission">Permission to perform this operation will be checked</param>
            <param name="siteName">Permissions on this site will be checked</param>
            <param name="userInfo">Permissions of this user will be checked</param>
            <param name="exceptionOnFailure">If true, PermissionCheckException is thrown whenever a permission check fails</param>
            <returns>True if user is allowed to perform specified operation on the this object; otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatSupportCannedResponseInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatSupportCannedResponseInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatSupportCannedResponseInfoProvider">
            <summary>
            Class providing ChatSupportCannedResponseInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfoProvider.GetChatSupportCannedResponses">
            <summary>
            Returns the query for all chat support canned responses.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfoProvider.GetChatSupportCannedResponseInfo(System.Int32)">
            <summary>
            Returns chat support canned response with specified ID.
            </summary>
            <param name="responseId">Chat support canned response ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfoProvider.SetChatSupportCannedResponseInfo(CMS.Chat.ChatSupportCannedResponseInfo)">
            <summary>
            Sets (updates or inserts) specified chat support canned response.
            </summary>
            <param name="responseObj">Chat support canned response to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfoProvider.DeleteChatSupportCannedResponseInfo(CMS.Chat.ChatSupportCannedResponseInfo)">
            <summary>
            Deletes specified chat support canned response.
            </summary>
            <param name="responseObj">Chat support canned response to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfoProvider.DeleteChatSupportCannedResponseInfo(System.Int32)">
            <summary>
            Deletes chat support canned response with specified ID.
            </summary>
            <param name="responseId">Chat support canned response ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportCannedResponseInfoProvider.GetCannedResponses(System.Int32,System.Int32)">
            <summary>
            Gets canned responses for specified user and site.
             
            Gets:
            - canned responses assigned to user
            - canned responses assigned to site
            - global canned responses (all sites)
            </summary>
            <param name="chatUserID">Owner of canned responses</param>
            <param name="siteID">Site of canned responses</param>
            <returns>Canned responses</returns>
        </member>
        <member name="T:CMS.Chat.ChatNotificationData">
            <summary>
            Info about one notification.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.NotificationID">
            <summary>
            ID
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.NotificationType">
            <summary>
            Type.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.NotificationDateTime">
            <summary>
            Created date time.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.SenderNickname">
            <summary>
            Issuer of this notification (inviter for example).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.RoomID">
            <summary>
            ID of a room (optional).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.RoomName">
            <summary>
            Name of a room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.IsRead">
            <summary>
            Read state of this notification
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.IsOneToOne">
            <summary>
            Indicates type of invitation - conversation is true, private room is false
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationData.ReadDateTime">
            <summary>
            When was this notification read
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatNotificationsData">
            <summary>
            Chat notifications data.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationsData.LastChange">
            <summary>
            Last change of notifications
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationsData.List">
            <summary>
            Notifications.
            </summary>
        </member>
        <member name="T:CMS.Chat.OnlineUserData">
            <summary>
            Online user data.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.Nickname">
            <summary>
            Gets or sets nickname of this user.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.ChatUserID">
            <summary>
            Gets ID of this user.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.IsAnonymous">
            <summary>
            Gets IsAnonymous state of this user. True if user is anonym (has not cms user associated with it).
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.IsRemoved">
            <summary>
            True if this online user should be removed from list on client.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.ChatUser">
            <summary>
            ChatUserInfo of this online user.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.IsHidden">
            <summary>
            If true, this record shouldn't be sent to client - it will be only stored on server side.
            </summary>
        </member>
        <member name="M:CMS.Chat.OnlineUserData.#ctor(CMS.Chat.ChatUserInfo,System.DateTime,System.Boolean,System.Boolean)">
            <summary>
            Constructs OnlineUserData.
            </summary>
            <param name="chatUser">Info of this chat user.</param>
            <param name="lastChange">Last change</param>
            <param name="isRemoved">If true, this record should be removed from list on client</param>
            <param name="isHidden">If true, this record shouldn't be sent to client - it will be only stored on server side</param>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.CMS#Chat#IChatCacheableWithCurrentState{System#Int32}#ChangeType">
            <summary>
            Change type of this record.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.PK">
            <summary>
            Primary key
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUserData.ChangeTime">
            <summary>
            Last change
            </summary>
        </member>
        <member name="T:CMS.Chat.RoomState">
            <summary>
            Class holding caches of messages and online users in one room.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomState.RoomInfo">
            <summary>
            Gets ChatRoomInfo of this room. Properties of this room can't be change via this instance (use ReloadChatRoomInfo() instead).
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomState.OnlineUsers">
            <summary>
            List of online users in this room. Contains not only online users, but also users with Admin rights, Join rights (private rooms), etc.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomState.#ctor(System.String,CMS.Chat.ChatRoomInfo)">
            <summary>
            Constructor. <paramref name="parentName"/> is used to create cache keys.
            </summary>
            <param name="parentName">Unique name of a parent object</param>
            <param name="chatRoom">ChatRoom</param>
        </member>
        <member name="M:CMS.Chat.RoomState.GetMessages(System.Nullable{System.Int32},System.Nullable{System.DateTime},System.Boolean,System.Int32)">
            <summary>
            Gets newest messages.
            </summary>
            <param name="count">Max count</param>
            <param name="sinceWhen">Since when</param>
            <param name="isFirstRequest">True if this is the first request (client does not have sinceWhen yet)</param>
            <param name="chatUserID">Current user ID (whisper messages will be filtered for this user)</param>
        </member>
        <member name="M:CMS.Chat.RoomState.GetOnlineUsers(System.Nullable{System.DateTime})">
            <summary>
            Gets online users in this room. Changed or all (sinceWhen is null).
            </summary>
            <param name="sinceWhen">If null, all online users in this room will be returned. If not null users changed since this time will be returned.</param>
        </member>
        <member name="M:CMS.Chat.RoomState.IsUserKicked(System.Int32)">
            <summary>
            Checks if the chat users specified by <paramref name="chatUserID"/> is kicked from this room.
            </summary>
            <param name="chatUserID">ID of a chat user</param>
            <returns>True if chat user was kicked.</returns>
        </member>
        <member name="M:CMS.Chat.RoomState.IsUserKicked(System.Int32,System.Int32@)">
            <summary>
            Checks if the chat users specified by <paramref name="chatUserID"/> is kicked from this room.
            </summary>
            <param name="chatUserID">ID of a chat room</param>
            <param name="forHowLong">Specified how long must user wait till he can access room again.</param>
            <returns>True if chat user was kicked.</returns>
        </member>
        <member name="M:CMS.Chat.RoomState.InvalidateKickedUsers">
            <summary>
            Invalidate list of kicked users in this room.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomState.ForceIsUserOnline(System.Int32)">
            <summary>
            Checks if user is online. Caller of this method expects that user is online. If user is not online in cache, this method checks database.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <returns>True if he is online</returns>
        </member>
        <member name="M:CMS.Chat.RoomState.ForceTryGetUser(System.Int32,CMS.Chat.RoomOnlineUserData@)">
            <summary>
            Gets online user. Caller expects that user is present in list of online users.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="onlineUser">Output Online User</param>
            <returns>True if user was found</returns>
        </member>
        <member name="M:CMS.Chat.RoomState.TryGetUser(System.Int32,CMS.Chat.RoomOnlineUserData@)">
            <summary>
            Gets online user.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="onlineUser">Output Online User</param>
            <returns>True if user was found</returns>
        </member>
        <member name="M:CMS.Chat.RoomState.ReloadChatRoomInfo(CMS.Chat.ChatRoomInfo)">
            <summary>
            Reloads info about this chat room. Should be called every time after room is changed.
            </summary>
            <param name="newChatRoomInfo">New info about this chat room.</param>
        </member>
        <member name="T:CMS.Chat.ChatHelper">
            <summary>
            Provides helper methods for chat module.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatHelper.GetEnum``2(``1,``0)">
            <summary>
            Gets Enum from its underlying type. If the specified <paramref name="value"/> doesn't have its representation in the enum, <paramref name="defaultValue"/> is returned.
             
            Exception is thrown if TEnum is not Enum.
            </summary>
            <example>
            enum Days { Saturday = 3, Sunday = 4, Monday = 5, Tuesday = 6, Wednesday = 7, Thursday = 8, Friday = 9};
            Days day = GetEnum(5, Days.Saturday); // returns Days.Monday
            Days day = GetEnum(1, Days.Saturday); // returns Days.Saturday, (Days)1 would return 1
            </example>
            <typeparam name="TEnum">Enum type</typeparam>
            <typeparam name="TUnderlayingType">Type of underyling field of an enum (can be any integral type except char)</typeparam>
            <param name="value">Value of an enum</param>
            <param name="defaultValue">Default value wich will be returned if <paramref name="value"/> is not found within an enum</param>
            <returns>Enum element or <paramref name="defaultValue"/></returns>
        </member>
        <member name="M:CMS.Chat.ChatHelper.GetDocumentAbsoluteUrl(System.String)">
            <summary>
            Gets absolute URL from relative document path (if given path is not empty).
            </summary>
            <param name="documentPath">Relative document path.</param>
            <returns>Absolute URL to the given document path.</returns>
        </member>
        <member name="M:CMS.Chat.ChatHelper.GetEnumInternal``2(``1,``0)">
            <summary>
            Gets Enum from its underlying type. If the specified <paramref name="value"/> doesn't have its representation in the enum, <paramref name="defaultValue"/> is returned.
             
            Exception is thrown if TEnum is not Enum.
            </summary>
            <example>
            enum Days { Saturday = 3, Sunday = 4, Monday = 5, Tuesday = 6, Wednesday = 7, Thursday = 8, Friday = 9};
            Days day = GetEnum(5, Days.Saturday); // returns Days.Monday
            Days day = GetEnum(1, Days.Saturday); // returns Days.Saturday, (Days)1 would return 1
            </example>
            <typeparam name="TEnum">Enum type</typeparam>
            <typeparam name="TUnderlayingType">Type of underyling field of an enum (can be any integral type except char)</typeparam>
            <param name="value">Value of an enum</param>
            <param name="defaultValue">Default value wich will be returned if <paramref name="value"/> is not found within an enum</param>
            <returns>Enum element or <paramref name="defaultValue"/></returns>
        </member>
        <member name="M:CMS.Chat.ChatHelper.GetDocumentAbsoluteUrlInternal(System.String)">
            <summary>
            Gets absolute URL from relative document path (if given path is not empty).
            </summary>
            <param name="documentPath">Relative document path.</param>
            <returns>Absolute URL to the given document path.</returns>
        </member>
        <member name="T:CMS.Chat.ChatMessageHelper">
            <summary>
            Helper class for chat messages.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.InsertSystemMessage(System.Int32,CMS.Chat.ChatMessageTypeEnum,System.String[])">
            <summary>
            Inserts system message to the room with default translation and optional params specified as args.
            </summary>
            <param name="roomID">System message will be inserted to this room.</param>
            <param name="messageType">Type of system message</param>
            <param name="args">Arguments to insert into the message text at the placeholders ({0}, {1}, etc.)</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.GetLatestMessages(System.Int32,CMS.Chat.MessageCacheParams)">
            <summary>
            Gets latest messages from DB.
            </summary>
            <param name="roomId">Room ID</param>
            <param name="messageParam">Params to take into consideration when filtering messages (max count and since)</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.RejectMessage(CMS.Chat.ChatMessageInfo)">
            <summary>
            Rejects passed message.
            </summary>
            <param name="message">Message to reject</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.GetSystemMessageText(CMS.Chat.ChatMessageTypeEnum,System.String[])">
            <summary>
            Gets default text representation of the system message. It is a macro which needs to be resolved before sending to the client.
             
            Exception is thrown if <paramref name="messageType"/> is not a system message.
             
            Example of a returned value: {$chat.system.userhaschangednickname|(replace){0}(with)guest_42|(replace){1}(with)lalalal$}
            </summary>
            <param name="messageType">Type of the system message.</param>
            <param name="args">Optional params which will be included in the macro in form of |replace{{i}}(with)param. i is counter and starts from 0</param>
            <returns>Macro containing text of the system message</returns>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.PostMessage(System.String,System.Int32,CMS.Chat.ChatUserInfo)">
            <summary>
            Inserts new message to room. Message is of type ClassicMessage.
            </summary>
            <param name="messageText">Text of message</param>
            <param name="roomID">Room ID</param>
            <param name="senderChatUser">Sender of this message</param>
            <returns>MessageData of the new message</returns>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.PostMessageToUser(System.String,System.Int32,CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Inserts new whisper message to room.
            </summary>
            <param name="messageText">Text of the message</param>
            <param name="roomID">Room ID</param>
            <param name="senderChatUser">Sender</param>
            <param name="recepientChatUser">Receiver</param>
            <returns>MessageData of the new message</returns>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.PerformBadWordsCheck(CMS.Chat.ChatMessageInfo)">
            <summary>
            Perform bad words check on message text
            </summary>
            <param name="messageInfo">Message info</param>
            <exception cref="T:CMS.Chat.ChatBadWordsException"></exception>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.VerifyMessageIsValid(System.String@)">
            <summary>
            Checks if message is valid.
            </summary>
            <param name="messageText">Text of a new message</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.BuildNewChatMessage(System.String,System.Int32,System.Int32)">
            <summary>
            Creates a non-system ChatMessageInfo from the specified parameters. Message is of the type ChatSystemMessageTypeEnum.ClassicMessage.
            </summary>
            <param name="messageText">Text of the message</param>
            <param name="roomID">Room ID</param>
            <param name="chatUserID">Sender of this messages</param>
            <returns>New ChatMessageInfo</returns>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.BuildNewChatMessage(System.String,System.Int32,System.Nullable{System.Int32},CMS.Chat.ChatMessageTypeEnum)">
            <summary>
            Creates new ChatMessage info from the specified parameters. This message is not whisper.
            </summary>
            <param name="messageText">Message text</param>
            <param name="roomID">Room id</param>
            <param name="chatUserID">Sender of this message (null if message is system).</param>
            <param name="systemMessageType">Type of this message</param>
            <returns>ChatMessageInfo with properties set. ReceipientID is null.</returns>
        </member>
        <member name="M:CMS.Chat.ChatMessageHelper.BuildNewChatMessage(System.String,System.Int32,System.Nullable{System.Int32},CMS.Chat.ChatMessageTypeEnum,System.Nullable{System.Int32})">
            <summary>
            Creates new ChatMessage info from the specified parameters.
            </summary>
            <param name="messageText">Message text</param>
            <param name="roomID">Room id</param>
            <param name="chatUserID">Sender of this message (null if message is system).</param>
            <param name="systemMessageType">Type of this message</param>
            <param name="recipient">Recipient of the message (makes sense only if whispering)</param>
            <returns>ChatMessageInfo with properties set</returns>
        </member>
        <member name="T:CMS.Chat.ChatMessageInfo">
            <summary>
            ChatMessageInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageUserID">
            <summary>
            Chat user Author's ID - foreign key.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageRecipientID">
            <summary>
            Recipient's ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageRoomID">
            <summary>
            Room's ID - foreign key.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageID">
            <summary>
            Chat message ID - Primary key.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageCreatedWhen">
            <summary>
            Timestamp when was message created.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageIPAddress">
            <summary>
            Sender's IP address.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageText">
            <summary>
            User's message.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageRejected">
            <summary>
            Is message rejected.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageLastModified">
            <summary>
            DateTime of last modification.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatMessageInfo.ChatMessageSystemMessageType">
            <summary>
            Is message system.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatMessageInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatMessageInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatMessageInfoProvider">
            <summary>
            Class providing ChatMessageInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.GetChatMessages">
            <summary>
            Returns the query for all chat messages.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.GetChatMessageInfo(System.Int32)">
            <summary>
            Returns chat message with specified ID.
            </summary>
            <param name="messageId">Chat message ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.SetChatMessageInfo(CMS.Chat.ChatMessageInfo)">
            <summary>
            Sets (updates or inserts) specified chat message.
            </summary>
            <param name="messageObj">Chat message to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.DeleteChatMessageInfo(CMS.Chat.ChatMessageInfo)">
            <summary>
            Deletes specified chat message.
            </summary>
            <param name="messageObj">Chat message to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.DeleteChatMessageInfo(System.Int32)">
            <summary>
            Deletes chat message with specified ID.
            </summary>
            <param name="messageId">Chat message ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.GetLatestMessages(System.Int32,System.Nullable{System.Int32},System.Nullable{System.DateTime})">
            <summary>
            Gets newest messages.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="maxCount">Maximum number of messages (number is not limited if max count is null)</param>
            <param name="sinceWhen">Messages posted since this time are returned (all messages are returned if null)</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.GetClassicMessagesText(System.Int32)">
            <summary>
            Gets all classic messages posted in room. Oldest messages are first.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.GetNewestMessageTime(System.Int32)">
            <summary>
            Gets ChatMessageLastModified of the newest message in room.
            </summary>
            <param name="roomID">Room ID</param>
            <returns>Newest ChatMessageLastModified or null if there are no messages in this room</returns>
        </member>
        <member name="M:CMS.Chat.ChatMessageInfoProvider.SetInfo(CMS.Chat.ChatMessageInfo)">
            <summary>
            Inserts or Updates the object to the database.
            </summary>
            <param name="info">Object to insert / update</param>
        </member>
        <member name="T:CMS.Chat.ChatModule">
            <summary>
            Represents the Chat module.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatModule.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatModule.OnInit">
            <summary>
            Initializes chat module.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatNotificationInfo">
            <summary>
            ChatNotificationInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatNotificationInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationID">
            <summary>
            ID of chat notification.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationReceiverID">
            <summary>
            Receiver of this notification. This one will see it.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationIsRead">
            <summary>
            True if this notification was read, otherwise false.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationRoomID">
            <summary>
            Room of this notification (optional).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationSenderID">
            <summary>
            Sender (issuer) of this notification.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationType">
            <summary>
            Type of notification.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationSendDateTime">
            <summary>
            DateTime of send.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationReadDateTime">
            <summary>
            DateTime of send.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatNotificationInfo.ChatNotificationSiteID">
            <summary>
            SiteID of this notification. If null than global.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatNotificationInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatNotificationInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatNotificationInfoProvider">
            <summary>
            Class providing ChatNotificationInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.GetChatNotifications">
            <summary>
            Returns the query for all chat notifications.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.GetChatNotificationInfo(System.Int32)">
            <summary>
            Returns chat notification with specified ID.
            </summary>
            <param name="notificationId">Chat notification ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.SetChatNotificationInfo(CMS.Chat.ChatNotificationInfo)">
            <summary>
            Sets (updates or inserts) specified chat notification.
            </summary>
            <param name="notificationObj">Chat notification to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.DeleteChatNotificationInfo(CMS.Chat.ChatNotificationInfo)">
            <summary>
            Deletes specified chat notification.
            </summary>
            <param name="notificationObj">Chat notification to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.DeleteChatNotificationInfo(System.Int32)">
            <summary>
            Deletes chat notification with specified ID.
            </summary>
            <param name="notificationId">Chat notification ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.GetChatNotifications(System.Int32,System.Nullable{System.DateTime},System.Nullable{System.Boolean},System.Int32)">
            <summary>
            Gets chat notifications.
            </summary>
            <param name="receiverID">Chat user ID</param>
            <param name="sinceWhen">Sends since when (all if null).</param>
            <param name="isRead">Is read (or all if null).</param>
            <param name="siteID">Only notification assigned to this site will be returned</param>
            <returns>List of notifications</returns>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.GetLastNotificationChanges(System.Int32)">
            <summary>
            Gets times of last changed notifications for online users.
             
            Keys in dictionary are user's IDs and Values are times of last change.
            </summary>
            <param name="siteID">Site ID</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.InsertNotification(CMS.Chat.ChatNotificationTypeEnum,System.Int32,System.Int32,System.Nullable{System.Int32},System.Nullable{System.Int32})">
            <summary>
            Inserts new notification to the database. If there is already an unread notification with the same sender, receiver and roomID, the new one is not inserted!
            </summary>
            <param name="type">Type of notification</param>
            <param name="senderID">Sender (chat user ID)</param>
            <param name="receiverID">Receiver (chat user ID)</param>
            <param name="roomID">Room ID (in case of join room, leave room, etc. notifications). Null, if notification is not room related.</param>
            <param name="siteID">Notification will be assigned to this site (null is global)</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.MarkAsReadChatNotification(System.Int32)">
            <summary>
            Marks as read chat notification.
            </summary>
            <param name="chatNotificationID">Notification ID</param>
        </member>
        <member name="M:CMS.Chat.ChatNotificationInfoProvider.GetUnreadNotificationsUntil(System.Int32,System.DateTime)">
            <summary>
            Gets all unred notifications which arrived before passed time.
            </summary>
            <param name="receiverID">Receiver of notifications</param>
            <param name="untilWhen">Notifications arrived before this time</param>
        </member>
        <member name="T:CMS.Chat.ChatOnlineUsersCleaner">
            <summary>
            Scheduled task which cleans inactive chat users and supporters.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatOnlineUsersCleaner.Execute(CMS.Scheduler.TaskInfo)">
            <summary>
            Cleans inactive users and support engineer from the chat. Number of seconds needed to be inactive is taken from settings.
             
            Inactive user is the one who is not pinging.
            </summary>
            <param name="task">Task</param>
            <returns>Number of cleaned records</returns>
        </member>
        <member name="T:CMS.Chat.ChatResponseStatusEnum">
            <summary>
            ChatService response codes.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.OK">
            <summary>
            Ok
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.NotLoggedIn">
            <summary>
            NotLoggedIn
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.AccessDenied">
            <summary>
            AccessDenied
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.MessageCanNotBeEmpty">
            <summary>
            MessageCanNotBeEmpty
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.NotJoinedInARoom">
            <summary>
            NotJoinedInARoom
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.UnknownError">
            <summary>
            UnknownError
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.ChatUserNotFound">
            <summary>
            ChatUserNotFound
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.WrongSecondUser">
            <summary>
            WrongSecondUser
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.NicknameNotAvailable">
            <summary>
            NicknameNotAvailable
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.SupportIsNotOnline">
            <summary>
            SupportIsNotOnline
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.RoomNotFound">
            <summary>
            RoomNotFound
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.WrongPassword">
            <summary>
            WrongPassword
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.AnonymsDisallowed">
            <summary>
            AnonymsDisallowed
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.BadWordsValidationFailed">
            <summary>
            BadWordsValidationFailed
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.BadRequest">
            <summary>
            BadRequest
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.BannedIP">
            <summary>
            BannedIP
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.KickedFromRoom">
            <summary>
            KickedFromRoom
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.AnonymsDisallowedGlobally">
            <summary>
            AnonymsDisallowedGlobally
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.Flooding">
            <summary>
            Flooding
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.MessageTooLong">
            <summary>
            MessageTooLong
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.CanNotKickAdmin">
            <summary>
            CanNotKickAdmin
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.RoomNameCantBeEmpty">
            <summary>
            RoomNameCantBeEmpty
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.RoomNameTooLong">
            <summary>
            RoomNameTooLong
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.RoomPasswordTooLong">
            <summary>
            RoomPasswordTooLong
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.NicknameCantBeEmpty">
            <summary>
            NicknameCantBeEmpty
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.NicknameTooLong">
            <summary>
            NicknameTooLong
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.NicknameCantBeginWith">
            <summary>
            NicknameCantBeginWith
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.InitiatedChatRequestAlreadyAccepted">
            <summary>
            InitiatedChatRequestAlreadyAccepted
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.RoomAlreadyTaken">
            <summary>
            RoomAlreadyTaken
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatResponseStatusEnum.InvitationAlreadyAnswered">
            <summary>
            InvitationAlreadyAnswered
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatRoomHelper">
            <summary>
            Helper class. Contains methods working only with chat rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ConvertRoomToData(CMS.Chat.RoomState,System.Boolean)">
            <summary>
            Makes ChatRoomData from information contained in ChatRoomInfo.
             
            Property IsRemoved is set based on:
            - if room is disabled, IsRemoved is true
            - if user is anonymous and room does not allow anonymous users, IsRemoved is set to true
            - otherwise it is set to false
            </summary>
            <param name="roomState">Room state</param>
            <param name="isUserAnonymous">Anonymous state of current user</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ConvertRoomToData(CMS.Chat.RoomState)">
            <summary>
            Makes ChatRoomData from information contained in ChatRoomInfo. User is considered as non anonymous here.
             
            Property IsRemoved is set based on:
            - if room is disabled, IsRemoved is true
            - if user is anonymous and room does not allow anonymous users, IsRemoved is set to true
            - otherwise it is set to false
            </summary>
            <param name="roomState">Room state</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ConvertRoomToData(CMS.Chat.ChatRoomInfo)">
            <summary>
            Makes ChatRoomData from information contained in ChatRoomInfo. User is considered as non anonymous here.
             
            Property IsRemoved is set based on:
            - if room is disabled, IsRemoved is true
            - if user is anonymous and room does not allow anonymous users, IsRemoved is set to true
            - otherwise it is set to false
            </summary>
            <param name="roomInfo">Room info</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ConvertRoomToData(CMS.Chat.ChatRoomInfo,System.Boolean)">
            <summary>
            Makes ChatRoomData from information contained in ChatRoomInfo.
             
            Property IsRemoved is set based on:
            - if room is disabled, IsRemoved is true
            - if user is anonymous and room does not allow anonymous users, IsRemoved is set to true
            - otherwise it is set to false
             
            If room is removed, its values are not set. Only RoomID and IsRemoved = true are returned.
            </summary>
            <param name="roomInfo">Room info</param>
            <param name="isUserAnonymous">Anonymous state of current user</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ConvertRoomToDataAdminLevel(CMS.Chat.RoomState,CMS.Chat.AdminLevelEnum)">
            <summary>
            Makes ChatRoomData from information contained in ChatRoomInfo.
             
            If room is removed, its values are not set. Only RoomID and IsRemoved = true are returned.
             
            Returns null if roomState is null;
            </summary>
            <param name="roomState">Room state</param>
            <param name="userAdminLevel">If admin level is None and room is private, the room will be returned with IsRemoved = true</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ConvertRoomToDataRemoved(CMS.Chat.ChatRoomInfo,System.Boolean)">
            <summary>
            Makes ChatRoomData from information contained in ChatRoomInfo.
             
            If room is removed, its values are not set. Only RoomID and IsRemoved = true are returned.
            </summary>
            <param name="roomInfo">Room info</param>
            <param name="isRemoved">If true room will be returned with IsRemoved = true</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.CreateOneToOneChatRoom(CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Creates one-to-one chat room and inserts it into the DB. If room already exists, the old one is returned.
             
            Invitation is send to secondChatUser and both users get 'Join' rights to this room.
            </summary>
            <param name="currentChatUser">Current chat user</param>
            <param name="secondChatUser">Chat user to whisper with</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.CreateClassicChatRoom(CMS.Chat.ChatUserInfo,System.String,System.Boolean,System.String,System.Boolean,System.String)">
            <summary>
            Creates classic (not one-to-one and not support) chat room.
            </summary>
            <param name="currentChatUser">Current chat user</param>
            <param name="displayName">Display name</param>
            <param name="isPrivate">Is private</param>
            <param name="password">Password</param>
            <param name="allowAnonym">Allow anonym</param>
            <param name="description">Description of the chat room</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.CreateSupportChatRoom(CMS.Chat.ChatUserInfo)">
            <summary>
            Creates support room. Support room is private, marked as IsSupport, so new messages will be send to online support engineers.
             
            Support greeting system message is automatically inserted (the default one) if the room is newly created.
            </summary>
            <param name="currentChatUser">Current chat user. This parameter is needed to find chat room (if this user has been chatting before).</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.CreateSupportChatRoomManual(CMS.Chat.ChatUserInfo,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Creates support room. Support room is private, marked as IsSupport, so new messages will be send to online support engineers.
             
            If parameter <paramref name="greetingMessages"/> is null, the default support greeting message (ChatMessageTypeEnum.SupportGreeting) will be inserted. But only if the room did not exist before.
            </summary>
            <param name="currentChatUser">Current chat user. This parameter is needed to find chat room (if this user has been chatting before).</param>
            <param name="greetingMessages">Messages which will be inserted to the room as a greeting. They will be inserted even if room was already created.</param>
            <returns>ChatRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.CreateIntiatedChatRoom(System.String,CMS.Chat.ChatUserInfo)">
            <summary>
            Creates new initiated chat room and inserts it into the database.
            </summary>
            <param name="namePattern">Name of the new room. {0} will be replaced with RoomID.</param>
            <param name="creator">Creator of this room.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ChangeChatRoom(System.Int32,System.String,System.Boolean,System.String,System.Boolean,System.String,System.Boolean)">
            <summary>
            Changes chat room.
             
            Properly handles changing from public to private state.
             
            Invalidates rooms cache.
             
            Properties ChatRoomIsSupport and ChatRoomName are not changed.
            </summary>
            <param name="roomID">Room ID to change</param>
            <param name="displayName">New display name</param>
            <param name="isPrivate">New is private state</param>
            <param name="password">New password. If it is null, password is not changed</param>
            <param name="allowAnonym">New allow anonym</param>
            <param name="description">New description</param>
            <param name="hashPassword">If true, password is not hashed yet and should be hashed automatically; if false, hashing was handled by caller</param>
            <returns>Changed chat room</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.ChangeChatRoom(System.Int32,System.String,System.Boolean,System.String,System.Boolean,System.String,System.Nullable{System.Boolean},System.String,System.Boolean)">
            <summary>
            Changes chat room.
             
            Properly handles changing from public to private state.
             
            Invalidates rooms cache.
            </summary>
            <param name="roomID">Room ID to change</param>
            <param name="displayName">New display name</param>
            <param name="isPrivate">New is private state</param>
            <param name="password">New password. If it is null, password is not changed</param>
            <param name="allowAnonym">New allow anonym</param>
            <param name="description">New description</param>
            <param name="isSupport">New is support state (is not changed if null)</param>
            <param name="codeName">New code name (is not changed if null)</param>
            <param name="hashPassword">If true, password is not hashed yet and should be hashed automatically; if false, hashing was handled by caller</param>
            <returns>Changed chat room</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.DisableChatRoom(System.Int32)">
            <summary>
            Disables chat room and refreshes cache.
            </summary>
            <param name="roomID">Room ID to disable</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.EnableChatRoom(System.Int32)">
            <summary>
            Enables chat room and refreshes cache.
            </summary>
            <param name="roomID">Chat room to enabled</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.GetRoomPasswordHash(System.String,System.String)">
            <summary>
            Combines plain text password with salt and returns its hash.
             
            If plainText is null, it returns null. If it is empty string it retuns empty string.
            </summary>
            <param name="plainTextPassword">Password in plain text.</param>
            <param name="salt">Salt (ChatRoomGUID)</param>
            <returns>Hashed password</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.GetRoomPasswordHash(System.String,System.Guid)">
            <summary>
            Combines plain text password with salt (GUID converted to string) and returns its hash.
             
            If plainText is null, it returns null. If it is empty string it retuns empty string.
            </summary>
            <param name="plainTextPassword">Password in plain text.</param>
            <param name="salt">Salt (ChatRoomGUID)</param>
            <returns>Hashed password</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.VerifyChatRoomDescriptionIsValid(System.String@)">
            <summary>
            Truncates description if needed.
            </summary>
            <param name="description">Description</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.VerifyChatRoomNameIsValid(System.String@)">
            <summary>
            Validates chat room name. Name is also trimmed.
             
            Name is valid if it is not empty and no longer than 100 characters.
             
            Throw exception if not valid.
            </summary>
            <param name="roomName">Name to validate</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.VerifyChatRoomPasswordIsValid(System.String@)">
            <summary>
            Validates password.
             
            Throw exception if not valid.
            </summary>
            <param name="password">Password to validate</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.BuildChatRoom(System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.String,System.Boolean,System.Boolean,System.String)">
            <summary>
            Creates ChatRoomInfo from passed params. Room is assigned to the current site.
            </summary>
            <param name="displayName">displayName</param>
            <param name="codeName">codeName</param>
            <param name="isPrivate">isPrivate</param>
            <param name="allowAnonym">allowAnonym</param>
            <param name="createdByChatUserID">createdByChatUserID</param>
            <param name="password">password</param>
            <param name="isSupport">isSupport</param>
            <param name="isOneToOne">isOneToOne</param>
            <param name="description">Description of the chat room</param>
            <returns>ChatRoomInfo</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.BuildChatRoom(System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.String,System.Boolean,System.Boolean,System.String,System.Nullable{System.Int32})">
            <summary>
            Creates ChatRoomInfo from passed params.
            </summary>
            <param name="displayName">displayName</param>
            <param name="codeName">codeName</param>
            <param name="isPrivate">isPrivate</param>
            <param name="allowAnonym">allowAnonym</param>
            <param name="createdByChatUserID">createdByChatUserID</param>
            <param name="password">password</param>
            <param name="isSupport">isSupport</param>
            <param name="isOneToOne">isOneToOne</param>
            <param name="description">Description of the chat room</param>
            <param name="siteID">SiteID of the chat room (null is global)</param>
            <returns>ChatRoomInfo</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.BuildOneToOneRoom(CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Creates ChatRoomInfo which has properties set to be one-to-one room.
            </summary>
            <param name="createdByChatUser">The iniciator of one-to-one chat.</param>
            <param name="secondChatUser">The invited user.</param>
            <returns>ChatRoomInfo</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.MakeOneToOneCodeName(System.Int32,System.Int32)">
            <summary>
            Creates code name for an one-to-one room. Code name looks like this: "adhoc_[lower_user_ID>]|[greater_user_ID]|[site_id]"
            </summary>
            <param name="chatUser1ID">ID of the first chat user</param>
            <param name="chatUser2ID">ID of the second chat user</param>
            <returns>Unique name of the whisper room between these two chat users</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomHelper.MakeOneToOneDisplayName(CMS.Chat.ChatUserInfo,CMS.Chat.ChatUserInfo)">
            <summary>
            Creates display name for an one-to-one room
            </summary>
            <param name="chatUser1">First chat user</param>
            <param name="chatUser2">Second chat user</param>
            <returns>Name of the whisper room</returns>
        </member>
        <member name="T:CMS.Chat.ChatRoomInfo">
            <summary>
            ChatRoomInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatRoomInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatRoomInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.LogExport">
            <summary>
            Log export only if room meets export criteria. Only public rooms are meant to be exported.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomName">
            <summary>
            System name.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomAllowAnonym">
            <summary>
            True, if this room can be entered by anonyms (users which are not registered or logged in).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomIsOneToOne">
            <summary>
            True, if this room is created as one to one chat.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomEnabled">
            <summary>
            If false, this room is not accessible.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomPrivate">
            <summary>
            If room is private, it is not visible in rooms list.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomSiteID">
            <summary>
            Site to which this room belongs (null = global).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomPassword">
            <summary>
            Password of a room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.HasPassword">
            <summary>
            Gets true if password is needed to enter this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.IsOneToOneSupport">
            <summary>
            True if room is support and one to one. This aplies to rooms created by 'I need help' button on live site.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.IsWhisperRoom">
            <summary>
            True if this room is for whispering (OneToOne is true and IsSupport is false).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomCreatedWhen">
            <summary>
            Datetime when this chat room was created.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomCreatedByChatUserID">
            <summary>
            ID of creator of this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomID">
            <summary>
            ID of chat room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomDisplayName">
            <summary>
            Display name.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomIsSupport">
            <summary>
            True, if supporters will follow this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomLastSupportVisit">
            <summary>
            True, if any supporter is already taking care of this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomDescription">
            <summary>
            Decription of the chat room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomLastModification">
            <summary>
            Datetime when this chat room was created.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomScheduledToDelete">
            <summary>
            True, if any supporter is already taking care of this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomPrivateStateLastModification">
            <summary>
            Datetime when this chat room was created.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomInfo.ChatRoomGUID">
            <summary>
            Unique identifier of this chat orom.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatRoomInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatRoomInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.InsertAsCloneInternal(CMS.DataEngine.CloneSettings,CMS.DataEngine.CloneResult,CMS.DataEngine.BaseInfo)">
            <summary>
            Sets CreatedWhen and LastModification to the current time.
             
            This method is called on cloned object prepared in memory by InsertAsClone method.
            Override if you need to do further actions before inserting actual object to DB (insert special objects, modify foreign keys, copy files, etc.).
            Calls Insert() by default.
            </summary>
            <param name="settings">Cloning settings</param>
            <param name="result">Result of the cloning - messages in this object will be altered by processing this method</param>
            <param name="originalObject">Original source BaseInfo (object being cloned)</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.UpdateData">
            <summary>
            Override use of classic query for updating data.
             
            Properly handles changing from public to private state.
             
            Invalidates rooms cache.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfo.LoadDefaultData">
            <summary>
            Loads the default data to the object.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatRoomInfoProvider">
            <summary>
            Class providing ChatRoomInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetChatRooms">
            <summary>
            Returns the query for all chat rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetChatRoomInfo(System.Int32)">
            <summary>
            Returns chat room with specified ID.
            </summary>
            <param name="roomId">Chat room ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetChatRoomInfo(System.String,System.String)">
            <summary>
            Returns chat room with specified name.
            </summary>
            <param name="roomName">Chat room name.</param>
            <param name="siteName">Site name.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetChatRoomInfo(System.String)">
            <summary>
            Returns chat room with specified name.
            </summary>
            <param name="roomCodeName">Chat room code name.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.SetChatRoomInfo(CMS.Chat.ChatRoomInfo)">
            <summary>
            Sets (updates or inserts) specified chat room.
            </summary>
            <param name="roomObj">Chat room to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.DeleteChatRoomInfo(CMS.Chat.ChatRoomInfo)">
            <summary>
            Deletes specified chat room.
            </summary>
            <param name="roomObj">Chat room to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.DeleteChatRoomInfo(System.Int32)">
            <summary>
            Deletes chat room with specified ID.
            </summary>
            <param name="roomId">Chat room ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetChangedChatRooms(System.Int32,System.Nullable{System.DateTime})">
            <summary>
            Gets chat rooms changed since specified time. Does not select one to one rooms!
            </summary>
            <param name="siteID">Site ID</param>
            <param name="changedSince">Rooms changed since this time will be returned. If null all rooms will be returned</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.DisableRoom(System.Int32)">
            <summary>
            Disables room.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.EnableRoom(System.Int32)">
            <summary>
            Enables room.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.SafeDelete(System.Int32)">
            <summary>
            Marks room to be deleted. Sets ChatRoomScheduledToDelete.
            </summary>
            <param name="roomID">RoomID to delete</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.DeleteScheduledRooms">
            <summary>
            Deletes rooms scheduled to be deleted (by SafeDelete()).
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetOneToOneChatRoomInfo(System.String)">
            <summary>
            Gets one to one chat room with specified code name. Room must be global, because all one one one rooms are global.
            </summary>
            <param name="roomCodeName">Code name of a room.</param>
            <returns>ChatRoomInfo or null</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetOneToOneChatRoomInfo(System.Int32)">
            <summary>
            Gets one to one chat room with specified id.
            </summary>
            <param name="chatRoomID">ID of a room.</param>
            <returns>ChatRoomInfo or null</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetSupportChatRoomInfo(System.String)">
            <summary>
            Gets support chat room with specified code name.
            </summary>
            <param name="roomCodeName">Code name of a room</param>
            <returns>ChatRoomInfo or null</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetSupportRoomsWithNewMessages(System.Nullable{System.DateTime},System.Int32)">
            <summary>
            Gets support rooms where new messages was added since <paramref name="lastChange"/> or taken room state was changed.
            </summary>
            <param name="lastChange">If null, all messages which were added later than resolveddatetime are considered as new.</param>
            <param name="siteID">Only global rooms and rooms on this site will be returned</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.CleanOldChatRecords(System.Int32)">
            <summary>
            Cleans unused records from Chat. Affects Users, Messages and Rooms.
             
            This query affects all chat tables.
            </summary>
            <returns>Number of deleted records</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.GetCurrentDateTime">
            <summary>
            Gets current time on SQL Server.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.UpdateCachedRooms">
            <summary>
            Updates data of all cached rooms.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomInfoProvider.SetInfo(CMS.Chat.ChatRoomInfo)">
            <summary>
            Inserts or Updates the object to the database.
            </summary>
            <param name="info">Object to insert / update</param>
        </member>
        <member name="T:CMS.Chat.ChatRoomUserInfo">
            <summary>
            ChatRoomUser data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatRoomUserInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatRoomUserInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserRoomID">
            <summary>
            Room ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserLastChecking">
            <summary>
            Datetime of last checking.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserID">
            <summary>
            ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserChatUserID">
            <summary>
            Chat user ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserKickExpiration">
            <summary>
            DateTime when kick will expire.
             
            If set to null, user was not kicked.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserLeaveTime">
            <summary>
            DateTime when user left the room.
             
            If set to null, user is online.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserJoinTime">
            <summary>
            DateTime when user joined room.
             
            If set to null, user has left.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserAdminLevel">
            <summary>
            Chat admin level.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.ChatRoomUserLastModification">
            <summary>
            Last modification.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomUserInfo.IsOnline">
            <summary>
            Gets online state of this user. User is online if his JoinTime is not null.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatRoomUser object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatRoomUser object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="T:CMS.Chat.ChatRoomUserInfoProvider">
            <summary>
            Class providing ChatRoomUser management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetChatRoomUsers">
            <summary>
            Returns the query for all chat room users.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetChatRoomUser(System.Int32)">
            <summary>
            Returns chat room user with specified ID.
            </summary>
            <param name="userId">Chat room user ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.SetChatRoomUser(CMS.Chat.ChatRoomUserInfo)">
            <summary>
            Sets (updates or inserts) specified chat room user.
            </summary>
            <param name="userObj">Chat room user to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.DeleteChatRoomUser(CMS.Chat.ChatRoomUserInfo)">
            <summary>
            Deletes specified chat room user.
            </summary>
            <param name="userObj">Chat room user to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.DeleteChatRoomUser(System.Int32)">
            <summary>
            Deletes chat room user with specified ID.
            </summary>
            <param name="userId">Chat room user ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetAllOnlineUsersInRoom(System.Int32)">
            <summary>
            Gets users in a room who are online right now.
            </summary>
            <param name="roomID">Chat room ID.</param>
            <returns>List of online users in a room.</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetRoomOnlineUsers(System.Int32,System.DateTime)">
            <summary>
            Gets online users in a room.
            </summary>
            <param name="roomID">Chat room ID.</param>
            <param name="changedSince">Get room users changed since this time</param>
            <returns>List of online users in a room.</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.LeaveRoom(System.Int32,System.Int32,System.String,System.Nullable{CMS.Chat.ChatMessageTypeEnum})">
            <summary>
            User leaves room. Sets his JoinTime to null, LeaveTime to now, LastModification to now. Etc.
            This method also inserts system message about leaving to this room.
            </summary>
            <param name="roomID">User will be left from this room</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="leaveSystemMessageFormat">Format of system message. Placeholder {nickname} will be replaced by actual user's nickname. If null system message won't be inserted.</param>
            <param name="leaveSystemMessageType">Type of leave room system message (typically ChatMessageTypeEnum.LeaveRoom)</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.JoinRoom(System.Int32,System.Int32,System.String)">
            <summary>
            Joins user to room. Sets his JoinTime to now, LeaveTime to null, etc.
             
            This method checks automatically password. It takes into account actual 'join state' of this user -> if user is already joined, he does not have to provide correct password.
             
            'Enabled state' of this room is also checked.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="password">Room's password. If room has not password this parameter will be ignored.</param>
            <returns>Result of Joining</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetChatRoomUsersByRoomID(System.Int32)">
            <summary>
            Gets all chat room users by roomID.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetAnonymousChatRoomUsersByRoomID(System.Int32)">
            <summary>
            Gets anonymous chat room users in room.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetChatRoomUser(System.Int32,System.Int32)">
            <summary>
            Gets chat room user.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <param name="roomID">Room ID</param>
            <returns>ChatRoomUserInfo or null</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.UpdateLastChecking(System.Int32,System.Int32)">
            <summary>
            Updates LastChecking (LastPing) in table ChatRoomUser of chat user with <paramref name="chatUserID"/>
            in room with <paramref name="chatRoomID"/> to GETDATE() (sql server time).
            </summary>
            <param name="chatUserID">ID of a chat user</param>
            <param name="chatRoomID">Room ID</param>
            <returns>True if everything is ok. False if user is not online in this room.</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetOnlineUsersCounts(System.Int32)">
            <summary>
            Gets counts of users in rooms for all rooms in this site.
            </summary>
            <param name="siteID">Site ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.KickUser(System.Int32,System.Int32,System.DateTime)">
            <summary>
            Updates KickExpiration in table ChatRoomUser of chat user with <paramref name="chatUserID"/>
            in room with <paramref name="chatRoomID"/>.
            </summary>
            <param name="chatUserID">ID of a chat user</param>
            <param name="chatRoomID">Room ID</param>
            <param name="kickExpiration">KickExpiration to set</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.KickPermanentlyFromRoom(System.Int32,System.Int32)">
            <summary>
            Kicks permanently from room (removes access rights)
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetSecondChatUserIDInOneToOneRoom(System.Int32,System.Int32)">
            <summary>
            Gets chat user who is present in room with <paramref name="roomID"/>.
             
            User with ID in <paramref name="currentChatUserID"/> is omited.
             
            This method should be used only for one to one rooms.
            </summary>
            <param name="currentChatUserID">ID of a current chat user</param>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.CleanOnlineUsersInRooms(System.Int32,System.String,CMS.Chat.ChatMessageTypeEnum)">
            <summary>
            Removes inactive users from all rooms.
            </summary>
            <param name="inactiveForSeconds">Number of seconds needed for user to be considered as inactive.</param>
            <param name="leaveSystemMessageFormat">Format of leave room system message. {nickname} will be replaced with actual user's nickname</param>
            <param name="leaveSystemMessageType">Type of leave room system message.</param>
            <returns>Number of cleaned users</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetKickedUsers(System.Int32)">
            <summary>
            Gets kicked users in one room.
            </summary>
            <param name="chatRoomID">Room ID</param>
            <returns>Kicked users</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetRoomsWhereChatUserIsOnline(System.Int32)">
            <summary>
            Gets rooms where specified chat user is online now.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <returns>IDs of rooms</returns>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.SetChatAdminLevel(System.Int32,System.Int32,CMS.Chat.AdminLevelEnum)">
            <summary>
            Sets admin level of specified user in specified room to specified level.
            </summary>
            <param name="chatRoomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="adminLevel">New admin level</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.IncreaseChatAdminLevel(System.Int32,System.Int32,CMS.Chat.AdminLevelEnum)">
            <summary>
            Increases admin level of specified user in specified room to specified level.
             
            This means that admin level is changed only if current level of this user is lower than new one.
            </summary>
            <param name="chatRoomID">Room ID</param>
            <param name="chatUserID">Chat user ID</param>
            <param name="adminLevel">New admin level</param>
        </member>
        <member name="M:CMS.Chat.ChatRoomUserInfoProvider.GetAdminStates(System.Int32)">
            <summary>
            Gets admin states in rooms for one user. All rooms where this user was ever present are returned.
            </summary>
            <param name="chatUserID">Chat user ID</param>
            <returns>Admin states</returns>
        </member>
        <member name="T:CMS.Chat.ChatService">
            <summary>
            Implementation of chat service. All chat operations made from client goes through this service.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatService.VerifyNotificationIsValid(CMS.Chat.ChatNotificationInfo,System.Boolean)">
            <summary>
            Checks if notification is valid (belongs to current user, is invitation if should be, etc.).
            </summary>
            <param name="notification">Notification to validate</param>
            <param name="invitationExpected">Indicates if this notification has to be invitation otherwise it is not valid (security)</param>
        </member>
        <member name="M:CMS.Chat.ChatService.VerifyInitiatedChatRequestIsValid(CMS.Chat.ChatInitiatedChatRequestInfo)">
            <summary>
            Checks if initiated chat request belongs to current user (or contact).
             
            Throws exception if fails.
            </summary>
            <param name="request">Initiated chat request to validate</param>
        </member>
        <member name="M:CMS.Chat.ChatService.PingRoom(System.Int32,System.Nullable{System.Int64},System.Nullable{System.Int64},System.Nullable{System.Int32})">
            <summary>
            <para>
            Keeping alive user in a room. User has to call this method every few seconds to let server know that he is still online.
            </para>
            <para>
            At the same time a new online users in a room and a new messages in a room are checked. Client sends the last time he made an update
            of online users (<paramref name="roomUsersLastChange"/>) and messages (<paramref name="roomMessagesLastChange"/>). If something new
            has happened since that time, the changes are sent back.
            </para>
            </summary>
            <param name="roomID">ID of a chat room</param>
            <param name="roomUsersLastChange">Last update of members on this client (client gets this number in PingRoom().Users.LastChange) - if this param is null, client does not need online users. If it is 0, it is the first request and all users are returned.</param>
            <param name="roomMessagesLastChange">Last update of messages on this client (client gets this number in PingRoom().Messages.LastChange) - if this param is null, client does not need online users. If it is 0, it is the first request and all users are returned.</param>
            <param name="maxMessagesCount">Maximum number of messages returned</param>
            <returns>PingRoomsResultData</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.Ping(System.Nullable{System.Int64},System.Nullable{System.Int64},System.Nullable{System.Int64},System.Nullable{System.Int64})">
            /// <summary>
            Keeps user online in global list of chat online users (this method needs to be called periodically).
             
            Checks if there were any changes in:
            - rooms (new room added, changed name, etc.) since <paramref name="lastRoomsChange"/>.
            - counts of users in rooms since <paramref name="lastUsersInRoomsChange"/>.
            - global online users since <paramref name="lastOnlineUsersChange"/>.
            - notifications for online user since <paramref name="lastNotificationChange"/>.
             
            If any of this objects has changed, changes are send back to client.
             
            If any of params is null, its objects are not checked. If param is 0, it is the first request and all objects are returned.
             
            If user is not online on chat, only CurrentChatUserState will be returned and data (rooms, online users, etc.) will be null.
            </summary>
            <param name="lastRoomsChange">Time of last check for rooms list made by this client.</param>
            <param name="lastUsersInRoomsChange">Time of last check for counts of users in rooms made by this client.</param>
            <param name="lastOnlineUsersChange">Time of last check for global online users made by this client.</param>
            <param name="lastNotificationChange">Time of last check for notifications made by this client.</param>
            <returns>PingRoomsResultData</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.JoinRoom(System.Int32,System.String)">
            <summary>
            Joins a room.
             
            Chat user has to be logged in before this operation.
            </summary>
            <param name="roomID">ID of a room.</param>
            <param name="password">Entrance password (if required).</param>
            <returns>JoinRoomData</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.LeaveRoom(System.Int32)">
            <summary>
            Leaves chat room.
            </summary>
            <param name="roomID">ID of a room.</param>
            <returns>ChatGeneralReponse</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.PostMessage(System.Int32,System.String)">
            <summary>
            Posts a new message to a room.
            Chat user has to be logged in and joined this room. Message can not be empty.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="messageText">Message text</param>
            <returns>ChatGeneralReponse</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.PostMessageToUser(System.Int32,System.Int32,System.String)">
            <summary>
            Posts a whisper message to user. This message will be posted to a room, but only sender and receiver of this messages will be able to see it.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="recipientChatUserID">Recepient chat user ID</param>
            <param name="messageText">Message text</param>
            <returns>ChatGeneralReponse</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.Register(System.String)">
            <summary>
            Registers new anonymous chat user. This new user is automatically logged in.
            </summary>
            <param name="nickname">Nickname of a new user</param>
            <returns>ChatUserStateData of the new user.</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.RegisterGuest">
            <summary>
            Registers new guest user (user with auto generated nickname).
            </summary>
            <returns>ChatUserStateData of the new user</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.Logout">
            <summary>
            Logouts chat user from chat (not CMSUser).
             
            Leaves all rooms.
             
            If CMSUser is logged in, this operation won't logout the chat user in reality.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatService.GetChatUserState">
            <summary>
            Gets info about currently logged in chat user.
            </summary>
            <returns>ChatUserStateData (id, nickname, etc.)</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.CreateOneToOneChatRoom(System.Int32)">
            <summary>
            Creates new one-to-one chat room which will be accessible by current user and one more user (invited one).
             
            Display name of new room will be: {nickname_current} - {nickname_invited}
            Code name will be: adhoc_{id_lower}-{id_upper} ({id_lower} is the lower id of the two chat users, {id_upper} is the upper one).
             
            A current user have to manually join this room after creating it.
             
            If those two users have chatted before, the previously created room is returned. Code name is used to find previously created chat room.
            </summary>
            <param name="invitedChatUserID">ID of invited chat user</param>
            <returns>Newly created chat room (or the old one if exists)</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.CreateSupportChatRoom">
            <summary>
            Creates new support room. Support room is private room which can be accessed only by creator
            and support. When creator writes to this room, support is notified.
            </summary>
            <returns>ChatRoomData of new room</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.CreateSupportChatRoomManual(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Creates new support room. Support room is private room which can be accessed only by creator
            and support. When creator writes to this room, support is notified.
             
            This room does not have default greeting message, but messages passed as parameter.
            </summary>
            <returns>ChatRoomData of new room</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.CreateChatRoom(System.String,System.Boolean,System.String,System.Boolean,System.String)">
            <summary>
            Creates new chat room.
             
            Current user have to join it manually after creating it.
             
            Code name of this room will be: chatroom_{current_user_id}_{new_guid}
            </summary>
            <param name="displayName">Display name of a new room (cannot be empty)</param>
            <param name="isPrivate">Indicates if this room will be private</param>
            <param name="password">Optional password</param>
            <param name="allowAnonym">True if anonymous users can join this room (anonym is chat user without CMS.User assigned to it)</param>
            <param name="description">Description of the chat room</param>
            <returns>New chat room</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.KickUser(System.Int32,System.Int32)">
            <summary>
            Kicks a chat user from a room. Currently logged user must be an admin to kick another user.
            </summary>
            <param name="roomID">User will be kicked from this room.</param>
            <param name="chatUserToKickID">ID of user to kick</param>
            <returns>ChatGeneralResponse (code OK if everything went fine)</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.ChangeMyNickname(System.String)">
            <summary>
            Changes nickname of currently logged in user.
            </summary>
            <param name="newNickname">New nickname of current user.</param>
            <returns>Chat user state</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.GetSupportEngineersOnlineCount">
            <summary>
            Gets count of currently logged in support engineers.
            </summary>
            <returns>Count of online support engineers</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.InviteToRoom(System.Int32,System.Int32)">
            <summary>
            Invites user to the chat room. Invitation is inserted into the second user's notifications. Second user can enter the room after accepting the invitation.
             
            Current user has to have admin rights to the room to invite.
            </summary>
            <param name="roomID">Room id</param>
            <param name="chatUserID">Chat user id to invite</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.SearchOnlineUsers(System.String,System.Int32,System.Nullable{System.Int32})">
            <summary>
            Search users who are online globally on a chat (they are performing Ping()) and meet condition (their nickname contains <paramref name="nickname"/>.
            </summary>
            <param name="nickname">Searches for users with this nickname</param>
            <param name="topN">Returns this number of found users</param>
            <param name="invitedToRoomID">If not null, only users who can be invited to this room will be returned</param>
            <returns>Online users</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.AcceptInvitation(System.Int32)">
            <summary>
            Accepts invitation:
             - closes specified notification
             - inserts user into room (joins)
             - sends notification to sender about accepting invite
            </summary>
            <param name="notificationID">Notification (invitation) ID</param>
            <returns>Room which is led to by the accepted invitation (so client can show it immediatelly in a room list)</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.DeclineInvitation(System.Int32)">
            <summary>
            Declines invitation:
             - closes specified notification
             - sends notification to sender about declining invite
            </summary>
            <param name="notificationID">Notification (invitation) ID</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.CloseNotification(System.Int32)">
            <summary>
            Closes (markes as read) specified notification. This can be used to close generic notifications like InvitationDeclined or InvitationAccepted.
            </summary>
            <param name="notificationID">Notification ID</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.CloseAllNotifications(System.Int64)">
            <summary>
            Closes (markes as read) all notifications which belongs to online users and which were sent until <paramref name="untilWhen"/>.
            </summary>
            <param name="untilWhen">Notifications received before this time (Ticks) will be closed. This time can be obtained in Ping().Notifications.LastChange</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.GetPermissions">
            <summary>
            Gets permissions of currently logged in user.
            </summary>
            <returns>Permissions.</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.RejectMessage(System.Int32)">
            <summary>
            Rejects the message.
             
            Checks for permissions for a specified room (roomID can be get from messageID) and if current chat user has
            admin rights, it rejects the message.
            </summary>
            <param name="messageID">Message ID</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.LeaveRoomPermanently(System.Int32)">
            <summary>
            Permanently leaves current user from the private chat room (Join/Admin rights are removed from this room).
             
            If room is not private, it acts as normale LeaveRoom().
            </summary>
            <param name="roomID">Room id</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.KickUserPermanently(System.Int32,System.Int32)">
            <summary>
            Kickes user permanently from a private room. If this room is public, it acts as a normal kick.
             
            Kicked user won't be able to enter room again, unless he will be invited one more time.
            </summary>
            <param name="roomID">Room id</param>
            <param name="chatUserToKickID">ID of chat user which should be kicked</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.AddAdmin(System.Int32,System.Int32)">
            <summary>
            Adds admin to the room. Only admin can do it.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserToAddID">Chat user who will become admin</param>
            <returns>ChatGeneralResponse</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.DeleteAdmin(System.Int32,System.Int32)">
            <summary>
            Deletes admin from the room. Only admin can do it.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserToDeleteID">Chat user who will loose room admin permissions</param>
            <returns>ChatGeneralResponse</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.ChangeChatRoom(System.Int32,System.String,System.Boolean,System.Boolean,System.String,System.Boolean,System.String)">
            <summary>
            Changes existing chat room.
            </summary>
            <param name="roomID">Chat room to change</param>
            <param name="displayName">Display name of a new room (cannot be empty)</param>
            <param name="isPrivate">Indicates if this room will be private</param>
            <param name="hasPassword">Indicates if room will have password</param>
            <param name="password">Optional password</param>
            <param name="allowAnonym">True if anonymous users can join this room (anonym is chat user without CMS.User assigned to it)</param>
            <param name="description">Description of the chat room</param>
            <returns>Changed chat room</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.DeleteChatRoom(System.Int32)">
            <summary>
            Disables room. User has to be either Global admin, has ManageRooms permission or be creator/admin of this room.
            </summary>
            <param name="roomID">Chat room to delete</param>
            <returns>GeneralResponse</returns>
        </member>
        <member name="M:CMS.Chat.ChatService.PingInitiate(System.Nullable{System.Int64})">
            <summary>
            Checks if there is new initiated chat request pending for this user and returns it. Returns null if there is nothing.
             
            Requests are searched by ContactID and UserID.
            </summary>
            <param name="lastChange">Last state on the client.</param>
        </member>
        <member name="M:CMS.Chat.ChatService.AcceptChatRequest(System.Int32)">
            <summary>
            Accepts initiated chat request.
            </summary>
            <param name="chatRoomID">Room used in the request</param>
        </member>
        <member name="M:CMS.Chat.ChatService.DeclineChatRequest(System.Int32)">
            <summary>
            Declines initiated chat request.
            </summary>
            <param name="chatRoomID">Room used in the request</param>
        </member>
        <member name="T:CMS.Chat.ChatServiceBase">
            <summary>
            Base class of all chat web services.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatServiceBase.Sites">
            <summary>
            Shortcut to ChatGlobalData.Instance.Sites (contains cached chat objects (rooms, etc.)).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatServiceBase.CurrentChatUserState">
            <summary>
            Gets ChatUserState of currently logged in chat user.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyChatUserHasAdminRoomRights(System.Int32)">
            <summary>
            Verifies that currently logged in chat user has admin rights for a room.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyIPIsNotBanned">
            <summary>
            Verifies that IP addres which was used to make this request is not banned.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyChatUserIsLoggedIn">
            <summary>
            Verifies that chat user is logged in.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyChatUserIsOnlineInARoom(System.Int32)">
            <summary>
            Verifies that currently logged in chat user is online in a room.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
            <param name="roomID">Room ID</param>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyChatUserHasPermission(CMS.Chat.ChatPermissionEnum)">
            <summary>
            Verifies that currently logged in chat user has specified permission.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
            <param name="permission">Chat permission to check</param>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyChatUserHasAnyPermission(CMS.Chat.ChatPermissionEnum[])">
            <summary>
            Verifies that currently logged in chat user has at least one of the passed permissions.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
            <param name="permissions">Chat permissions to check</param>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.VerifyChatUserHasAllPermissions(CMS.Chat.ChatPermissionEnum[])">
            <summary>
            Verifies that currently logged in chat user has all of the passed permissions.
             
            Throws exception in case of failure and does nothing in case of success.
            </summary>
            <param name="permissions">Chat permissions to check</param>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetOkChatResponse">
            <summary>
            Builds general chat response with OK code.
            </summary>
            <returns>General response with OK code and default string</returns>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetOkChatResponse``1(``0)">
            <summary>
            Builds general chat response with OK code and Data set to <paramref name="data"/>.
            </summary>
            <typeparam name="TData">Type of inner Data property.</typeparam>
            <param name="data">Payload of this response</param>
            <returns>General response with data</returns>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetChatResponse(CMS.Chat.ChatResponseStatusEnum)">
            <summary>
            Builds general chat response with error set to <paramref name="statusCode"/> and message set to default value associated with <paramref name="statusCode"/>.
            </summary>
            <param name="statusCode">Status code of the response</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetChatResponse(CMS.Chat.ChatResponseStatusEnum,System.String)">
            <summary>
            Builds general chat response with error set to <paramref name="statusCode"/> and message set to <paramref name="statusMessage"/>.
            </summary>
            <param name="statusCode">Response code</param>
            <param name="statusMessage">Response message</param>
            <returns>General error response</returns>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetChatResponse``1(CMS.Chat.ChatResponseStatusEnum)">
            <summary>
            Builds chat response with code set to <paramref name="statusCode"/>, message set to default value associated with <paramref name="statusCode"/> and data set to default(TData).
            </summary>
            <typeparam name="TData">Type of Data property of the response</typeparam>
            <param name="statusCode">Status code</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetChatResponse``1(CMS.Chat.ChatResponseStatusEnum,System.String)">
            <summary>
            Builds chat response with code set to <paramref name="statusCode"/>, message set to <paramref name="statusMessage"/> and data set to default(TData).
            </summary>
            <typeparam name="TData">Type of data property</typeparam>
            <param name="statusCode">Status code</param>
            <param name="statusMessage">Status message</param>
            <returns>General response with Data of type TData</returns>
        </member>
        <member name="M:CMS.Chat.ChatServiceBase.GetChatResponse``1(CMS.Chat.ChatResponseStatusEnum,System.String,``0)">
            <summary>
            Builds generic ChatGeneral response with properties set to passed params.
            </summary>
            <typeparam name="TData">Type of payload</typeparam>
            <param name="statusCode">Status code</param>
            <param name="statusMessage">Status message</param>
            <param name="data">Payload</param>
            <returns>ChatGeneralResponse</returns>
        </member>
        <member name="P:CMS.Chat.ChatServiceBase.IsIPBanned">
            <summary>
            Gets true if current user's IP address is banned and he can not do anything on the chat.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChangeTypeEnum">
            <summary>
            Change type of cacheable item.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChangeTypeEnum.Modify">
            <summary>
            Item was changed or modified.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChangeTypeEnum.Remove">
            <summary>
            Item was removed.
            </summary>
        </member>
        <member name="T:CMS.Chat.IChatCacheableWithCurrentState`1">
            <summary>
            Items cached in CurrentStateCache has to implement this interface.
            </summary>
            <typeparam name="TKey">Type of key of this item. Unique representation of one object.</typeparam>
        </member>
        <member name="P:CMS.Chat.IChatCacheableWithCurrentState`1.ChangeType">
            <summary>
            Type of change. If it is set to Modify, item with this PK will be added/modified in current state cache.
            </summary>
        </member>
        <member name="P:CMS.Chat.IChatCacheableWithCurrentState`1.PK">
            <summary>
            Primary key of this item.
            </summary>
        </member>
        <member name="T:CMS.Chat.IChatIncrementalCacheable">
            <summary>
            Only classes which implement this interface can be stored in ChatParametrizedCacheWrapper.
            </summary>
        </member>
        <member name="P:CMS.Chat.IChatIncrementalCacheable.ChangeTime">
            <summary>
            Change time of this object.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatUserHelper">
            <summary>
            Helper class specific for chat user.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.IsNicknameAvailable(System.String)">
            <summary>
            Returns true if nickname is available. Otherwise false. Takes into account <see cref="P:CMS.Chat.ChatSettingsProvider.ForceAnonymUniqueNicknamesSetting"/>.
            </summary>
            <param name="nickname">Required nickname</param>
            <returns>True if nickname is available; otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.IsNicknameAvailable(System.String,System.Boolean)">
            <summary>
            Returns true if nickname is available. Otherwise false.
             
            Current user is not counted.
            </summary>
            <param name="nickname">Required nickname</param>
            <param name="includeAnonymousUsers">If true, also ONLINE anonymous users are checked for duplications. Otherwise only CMS Users.</param>
            <returns>True if nickname is available; otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.VerifyNicknameIsValid(System.String@)">
            <summary>
            Checks if nickname is valid. Nickname is also trimmed.
             
            Nickname cannot be empty
            Nickname cannot exceed 50 characters
            User can't manually change his nickname to guest nickname
             
            Throws exception if not valid
            </summary>
            <param name="nickname">Nickname to check</param>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.RegisterAndLoginChatUser">
            <summary>
            Registers guest chat user. His nickname is generated automatically. If CMS User is logged in, guest is not registered and this CMS User is logged in.
            </summary>
            <returns>New chat user</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.RegisterAndLoginChatUser(System.Boolean)">
            <summary>
            Registers guest chat user. His nickname is generated automatically. If CMS User is logged in, guest is not registered and this CMS User is logged in.
            </summary>
            <param name="isHidden">If false, this user will be shown in online users on live site. If user was logged in as hidden before and now is logged in as 'not hidden' value will be overridden.</param>
            <returns>New chat user</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.RegisterAndLoginChatUser(System.String)">
            <summary>
            If CMS User is currently logged in, it logs him into chat. Parameter <paramref name="nickname"/> is ignored in that case.
             
            If CMS User is not logged in, user is registered as anonymous chat user with nickname set to parameter <paramref name="nickname"/>.
             
            Does nothing if chat user is currently logged in.
            </summary>
            <param name="nickname">If user is not logged in, he will be registered as anonymous user with this nickname.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.RegisterAndLoginChatUser(System.String,System.Boolean)">
            <summary>
            If CMS User is currently logged in, it logs him into chat. Parameter <paramref name="nickname"/> is ignored in that case.
             
            If CMS User is not logged in, user is registered as anonymous chat user with nickname set to parameter <paramref name="nickname"/>.
             
            Does nothing if chat user is currently logged in.
            </summary>
            <param name="nickname">If user is not logged in, he will be registered as anonymous user with this nickname.</param>
            <param name="isHidden">If false, this user will be shown in online users on live site. If user was logged in as hidden before and now is logged in as 'not hidden' value will be overridden.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.RegisterAnonymousChatUser(System.String)">
            <summary>
            Registers anonymous chat user with specified nickname.
            </summary>
            <param name="nickname">Nickname of chat user</param>
            <returns>New chat user</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.VerifyChatUserHasJoinRoomRights(System.Int32)">
            <summary>
            Verifies that currently logged in chat user has join rights for a room.
             
            Throws exception with AccessDenied (or Kicked) type and message set to the cause of the denial in case of failure and does nothing in case of success.
             
            Join rights:
             
             - user can't be kicked
             - if room is public, user always has Join rights
             - if he is admin, he also has join rights
             - supporters always have Join rights in support rooms
            </summary>
            <param name="roomID">Rights for this room will be checked</param>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.CheckAdminRoomRights(System.Int32)">
            <summary>
            Check if current user has admin rights to room.
             
            User have admin rights if one of the following conditions is valid:
             - he is global admin
             - he has permission ChatPermissionEnum.ManageRooms
             - he is creator of this room
             - he is associated as admin to this room in table ChatRoomAdmin
             - room is support (ChatRoomIsSupport = true) and user has permission ChatPermissionEnum.EnterSupport
            </summary>
            <param name="roomID">Checks rights for this room</param>
            <returns>True if current user has admin rights to the specified room</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.CheckAdminRoomRights(System.Int32,CMS.Chat.ChatUserInfo)">
            <summary>
            Check if user has admin rights to room.
             
            User have admin rights if one of the following conditions is valid:
             - he is global admin
             - he has permission ChatPermissionEnum.ManageRooms
             - he is creator of this room
             - he is associated as admin to this room in table ChatRoomAdmin
             - room is support (ChatRoomIsSupport = true) and user has permission ChatPermissionEnum.EnterSupport
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUser">Chat user ID</param>
            <returns>True if current user has admin rights to the specified room</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.CheckJoinRoomRights(System.Int32)">
            <summary>
            Checks if current chat user has Join rights to the specified room.
             
             - user can't be kicked
             - if room is public, user always has Join rights
             - if he is admin, he also has join rights
             - supporters always have Join rights in support rooms
            </summary>
            <param name="roomID">Rights for this room will be checked</param>
            <returns>True if current chat user has join permissions to specified room (join permissions means, that he can enter it, etc.).</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.HasChatUserPermission(CMS.Chat.ChatUserInfo,CMS.Chat.ChatPermissionEnum)">
            <summary>
            Checks if chat user has permission.
            </summary>
            <param name="chatUser">Chat user to check</param>
            <param name="permission">Permission to check</param>
            <returns>True if user has permissions; otherwise false</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.ChangeChatUserNickname(CMS.Chat.ChatUserInfo,System.String)">
            <summary>
            Changes nickname of passed chatUser.
            </summary>
            <param name="chatUser">Chat user whose nickname will be changed</param>
            <param name="newNickname">New nickname</param>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.GetChatUserFromCMSUser">
            <summary>
            Gets chat user assigned to CURRENT CMSUser. If chat user does not exist, it is created with nickname set to FullName of CMSUser.
            </summary>
            <returns>Chat user</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.GetChatUserFromCMSUser(CMS.Membership.UserInfo)">
            <summary>
            Gets chat user assigned to passed CMSUser. If chat user does not exist, it is created with nickname set to FullName of CMSUser.
            </summary>
            <param name="user">CMS User</param>
            <returns>Chat user</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserHelper.GuestifyChatUsers(System.Int32,System.String)">
            <summary>
            Changes name of all chat users with nickname <paramref name="nicknameToGuestify"/> to 'guestprefix' (from settings) and his old nickname.
            </summary>
            <param name="changedByChatUserId">Chat user with this ID initiated this operation (needed to insert notification)</param>
            <param name="nicknameToGuestify">Anonymous users with this nickname will be guestified.</param>
        </member>
        <member name="T:CMS.Chat.ChatUserInfo">
            <summary>
            ChatUserInfo data container class.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatUserInfo.OBJECT_TYPE">
            <summary>
            Object type
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatUserInfo.TYPEINFO">
            <summary>
            Type information.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserInfo.ChatUserUserID">
            <summary>
            Gets or sets Chat User ID - Foreign key. Null if user is anonymous (does not have any CMS User assigned).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserInfo.ChatUserNickname">
            <summary>
            Gets or sets User's Nickname.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserInfo.ChatUserID">
            <summary>
            Gets or sets Chat user ID - Primary key.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserInfo.IsAnonymous">
            <summary>
            Checks if this chat user is anonymous (he is anonymous if column ChatUserUserID is null).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserInfo.ChatUserLastModification">
            <summary>
            Gets or sets the time of last modification made to this user.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.DeleteObject">
            <summary>
            Deletes the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.SetObject">
            <summary>
            Updates the object using appropriate provider.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.#ctor">
            <summary>
            Constructor - Creates an empty ChatUserInfo object.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.#ctor(System.Data.DataRow)">
            <summary>
            Constructor - Creates a new ChatUserInfo object from the given DataRow.
            </summary>
            <param name="dr">DataRow with the object data.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.EnsureUniqueNickname">
            <summary>
            Ensures that nickname of this user is unique among non-anonymous users.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.GetUniqueNameWhereCondition(System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            Constructs base where condition for checking column value uniqueness.
             
            If DisplayName column is being checked, it modifies where condition, so only non-anonymous users are checked.
            </summary>
            <param name="columnName">Name of the column in which the uniqueness should be preserved (CodeNameColumn/DisplayNameColumn)</param>
            <param name="searchName">Name which should be saved in the column (evenutally with suffix)</param>
            <param name="currentObjectId">ID of the current object (this object will be excluded from the search for duplicate names)</param>
            <param name="exactMatch">If true, the names must match exactly</param>
            <returns>Where condition used to check for unique name</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserInfo.CheckPermissionsInternal(CMS.DataEngine.PermissionsEnum,System.String,CMS.Base.IUserInfo,System.Boolean)">
            <summary>
            Custom permissions check. Chat user can be read with Read or GlobalRead permission
            and modified with Modify or GlobalModify permission.
            </summary>
            <param name="permission">Permission to perform this operation will be checked</param>
            <param name="siteName">Permissions on this site will be checked</param>
            <param name="userInfo">Permissions of this user will be checked</param>
            <param name="exceptionOnFailure">If true, PermissionCheckException is thrown whenever a permission check fails</param>
            <returns>True if user is allowed to perform specified operation on the this object; otherwise false</returns>
        </member>
        <member name="T:CMS.Chat.ChatUserInfoProvider">
            <summary>
            Class providing ChatUserInfo management.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.GetChatUsers">
            <summary>
            Returns the query for all chat users.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.GetChatUserInfo(System.Int32)">
            <summary>
            Returns chat user with specified ID.
            </summary>
            <param name="userId">Chat user ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.GetChatUserInfo(System.String)">
            <summary>
            Returns chat user with specified name.
            </summary>
            <param name="userName">Chat user name.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.SetChatUserInfo(CMS.Chat.ChatUserInfo)">
            <summary>
            Sets (updates or inserts) specified chat user.
            </summary>
            <param name="userObj">Chat user to be set.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.DeleteChatUserInfo(CMS.Chat.ChatUserInfo)">
            <summary>
            Deletes specified chat user.
            </summary>
            <param name="userObj">Chat user to be deleted.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.DeleteChatUserInfo(System.Int32)">
            <summary>
            Deletes chat user with specified ID.
            </summary>
            <param name="userId">Chat user ID.</param>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.GetChatUserByUserID(System.Int32)">
            <summary>
            Gets chat user by CMS User ID. Returns NULL if user was not found.
            </summary>
            <param name="userID">CMS user ID</param>
            <returns>ChatUserInfo</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.GetCountOfChatUsers(System.String,System.Boolean,System.Nullable{System.Int32})">
            <summary>
            Checks number of nickname usages. This method compares incasesensitive.
            </summary>
            <param name="nickname">Nickname to find</param>
            <param name="includeAnonyms">If set true, count of non-anonymous and anonymous users will be returned. If false, only non-anonymous user nicknames will be counted</param>
            <param name="excludeChatUserID">User with this ID won't be counted</param>
            <returns>Count</returns>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.GetAnonymousChatUsersByNickname(System.String)">
            <summary>
            Returns anonymous chat users with the specified nickname.
            </summary>
            <param name="nickname">Nickname of the user</param>
            <rereturns>Anonymous users with specified nickname.</rereturns>
        </member>
        <member name="M:CMS.Chat.ChatUserInfoProvider.SetInfo(CMS.Chat.ChatUserInfo)">
            <summary>
            Inserts or Updates the object to the database.
            </summary>
            <param name="info">Object to insert / update</param>
        </member>
        <member name="T:CMS.Chat.ChatSupportService">
            <summary>
            Implementation of chat support service.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.SupportPing(System.Nullable{System.Int64})">
            <summary>
            Checks for new rooms needing support.
             
            Keeps alive (sets LastChecking to now) user on support and classic chat.
            </summary>
            <param name="lastChange">Time of last change which has this client. Only new rooms will be send. If null, all support rooms with pending messages will be send.</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.EnterSupport">
            <summary>
            Joins current CMS user to classic chat as hidden and also sets him as online on support chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.LeaveSupport">
            <summary>
            Leaves support chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.SupportTakeRoom(System.Int32)">
            <summary>
            Takes support room. After this call, new messages in this room won't be send to other users - only to the current one.
            </summary>
            <param name="roomID">Room ID to take</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.SupportLeaveRoom(System.Int32)">
            <summary>
            Leaves room. After this call, new messages in this room will be send to all online supporters.
            </summary>
            <param name="roomID">Room ID to leave</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.InitiateChatByUserID(System.Int32)">
            <summary>
            Initiates chat with user identified by his UserID.
            </summary>
            <param name="userID">UserID to start chat with</param>
        </member>
        <member name="M:CMS.Chat.ChatSupportService.InitiateChatByContactID(System.Int32)">
            <summary>
            Initiates chat with user identified by his ContactID.
            </summary>
            <param name="contactID">ContactID to start chat with</param>
        </member>
        <member name="T:CMS.Chat.ChatGeneralResponse">
            <summary>
            Chat general response without payload with data.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGeneralResponse.StatusCode">
            <summary>
            Status code.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatGeneralResponse.StatusMessage">
            <summary>
            Message.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatGeneralResponse`1">
            <summary>
            Chat general response with payload.
            </summary>
            <typeparam name="TData">Type of payload.</typeparam>
        </member>
        <member name="P:CMS.Chat.ChatGeneralResponse`1.Data">
            <summary>
            Payload.
            </summary>
        </member>
        <member name="T:CMS.Chat.OnlineUsersData">
            <summary>
            Data about online users.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUsersData.LastChange">
            <summary>
            Last change of online users.
            </summary>
        </member>
        <member name="P:CMS.Chat.OnlineUsersData.List">
            <summary>
            Online users.
            </summary>
        </member>
        <member name="T:CMS.Chat.PingResultData">
            <summary>
            Response of Ping.
            </summary>
        </member>
        <member name="P:CMS.Chat.PingResultData.CurrentChatUserState">
            <summary>
            ChatUserState of current user.
            </summary>
        </member>
        <member name="P:CMS.Chat.PingResultData.Notifications">
            <summary>
            Notifications.
            </summary>
        </member>
        <member name="P:CMS.Chat.PingResultData.OnlineUsers">
            <summary>
            Online users.
            </summary>
        </member>
        <member name="P:CMS.Chat.PingResultData.Rooms">
            <summary>
            Rooms.
            </summary>
        </member>
        <member name="P:CMS.Chat.PingResultData.UsersInRooms">
            <summary>
            Counts of users in rooms.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatUserPermissionData">
            <summary>
            Chat user permissions data.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserPermissionData.ManageRooms">
            <summary>
            Permission to manage rooms (create new room, kick users, etc).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserPermissionData.CreateRoomsFromLiveSite">
            <summary>
            Permission to create rooms from live site.
            </summary>
        </member>
        <member name="T:CMS.Chat.IChatSupportService">
            <summary>
            Service contract for ChatSupportService.
            </summary>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.SupportPing(System.Nullable{System.Int64})">
            <summary>
            Checks for new rooms needing support.
             
            Keeps alive (sets LastChecking to now) user on support and classic chat.
            </summary>
            <param name="lastChange">Time of last change which has this client. Only new rooms will be send. If null, all support rooms with pending messages will be send.</param>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.EnterSupport">
            <summary>
            Joins current CMS user to classic chat as hidden and also sets him as online on support chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.LeaveSupport">
            <summary>
            Leaves support chat.
            </summary>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.SupportTakeRoom(System.Int32)">
            <summary>
            Takes support room. After this call, new messages in this room won't be send to other users - only to the current one.
            </summary>
            <param name="roomID">Room ID to take</param>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.SupportLeaveRoom(System.Int32)">
            <summary>
            Leaves room. After this call, new messages in this room will be send to all online supporters.
            </summary>
            <param name="roomID">Room ID to leave</param>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.InitiateChatByUserID(System.Int32)">
            <summary>
            Initiates chat with user identified by his UserID.
            </summary>
            <param name="userID">UserID to start chat with</param>
        </member>
        <member name="M:CMS.Chat.IChatSupportService.InitiateChatByContactID(System.Int32)">
            <summary>
            Initiates chat with user identified by his ContactID.
            </summary>
            <param name="contactID">ContactID to start chat with</param>
        </member>
        <member name="T:CMS.Chat.MessageData">
            <summary>
            Chat message.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.MessageID">
            <summary>
            MessageID.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.Nickname">
            <summary>
            Nickname of a sender.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.Recipient">
            <summary>
            Nickname of a recipient.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.PostedTime">
            <summary>
            Posted datetime.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.MessageText">
            <summary>
            Text of a message. It is autmatically resolved if it is system message.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.LastModified">
            <summary>
            Date time of last modification of this message.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.SystemMessageType">
            <summary>
            Type of this message.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.IsRejected">
            <summary>
            True if message is rejected.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.AuthorID">
            <summary>
            Author's ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.RecipientID">
            <summary>
            Recepient of this message. Null if it is a system message.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessageData.ChangeTime">
            <summary>
            Change time of this object.
            </summary>
        </member>
        <member name="M:CMS.Chat.MessageData.ToString">
            <summary>
            Returns string representation of this message
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatRoomData">
            <summary>
            Info about chat room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.ChatRoomID">
            <summary>
            Chat room ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.DisplayName">
            <summary>
            Display name of a room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.IsPrivate">
            <summary>
            Is private.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.HasPassword">
            <summary>
            Has password.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.Description">
            <summary>
            Description of the chat room.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.AllowAnonym">
            <summary>
            Allow anonym.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.CanManage">
            <summary>
            If user can manage this room (edit, delete).
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomData.IsRemoved">
            <summary>
            True if this room should be removed from list on client.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatRoomsData">
            <summary>
            Data about chat rooms.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomsData.LastChange">
            <summary>
            Last change.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatRoomsData.List">
            <summary>
            Rooms.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatUserStateData">
            <summary>
            State of chat user.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserStateData.IsLoggedIn">
            <summary>
            Is logged in.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserStateData.ChatUserID">
            <summary>
            Chat user ID.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserStateData.Nickname">
            <summary>
            Nickname.
            </summary>
        </member>
        <member name="P:CMS.Chat.ChatUserStateData.IsAnonymous">
            <summary>
            Is anonymous - true if this chat user is assigned to CMS User (true if ChatUserUserID is null).
            </summary>
        </member>
        <member name="T:CMS.Chat.RoomOnlineUserData">
            <summary>
            Data about one online user in a room.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomOnlineUserData.#ctor(CMS.Chat.ChatUserInfo,System.Boolean,CMS.Chat.AdminLevelEnum,System.DateTime,System.Boolean)">
            <summary>
            Constructor.
            </summary>
            <param name="chatUser">Chat user</param>
            <param name="isOnline">Is online</param>
            <param name="adminLevel">Admin level</param>
            <param name="lastChange">Last modification</param>
            <param name="isRemoved">True if this user should be removed from list on client</param>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.ChatUser">
            <summary>
            Chat user.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.Nickname">
            <summary>
            Gets nickname of this user.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.ChatUserID">
            <summary>
            Gets ID of this user.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.IsAnonymous">
            <summary>
            Gets IsAnonymous state of this user. True if user is anonymous (has not cms user associated with it).
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.IsOnline">
            <summary>
            True if user is online.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.AdminLevel">
            <summary>
            Is admin in 'this' room.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.IsChatAdmin">
            <summary>
            Is global chat admin (has ManageRooms).
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.IsRemoved">
            <summary>
            True if this user should be removed from list on client
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.CMS#Chat#IChatCacheableWithCurrentState{System#Int32}#ChangeType">
            <summary>
            Change type.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.PK">
            <summary>
            Primary key
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUserData.ChangeTime">
            <summary>
            Last modification of this user.
            </summary>
        </member>
        <member name="M:CMS.Chat.RoomOnlineUserData.ToString">
            <summary>
            Returns string representation.
            </summary>
            <returns>String representation</returns>
        </member>
        <member name="T:CMS.Chat.RoomOnlineUsersData">
            <summary>
            Info about online users in a room.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUsersData.LastChange">
            <summary>
            Last change of room online users.
            </summary>
        </member>
        <member name="P:CMS.Chat.RoomOnlineUsersData.List">
            <summary>
            Online users in a room.
            </summary>
        </member>
        <member name="T:CMS.Chat.MessagesData">
            <summary>
            Data about messages in a room.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessagesData.LastChange">
            <summary>
            Last change of messages.
            </summary>
        </member>
        <member name="P:CMS.Chat.MessagesData.List">
            <summary>
            Messages.
            </summary>
        </member>
        <member name="T:CMS.Chat.PingRoomResponseData">
            <summary>
            State of a room (response to PingRoom).
            </summary>
        </member>
        <member name="P:CMS.Chat.PingRoomResponseData.RoomID">
            <summary>
            Room id.
            </summary>
        </member>
        <member name="P:CMS.Chat.PingRoomResponseData.IsCurrentUserAdmin">
            <summary>
            True if current user is admin
            </summary>
        </member>
        <member name="P:CMS.Chat.PingRoomResponseData.Messages">
            <summary>
            New messages
            </summary>
        </member>
        <member name="P:CMS.Chat.PingRoomResponseData.Users">
            <summary>
            Changed online users
            </summary>
        </member>
        <member name="T:CMS.Chat.SupportRoomData">
            <summary>
            Data about support room.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomData.ChatRoomID">
            <summary>
            Room id.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomData.DisplayName">
            <summary>
            Room display name.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomData.UnreadMessagesCount">
            <summary>
            Count of new messages.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomData.IsRemoved">
            <summary>
            If true, this room was taken by somebody else and should be removed from the list on client.
             
            There won't be any further updates about this room.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportRoomData.IsTaken">
            <summary>
            If true, this room is taken by current user, and can be kept in the list on client.
             
            New messages in this room will be send to client.
            </summary>
        </member>
        <member name="T:CMS.Chat.SupportPingResponseData">
            <summary>
            Response of support Ping.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportPingResponseData.OnlineSupportChatUserID">
            <summary>
            ID of current chat user logged in to support. Null if support is offline.
            </summary>
        </member>
        <member name="P:CMS.Chat.SupportPingResponseData.Rooms">
            <summary>
            Changed rooms - is null if nothing has changed.
            </summary>
        </member>
        <member name="T:CMS.Chat.IChatService">
            <summary>
            Service contract for chat service.
            </summary>
        </member>
        <member name="M:CMS.Chat.IChatService.PingRoom(System.Int32,System.Nullable{System.Int64},System.Nullable{System.Int64},System.Nullable{System.Int32})">
            <summary>
            <para>
            Keeping alive user in a room. User has to call this method every few seconds to let server know that he is still online.
            </para>
            <para>
            At the same time a new online users in a room and a new messages in a room are checked. Client sends the last time he made an update
            of online users (<paramref name="roomUsersLastChange"/>) and messages (<paramref name="roomMessagesLastChange"/>). If something new
            has happened since that time, the changes are sent back.
            </para>
            </summary>
            <param name="roomID">ID of a chat room</param>
            <param name="roomUsersLastChange">Last update of members on this client (client gets this number in PingRoom().Users.LastChange) - if this param is null, client does not need online users. If it is 0, it is the first request and all users are returned.</param>
            <param name="roomMessagesLastChange">Last update of messages on this client (client gets this number in PingRoom().Messages.LastChange) - if this param is null, client does not need online users. If it is 0, it is the first request and all users are returned.</param>
            <param name="maxMessagesCount">Maximum number of messages returned</param>
            <returns>PingRoomsResultData</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.Ping(System.Nullable{System.Int64},System.Nullable{System.Int64},System.Nullable{System.Int64},System.Nullable{System.Int64})">
            <summary>
            Keeps user online in global list of chat online users (this method needs to be called periodically).
             
            Checks if there were any changes in:
            - rooms (new room added, changed name, etc.) since <paramref name="lastRoomsChange"/>.
            - counts of users in rooms since <paramref name="lastUsersInRoomsChange"/>.
            - global online users since <paramref name="lastOnlineUsersChange"/>.
            - notifications for online user since <paramref name="lastNotificationChange"/>.
             
            If any of this objects has changed, changes are send back to client.
             
            If any of params is null, its objects are not checked. If param is 0, it is the first request and all objects are returned.
            </summary>
            <param name="lastRoomsChange">Time of last check for rooms list made by this client.</param>
            <param name="lastUsersInRoomsChange">Time of last check for counts of users in rooms made by this client.</param>
            <param name="lastOnlineUsersChange">Time of last check for global online users made by this client.</param>
            <param name="lastNotificationChange">Time of last check for notifications made by this client.</param>
            <returns>PingRoomsResultData</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.JoinRoom(System.Int32,System.String)">
            <summary>
            Joins a room.
             
            Chat user has to be logged in before this operation.
            </summary>
            <param name="roomID">ID of a room.</param>
            <param name="password">Entrance password (if required).</param>
            <returns>JoinRoomData</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.LeaveRoom(System.Int32)">
            <summary>
            Leaves chat room.
            </summary>
            <param name="roomID">ID of a room.</param>
            <returns>ChatGeneralReponse</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.PostMessage(System.Int32,System.String)">
            <summary>
            Posts a new message to a room.
             
            Chat user has to be logged in and joined this room. Message can not be empty.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="messageText">Message text</param>
            <returns>ChatGeneralReponse</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.PostMessageToUser(System.Int32,System.Int32,System.String)">
            <summary>
            Posts a whisper message to user. This message will be posted to a room, but only sender and receiver of this messages will be able to see it.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="recipientChatUserID">Recepient chat user ID</param>
            <param name="messageText">Message text</param>
            <returns>ChatGeneralReponse</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.Register(System.String)">
            <summary>
            Registers new anonymous chat user. This new user is automatically logged in.
            </summary>
            <param name="nickname">Nickname of a new user</param>
            <returns>ChatUserStateData of the new user.</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.RegisterGuest">
            <summary>
            Registers new guest user (user with auto generated nickname).
            </summary>
            <returns>ChatUserStateData of the new user</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.Logout">
            <summary>
            Logouts chat user from chat (not CMSUser).
             
            Leaves all rooms.
             
            If CMSUser is logged in, this operation won't logout the chat user in reality.
            </summary>
        </member>
        <member name="M:CMS.Chat.IChatService.GetChatUserState">
            <summary>
            Gets info about currently logged in chat user.
            </summary>
            <returns>ChatUserStateData (id, nickname, etc.)</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.CreateOneToOneChatRoom(System.Int32)">
            <summary>
            Creates new one-to-one chat room which will be accessible by current user and one more user (invited one).
             
            Display name of new room will be: {nickname_current} - {nickname_invited}
            Code name will be: adhoc_{id_lower}-{id_upper} ({id_lower} is the lower id of the two chat users, {id_upper} is the upper one);
             
            A current user have to manually join this room after creating it.
             
            If those two users have chatted before, the previously created room is returned. Code name is used to find previously created chat room.
            </summary>
            <param name="invitedChatUserID">ID of invited chat user</param>
            <returns>Newly created chat room (or the old one if exists)</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.CreateSupportChatRoom">
            <summary>
            Creates new support room. Support room is private room which can be accessed only by creator
            and support. When creator writes to this room, support is notified.
            </summary>
            <returns>ChatRoomData of new room</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.CreateSupportChatRoomManual(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Creates new support room. Support room is private room which can be accessed only by creator
            and support. When creator writes to this room, support is notified.
             
            This room does not have default greeting message, but messages passed as parameter.
            </summary>
            <returns>ChatRoomData of new room</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.CreateChatRoom(System.String,System.Boolean,System.String,System.Boolean,System.String)">
            <summary>
            Creates new chat room.
             
            Current user have to join it manually after creating it.
             
            Code name of this room will be: chatroom_{current_user_id}_{new_guid}
            </summary>
            <param name="displayName">Display name of a new room (cannot be empty)</param>
            <param name="isPrivate">Indicates if this room will be private</param>
            <param name="password">Optional password</param>
            <param name="allowAnonym">True if anonymous users can join this room (anonym is chat user without CMS.User assigned to it)</param>
            <param name="description">Description of the chat room</param>
            <returns>New chat room</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.KickUser(System.Int32,System.Int32)">
            <summary>
            Kicks a chat user from a room. Currently logged user must be an admin to kick another user.
            </summary>
            <param name="roomID">User will be kicked from this room.</param>
            <param name="chatUserToKickID">ID of user to kick</param>
            <returns>ChatGeneralResponse (code OK if everything went fine)</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.ChangeMyNickname(System.String)">
            <summary>
            Changes nickname of currently logged in user.
            </summary>
            <param name="newNickname">New nickname of current user.</param>
            <returns>Chat user state</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.GetSupportEngineersOnlineCount">
            <summary>
            Gets count of currently logged in support engineers.
            </summary>
            <returns>Count of online support engineers</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.InviteToRoom(System.Int32,System.Int32)">
            <summary>
            Invites user to the chat room. Invitation is inserted into the second user's notifications. Second user can enter the room after accepting the invitation.
             
            Current user has to have admin rights to the room to invite.
            </summary>
            <param name="roomID">Room id</param>
            <param name="chatUserID">Chat user id to invite</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.SearchOnlineUsers(System.String,System.Int32,System.Nullable{System.Int32})">
            <summary>
            Search users who are online globally on a chat (they are performing Ping()) and meet condition (their nickname contains <paramref name="nickname"/>.
            </summary>
            <param name="nickname">Searches for users with this nickname</param>
            <param name="topN">Returns this number of found users</param>
            <param name="invitedToRoomID">If not null, only users who can be invited to this room will be returned</param>
            <returns>Online users</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.AcceptInvitation(System.Int32)">
            <summary>
            Accepts invitation:
             - closes specified notification
             - inserts user into room (joins)
             - sends notification to sender about accepting invite
            </summary>
            <param name="notificationID">Notification (invitation) ID</param>
            <returns>Room which is led to by the accepted invitation (so client can show it immediatelly in a room list)</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.DeclineInvitation(System.Int32)">
            <summary>
            Declines invitation:
             - closes specified notification
             - sends notification to sender about declining invite
            </summary>
            <param name="notificationID">Notification (invitation) ID</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.CloseNotification(System.Int32)">
            <summary>
            Closes (markes as read) specified notification. This can be used to close generic notifications like InvitationDeclined or InvitationAccepted.
            </summary>
            <param name="notificationID">Notification ID</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.CloseAllNotifications(System.Int64)">
            <summary>
            Closes (markes as read) all notifications which belongs to online users and which were sent until <paramref name="untilWhen"/>.
            </summary>
            <param name="untilWhen">Notifications received before this time (Ticks) will be closed. This time can be obtained in Ping().Notifications.LastChange</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.GetPermissions">
            <summary>
            Gets permissions of currently logged in user.
            </summary>
            <returns>Permissions</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.RejectMessage(System.Int32)">
            <summary>
            Rejects the message.
             
            Checks for permissions for a specified room (roomID can be get from messageID) and if current chat user has
            admin rights, it rejects the message.
            </summary>
            <param name="messageID">Message ID</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.LeaveRoomPermanently(System.Int32)">
            <summary>
            Permanently leaves current user from the private chat room (Join/Admin rights are removed from this room).
             
            If room is not private, it acts as normale LeaveRoom().
            </summary>
            <param name="roomID">Room id</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.KickUserPermanently(System.Int32,System.Int32)">
            <summary>
            Kickes user permanently from a private room. If this room is public, it acts as a normal kick.
             
            Kicked user won't be able to enter room again, unless he will be invited one more time.
            </summary>
            <param name="roomID">Room id</param>
            <param name="chatUserToKickID">ID of chat user which should be kicked</param>
            <returns>General response</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.AddAdmin(System.Int32,System.Int32)">
            <summary>
            Adds admin to the room. Only admin can do it.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserToAddID">Chat user who will become admin</param>
            <returns>ChatGeneralResponse</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.DeleteAdmin(System.Int32,System.Int32)">
            <summary>
            Deletes admin from the room. Only admin can do it.
            </summary>
            <param name="roomID">Room ID</param>
            <param name="chatUserToDeleteID">Chat user who will loose room admin permissions</param>
            <returns>ChatGeneralResponse</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.ChangeChatRoom(System.Int32,System.String,System.Boolean,System.Boolean,System.String,System.Boolean,System.String)">
            <summary>
            Changes existing chat room.
            </summary>
            <param name="roomID">Chat room to change</param>
            <param name="displayName">Display name of a new room (cannot be empty)</param>
            <param name="isPrivate">Indicates if this room will be private</param>
            <param name="hasPassword">Indicates if room has password</param>
            <param name="password">Optional password</param>
            <param name="allowAnonym">True if anonymous users can join this room (anonym is chat user without CMS.User assigned to it)</param>
            <param name="description">Description of the chat room</param>
            <returns>Changed chat room</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.DeleteChatRoom(System.Int32)">
            <summary>
            Disables room. User has to be either Global admin, has ManageRooms permission or be creator/admin of this room.
            </summary>
            <param name="roomID">Chat room to delete</param>
            <returns>GeneralResponse</returns>
        </member>
        <member name="M:CMS.Chat.IChatService.PingInitiate(System.Nullable{System.Int64})">
            <summary>
            Checks if there is new initiated chat request pending for this user and returns it. Returns null if there is nothing.
             
            Requests are searched by ContactID and UserID.
            </summary>
            <param name="lastChange">Last state on the client.</param>
        </member>
        <member name="M:CMS.Chat.IChatService.AcceptChatRequest(System.Int32)">
            <summary>
            Accepts initiated chat request.
            </summary>
            <param name="chatRoomID">Room used in the request</param>
        </member>
        <member name="M:CMS.Chat.IChatService.DeclineChatRequest(System.Int32)">
            <summary>
            Declines initiated chat request.
            </summary>
            <param name="chatRoomID">Room used in the request</param>
        </member>
        <member name="T:CMS.Chat.ChatMessageTypeStringValueUsageEnum">
            <summary>
            Usage of string value attribute in ChatMessageTypeEnum.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeStringValueUsageEnum.LiveSiteMessage">
            <summary>
            This string value is resolved by macro before sending to live site.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeStringValueUsageEnum.CMSDeskDescription">
            <summary>
            This string is used to display appropriate label for the message type at CMS Desk.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatMessageTypeEnum">
            <summary>
            Types of chat system messages.
             
            IsResourceString is left to false in StringValueType.LiveSiteMessage, because it is resolved manually later.
             
            [SystemMessage] attribute must be added to all system messages to distinguish them from non-system (posted by user) messages.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.ClassicMessage">
            <summary>
            'Classic' message.
             
            Non-system message doesn't have a default string representation.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.Whisper">
            <summary>
            'Whisper' message.
             
            Non-system message doesn't have a default string representation.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.LeaveRoom">
            <summary>
            Leave room.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.EnterRoom">
            <summary>
            Enter room.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.ChangeNickname">
            <summary>
            Nickname changed.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.Kicked">
            <summary>
            Kicked.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.UserInvited">
            <summary>
            Invitation.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.SupportGreeting">
            <summary>
            Support greeting.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.LeaveRoomPermanently">
            <summary>
            LeaveRoomPermanently.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.KickedPermanently">
            <summary>
            KickedPermanently.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.Announcement">
            <summary>
            Announcement.
            </summary>
        </member>
        <member name="F:CMS.Chat.ChatMessageTypeEnum.ChatRequestDeclined">
            <summary>
            User declined chat request.
            </summary>
        </member>
        <member name="T:CMS.Chat.SystemMessageAttribute">
            <summary>
            This attribute is used to distinguish system messages vs. classic (user submitted) messages.
            </summary>
        </member>
        <member name="T:CMS.Chat.ChatMessageTypeEnumExtensionMethods">
            <summary>
            ChatMessageTypeEnum extension methods.
            </summary>
        </member>
        <member name="M:CMS.Chat.ChatMessageTypeEnumExtensionMethods.IsSystemMessage(CMS.Chat.ChatMessageTypeEnum)">
            <summary>
            Checks if this message type is system (message is system if it has SystemMessageAttribute Attribute).
            </summary>
            <param name="en">ChatMessageTypeEnum</param>
            <returns>True if this message type is system</returns>
        </member>
        <member name="T:CMS.Chat.StringValueAttribute">
            <summary>
            This attribute is used to represent a string value of an enum elements.
             
            There can be only one StringValue attribute on an enum value.
             
            It supports automatic resource string translation (IsResourceString property).
            </summary>
        </member>
        <member name="P:CMS.Chat.StringValueAttribute.StringValue">
            <summary>
            Holds the stringvalue for a value in an enum.
            </summary>
        </member>
        <member name="P:CMS.Chat.StringValueAttribute.IsResourceString">
            <summary>
            If set to true, StringValue is resolved by ResHelper before returning.
            </summary>
        </member>
        <member name="M:CMS.Chat.StringValueAttribute.#ctor(System.String)">
            <summary>
            Constructor used to init a StringValue Attribute
            </summary>
            <param name="value">String value</param>
        </member>
        <member name="M:CMS.Chat.StringValueAttribute.#ctor(System.String,System.Boolean)">
            <summary>
            Constructor used to init a StringValue Attribute
            </summary>
            <param name="value">String value</param>
            <param name="isResourceString">True if string is resource string and should be resolved before returning</param>
        </member>
        <member name="M:CMS.Chat.StringValueAttribute.ToString">
            <summary>
            Gets string representation (the same as StringValue).
            </summary>
            <returns>String representation</returns>
        </member>
        <member name="T:CMS.Chat.KeyStringValueAttribute">
            <summary>
            This attribute is used to represent a string value of an enum elements.
             
            Unlike StringValueAttribute, this attribute can be used multiple times. Which attribute should be used will be specified by key.
             
            Key can't be generic (C# limitation) nor Enum (Attribute params can not be dynamic). Thus it is int.
            </summary>
            <example>
            enum XXX
            {
                [KeyStringValue((int)ChatMessageTypeStringValueUsageEnum.CMSDeskDescription, "chat.system.cmsdesk.leaveroom", IsResourceString = true)]
                [KeyStringValue((int)ChatMessageTypeStringValueUsageEnum.LiveSiteMessage, "chat.system.userhasleftroom")]
                LeaveRoom = 2,
            }
             
            XXX.LeaveRoom.ToStringValue((int)ChatMessageTypeStringValueUsageEnum.CMSDeskDescription);
            </example>
        </member>
        <member name="P:CMS.Chat.KeyStringValueAttribute.Key">
            <summary>
            Gets or sets Key of this attribute. This key is used later to lookup this attribute in method ToStringValue().
            </summary>
        </member>
        <member name="M:CMS.Chat.KeyStringValueAttribute.#ctor(System.Int32,System.String)">
            <summary>
            Constructor.
            </summary>
            <param name="key">Key</param>
            <param name="value">String value</param>
        </member>
        <member name="T:CMS.Chat.EnumExtensionMethods">
            <summary>
            Enum extension methods which works with StringValueAttribute and KeyStringValueAttribute.
            </summary>
        </member>
        <member name="M:CMS.Chat.EnumExtensionMethods.ToStringValue(System.Enum)">
            <summary>
            Gets the string value for a given enum element from the StringValue attribute. If passed
            enum element doesn't contain StringValue attribute, name of the enum element is returned.
            </summary>
            <param name="en">Enum</param>
            <returns>String value of an enum element</returns>
        </member>
        <member name="M:CMS.Chat.EnumExtensionMethods.ToStringValue(System.Enum,System.Int32)">
            <summary>
            Gets the string value of an enum element from the first KeyStringValue with Key equals to <paramref name="key"/>.
            </summary>
            <param name="en">Enum</param>
            <param name="key">Key of KeyStringValue</param>
            <returns>String value of an enum</returns>
        </member>
    </members>
</doc>