WhiteListManager

using PRTelegramBot.Interfaces;
using PRTelegramBot.Models.Enums;

namespace PRTelegramBot.Models
{
    /// <summary>
    /// Менеджер управления белым списком.
    /// </summary>
    public class WhiteListManager : IWhiteListManager
    {
        #region Поля и свойства

        /// <summary>
        /// Пользователи.
        /// </summary>
        private List<long> users = new List<long>();

        #endregion

        #region IUserManager

        public long Count => users.Count;

        private WhiteListSettings settings = WhiteListSettings.OnPreUpdate;

        public WhiteListSettings Settings
        {
            get
            {
                return settings;
            }
        }

        public async Task<bool> AddUser(long userId)
        {
            users.Add(userId);
            return true;
        }

        public async Task<bool> AddUsers(params long[] userIds)
        {
            users.AddRange(userIds);
            return true;
        }

        public async Task<List<long>> GetUsersIds()
        {
            return users.ToList();
        }

        public async Task<bool> HasUser(long userId)
        {
            return users.Contains(userId);
        }

        public async Task<bool> Reload()
        {
            return true;
        }

        public async Task<bool> RemoveUser(long userId)
        {
            return users.Remove(userId);
        }

        public void SetSettings(WhiteListSettings settings)
        {
            this.settings = settings;
        }

        #endregion
    }
}

Last updated