GetForumStatus() public method

public GetForumStatus ( int portalId, int moduleId, int userId, string forumIds ) : IEnumerable
portalId int
moduleId int
userId int
forumIds string
return IEnumerable
        public XmlRpcStruct GetForumStatus(params object[] parameters)
        {
            var aftContext = ActiveForumsTapatalkModuleContext.Create(Context);

            if (aftContext == null || aftContext.Module == null)
                throw new XmlRpcFaultException(100, "Invalid Context");

            Context.Response.AddHeader("Mobiquo_is_login", aftContext.UserId > 0 ? "true" : "false");

            var portalId = aftContext.Module.PortalID;
            var forumModuleId = aftContext.ModuleSettings.ForumModuleId;
            var userId = aftContext.UserId;

            // Build a list of forums the user has access to
            var fc = new AFTForumController();
            var forumIds = fc.GetForumsForUser(aftContext.ForumUser.UserRoles, portalId, forumModuleId, "CanRead") + string.Empty;

            // Clean up our forum id list before we split it up.
            forumIds = Regex.Replace(forumIds, @"\;+$", string.Empty);

            var forumIdList = !string.IsNullOrWhiteSpace(forumIds)
                                  ? forumIds.Split(';').Select(int.Parse).ToList()
                                  : new List<int>();

            // Intersect requested forums with avialable forums
            var requestedForumIds = (parameters != null && parameters.Any())
                                        ? ((object[])parameters[0]).Select(Convert.ToInt32).Where(forumIdList.Contains)
                                        : new int[] { };

            // Convert the new list of forums back to a string for the proc.
            forumIds = requestedForumIds.Aggregate(string.Empty, (current, id) => current + (id.ToString() + ";"));

            var forumStatus = fc.GetForumStatus(portalId, forumModuleId, userId, forumIds).ToList();

            return new XmlRpcStruct
                       {
                           {"forums", forumStatus.Select(f => new ListForumStructure
                                {
                                    ForumId = f.ForumId.ToString(),
                                    ForumName = f.ForumName.ToBytes(),
                                    IsProtected = false,
                                    HasNewPosts =  f.LastPostDate > f.LastAccessDate
                                }).ToArray()}
                       };
        }