Beispiel #1
0
        public bool Subscribe(string name, string ID)
        {
            lock (SyncLocker)
            {
                if (_list != null && _list.Count >= 0)
                {
                    var ci = _list.FirstOrDefault(b => b.Name == name);

                    if (ci != null && ci.Members != null)
                    {
                        var cm = new ChannelMemberInfo()
                        {
                            ID     = ID,
                            Joined = DateTimeHelper.Now
                        };

                        if (!ci.Members.Exists(b => b.ID == ID))
                        {
                            ci.Members.Add(cm);

                            return(true);
                        }
                    }
                    else
                    {
                        ci = new ChannelInfo()
                        {
                            Name    = name,
                            Creator = ID,
                            Created = DateTimeHelper.Now
                        };

                        var cm = new ChannelMemberInfo()
                        {
                            ID     = ID,
                            Joined = DateTimeHelper.Now
                        };

                        ci.Members = new List <ChannelMemberInfo>();
                        ci.Members.Add(cm);

                        _list.Add(ci);

                        return(true);
                    }
                }
                return(false);
            }
        }
Beispiel #2
0
        public bool Subscribe(string name, string ID)
        {
            lock (_syncLocker)
            {
                var ci = _cache.Get(name);

                if (ci != null && ci.Members != null)
                {
                    var cm = new ChannelMemberInfo()
                    {
                        ID     = ID,
                        Joined = DateTimeHelper.Now
                    };

                    if (!ci.Members.Exists(b => b.ID == ID))
                    {
                        ci.Members.Add(cm);
                    }
                }
                else
                {
                    ci = new ChannelInfo()
                    {
                        Name    = name,
                        Creator = ID,
                        Created = DateTimeHelper.Now
                    };

                    var cm = new ChannelMemberInfo()
                    {
                        ID     = ID,
                        Joined = DateTimeHelper.Now
                    };

                    ci.Members = new List <ChannelMemberInfo>();
                    ci.Members.Add(cm);

                    _cache.Set(name, ci, TimeSpan.FromDays(1));
                }
                return(true);
            }
        }