public JsonResult GetPartialModel(ChannelInfoModel channelInfo) { var service = ServicesFactory.GetTweetsService(); var model = service.GetPartialTweetsModel(channelInfo.ChannelId, channelInfo.ChannelName); return(Json(new { status = "ok", model = model })); }
private List <ChannelDisplayUser> GetChannelDisplayUsers(IIrcChannel channel, ChannelInfoModel model) { var displayUsers = new List <ChannelDisplayUser>(); var globalUsers = this.botUserConfiguration.Items.ToList(); var localUsers = channel.Users.ToList(); var channelMembers = model.ChannelMembers.ToList(); foreach (var member in channelMembers) { var found = false; foreach (var user in channel.Users.ToList()) { if (user.Mask.Matches(member.User).GetValueOrDefault()) { var u = new ChannelDisplayUser(); u.Member = member; u.LocalUser = user; u.GlobalUser = this.botUserConfiguration.Items.FirstOrDefault(x => Equals(x.Mask, user.Mask)); u.Construction = "ML"; localUsers.Remove(user); globalUsers.RemoveAll(x => Equals(x.Mask, user.Mask)); found = true; displayUsers.Add(u); break; } } if (!found) { foreach (var user in this.botUserConfiguration.Items.ToList()) { if (user.Mask.Matches(member.User).GetValueOrDefault()) { var u = new ChannelDisplayUser(); u.Member = member; u.GlobalUser = user; u.Construction = "MG"; globalUsers.Remove(user); found = true; displayUsers.Add(u); break; } } } if (!found) { var u = new ChannelDisplayUser(); u.Member = member; u.Construction = "M-"; displayUsers.Add(u); } } foreach (var user in localUsers) { var u = new ChannelDisplayUser(); u.LocalUser = user; u.GlobalUser = this.botUserConfiguration.Items.FirstOrDefault(x => Equals(x.Mask, user.Mask)); u.Construction = "-L"; globalUsers.Remove(u.GlobalUser); displayUsers.Add(u); } // Some global users should be listed here since they have the ability to change bot config on a local basis foreach (var user in globalUsers.Where(x => !string.IsNullOrWhiteSpace(x.GlobalFlags)) .Where( x => x.GlobalFlags.Contains(Flag.Owner) || x.GlobalFlags.Contains(AccessFlags.GlobalAdmin) || x.GlobalFlags.Contains(AccessFlags.LocalAdmin) || x.GlobalFlags.Contains(AccessFlags.Configuration))) { var u = new ChannelDisplayUser(); u.GlobalUser = this.botUserConfiguration.Items.FirstOrDefault(x => Equals(x.Mask, user.Mask)); u.Construction = "-G"; displayUsers.Add(u); } return(displayUsers); }