Beispiel #1
0
        public ActionResult UsersStats(int?page, string sortBy, string dir)
        {
            var pageSize = 15;

            var allUsers = this.Users.GetAllUsers();

            var usersCount = allUsers.Count();
            var pages      = Pager.PageCount(usersCount, pageSize);

            page = Pager.ClampPage(page, pages);

            var users = this.Users.GetUserInformation(allUsers);

            users = users.OrderByDescending(u => u.EventsCheckedIn).Skip((page.Value - 1) * pageSize).Take(pageSize);

            return(View("Users", new StatsUsersModel
            {
                Users = users,
                PageInfo = new PaginationInformation
                {
                    Pager = this.Skins.GetDefaultPager(),
                    ControllerName = "Stats",
                    ActionName = "Users",
                    CurrentPage = page,
                    Items = usersCount,
                    ItemsPerPage = pageSize,
                    PageAttribute = "page",
                    RouteValues = null
                }
            }));
        }
Beispiel #2
0
        public ActionResult EventsHistory(int?page, string sortBy, string dir)
        {
            int pageSize = 15;

            var events      = this.GetEventStats();
            var eventsCount = events.Count();
            var pages       = Pager.PageCount(eventsCount, pageSize);

            page = Pager.ClampPage(page, pages);

            events = events.OrderByDescending(t => t.Event.BeginDateTime).Skip((page.Value - 1) * pageSize).Take(pageSize);

            return(View("Events", new StatsEventsModel
            {
                Events = events,
                PageInfo = new PaginationInformation
                {
                    Pager = this.Skins.GetDefaultPager(),
                    ControllerName = "Stats",
                    ActionName = "Events",
                    CurrentPage = page,
                    Items = eventsCount,
                    ItemsPerPage = pageSize,
                    PageAttribute = "page",
                    RouteValues = null
                }
            }));
        }
Beispiel #3
0
        public ActionResult ViewForum(long?id, int?page)
        {
            int pageSize = 25;

            if (!id.HasValue)
            {
                return(View("NotAvailable"));
            }

            Forum f = this.Forums.GetForum(id.Value);

            if (f == null)
            {
                return(View("NotFound"));
            }

            ForumAccess a = this.Security.GetUserForumAccess(CurrentUser, f);

            if (!a.CanView)
            {
                return(View("NotAuthorized"));
            }

            var threadSource = this.Forums.GetForumViewableThreads(f.ForumID);

            var threadCount = threadSource.Count();
            var threads     = GetThreadInformation(threadSource, CurrentUser);
            int pages       = Pager.PageCount(threadCount, pageSize);

            page = Pager.ClampPage(page, pages);

            var threadsList = new ThreadList
            {
                Threads = threads.OrderByDescending(t => t.LastPostDate).OrderByDescending(t => t.Thread.Level).Skip((page.Value - 1) * pageSize).Take(pageSize).ToList()
            };

            var fd = new ForumDetailsModel
            {
                Forum      = f,
                UserAccess = a,
                PageInfo   = new PaginationInformation
                {
                    Pager          = this.Skins.GetDefaultForumPager(),
                    ControllerName = "Forums",
                    ActionName     = "ViewForum",
                    PageAttribute  = "page",
                    RouteValues    = new System.Web.Routing.RouteValueDictionary(new { id = id }),
                    ItemsPerPage   = pageSize,
                    Items          = threadCount,
                    CurrentPage    = page
                },
                Threads = threadsList
            };

            return(View("ViewForum", fd));
        }
Beispiel #4
0
        public ActionResult Gallery(long? @event, long?user, int?page)
        {
            int pageSize = 50;

            CachedEvent viewEvent = null;

            if (@event.HasValue)
            {
                viewEvent = this.Events.GetEvent(@event.Value);

                if (viewEvent == null)
                {
                    return(this.HttpError(404, this.View("NotFound")));
                }
            }

            UserInformation viewUser = null;

            if (user.HasValue)
            {
                viewUser = this.Users.GetUserInformation(user.Value);

                if (viewUser == null)
                {
                    return(this.HttpError(404, this.View("NotFound")));
                }
            }

            var images = FilterImages(this.Db.EventImages, @event, user);

            int imageCount = images.Count();
            int pages      = Pager.PageCount(imageCount, pageSize);

            page = Pager.ClampPage(page, pages);

            var viewImages = images.Skip((page.Value - 1) * pageSize).Take(pageSize).ToList();

            return(this.View(new ImageGalleryModel
            {
                Event = viewEvent,
                User = viewUser,
                Images = viewImages,
                PageInfo = new PaginationInformation
                {
                    Pager = this.Skins.GetDefaultGalleryPager(),
                    CurrentPage = page,
                    Items = imageCount,
                    ItemsPerPage = pageSize,
                    ControllerName = "Images",
                    ActionName = "Gallery",
                    PageAttribute = "page",
                    RouteValues = new System.Web.Routing.RouteValueDictionary(new { @event = @event, user = user })
                }
            }));
        }
Beispiel #5
0
        public ActionResult ViewThread(long?id, int?page)
        {
            int pageSize = 25;

            if (!id.HasValue)
            {
                return(View("NotAvailable"));
            }

            var t = this.Forums.GetThread(id.Value);

            if (t == null || t.IsDeleted)
            {
                return(View("NotFound"));
            }

            Forum       f = t.Forum;
            ForumAccess a = this.Security.GetUserForumAccess(CurrentUser, f);

            if (!a.CanRead)
            {
                return(View("NotAuthorized"));
            }

            lock (syncRoot)
            {
                t       = this.Forums.GetThread(id.Value);
                t.Views = t.Views + 1;
                this.Db.SubmitChanges();
            }

            if (CurrentUser != null)
            {
                ThreadRead tr = (from thr in this.Db.ThreadReads
                                 where thr.ThreadID == id && thr.UserID == CurrentUser.UserID
                                 select thr).SingleOrDefault();
                if (tr == null)
                {
                    tr = new ThreadRead
                    {
                        ThreadID = t.ThreadID,
                        UserID   = CurrentUser.UserID,
                        DateRead = DateTime.UtcNow,
                    };

                    this.Db.ThreadReads.InsertOnSubmit(tr);
                }
                else
                {
                    tr.DateRead = DateTime.UtcNow;
                }
                this.Db.SubmitChanges();
            }

            var posts     = this.GetPostsInformation(t);
            int postCount = posts.Count();
            int pages     = Pager.PageCount(postCount, pageSize);

            page = Pager.ClampPage(page, pages);

            posts = posts.OrderBy(p => p.Post.CreateDate).Skip((page.Value - 1) * pageSize).Take(pageSize);

            ForumThreadModel tm = new ForumThreadModel
            {
                Thread     = t,
                Posts      = posts.ToList(),
                UserAccess = a,
                PageInfo   = new PaginationInformation
                {
                    Pager          = this.Skins.GetDefaultThreadPager(),
                    CurrentPage    = page,
                    Items          = postCount,
                    ItemsPerPage   = pageSize,
                    ControllerName = "Forums",
                    ActionName     = "ViewThread",
                    PageAttribute  = "page",
                    RouteValues    = new System.Web.Routing.RouteValueDictionary(new { id = id })
                }
            };

            return(View("ViewThread", tm));
        }