public void Register(User user)
 {
     lock (_syncLock)
     {
         RegisterUser(user);
         _users[user.ID] = user;
     }
 }
 public void Unregister(User user)
 {
     lock (_syncLock)
     {
         UnregisterUser(user);
         _users.Remove(user);
     }
 }
        public void Unregister(User user)
        {
            ServiceWrapper.Wrap(() =>
            {
                ExternalNotificationsCenter.Instance.Unregister(user);

            }, string.Format("User: '******'", user));
        }
        public IEnumerable<Notification> GetNotifications(User user)
        {
            return ServiceWrapper.Wrap(() =>
            {
                return GetNotifications(user, TimeSpan.FromMinutes(2));

            }, string.Format("User: '******'", user));
        }
        public IEnumerable<Notification> GetNotifications(User user, TimeSpan timeout)
        {
            var context = ManualNotificationsCenter.Instance.GetNotifications(user);

            if (!context.Wait(timeout, true))
            {
                return new Notification[] { };
            }

            return context.Result;
        }
        public IEnumerable<Notification> GetNotifications(User user, TimeSpan timeout)
        {
            return ServiceWrapper.Wrap(() =>
            {
                var context = LongPollingContext<User, Notification>.Manager.GetResultContext(user);

                if (!context.Wait(timeout, true))
                {
                    return new Notification[] { };
                }

                return context.Result;

            }, string.Format("User: '******'", user));
        }
 protected override void UnregisterUser(User user)
 {
     LongPollingContext<User, Notification>.Manager.RemoveResults(user);
 }
 protected override void RegisterUser(User user)
 {
 }
 protected abstract void RegisterUser(User user);
        private void DispatchNotifications()
        {
            User[] users;
            List<User> notifyUsers;

            lock (_syncLock)
            {
                var count = _users.Count;
                users = new User[count];

                _users.Keys.CopyTo(users, 0);

                notifyUsers = users.Take(_eventsPerInterval).ToList();

                notifyUsers.ForEach(u => { _users.Remove(u); _users[u] = u; });
            }

            System.Console.WriteLine("Dispatching '{0}' notifications", notifyUsers.Count);

            DispatchNotifications(notifyUsers);

            System.Console.WriteLine("'{0}' notifications were dispatched...", notifyUsers.Count);
        }
 protected override void UnregisterUser(User user)
 {
     _contextManager.RemoveResults(user);
 }
 public IResultContext<IEnumerable<Notification>> GetNotifications(User user)
 {
     return _contextManager.GetResultContext(user);
 }
Пример #13
0
 public static string GenerateQueue(User user)
 {
     return string.Format("{0}_{1}", user.Hostname, user.SetIndex);
 }
Пример #14
0
 public static string GenerateCorrelation(User user)
 {
     return user.ID;
 }
 public void Unregister(User user)
 {
     ManualNotificationsCenter.Instance.Unregister(user);
 }
 public IEnumerable<Notification> GetNotifications(User user)
 {
     return GetNotifications(user, TimeSpan.FromMinutes(2));
 }