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); } }
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); } }