コード例 #1
0
        public static async Task <DateTime> GetLastReplyAsync(int?rootId, JCarrollOnlineV3DbContext data)
        {
            if (rootId != null)
            {
                if (data == null)
                {
                    throw new ArgumentNullException(nameof(data));
                }

                Models.ThreadEntry fte = await data.ForumThreadEntrys.Where(m => m.Root.Id == rootId).OrderByDescending(m => m.UpdatedAt).FirstOrDefaultAsync().ConfigureAwait(false);

                return(fte.UpdatedAt);
            }
            else
            {
                return(DateTime.Now);
            }
        }
コード例 #2
0
 public MicroPostsController(JCarrollOnlineV3DbContext context)
 {
     _context = context;
 }
コード例 #3
0
 public ForaController(JCarrollOnlineV3DbContext context)
 {
     _context = context;
 }
コード例 #4
0
        public static async Task <LastForumThread> GetLatestThreadDataAsync(Forum forum, JCarrollOnlineV3DbContext data)
        {
            LastForumThread lastThreadViewModel = new LastForumThread();

            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            Models.ThreadEntry forumThreadEntry = null;

            try
            {
                forumThreadEntry = await data.ForumThreadEntrys.Where(i => i.Forum.Id == forum.Id)
                                   .Include(i => i.Author)
                                   .OrderByDescending(i => i.UpdatedAt)
                                   .FirstOrDefaultAsync().ConfigureAwait(false);
            }
            catch (Exception exception)
            {
                Console.WriteLine($"ForumThreadEntrys query threw and exception: {exception.Message}");
            }

            if (forumThreadEntry != null)
            {
                lastThreadViewModel.InjectFrom(forumThreadEntry);
                lastThreadViewModel.Author = new ApplicationUserViewModel();
                lastThreadViewModel.Author.InjectFrom(forumThreadEntry.Author);
                lastThreadViewModel.Forum = new ForaViewModel();
                lastThreadViewModel.Forum.InjectFrom(forumThreadEntry.Forum);

                bool rootNotFound = true;

                if (forumThreadEntry.Parent?.Id != null)
                {
                    while (rootNotFound)
                    {
                        forumThreadEntry = await data.ForumThreadEntrys.FindAsync(forumThreadEntry.Parent?.Id).ConfigureAwait(false);

                        if (forumThreadEntry != null)
                        {
                            if (forumThreadEntry.Parent?.Id == null)
                            {
                                rootNotFound = false;
                            }
                        }
                    }
                }

                lastThreadViewModel.PostRoot = forumThreadEntry.Id;

                return(lastThreadViewModel);
            }

            return(null);
        }
コード例 #5
0
 public static async Task <int> GetThreadCountAsync(Forum forum, JCarrollOnlineV3DbContext data)
 {
     return(data == null
         ? throw new ArgumentNullException(nameof(data))
         : await data.ForumThreadEntrys.Where(i => i.Forum.Id == forum.Id && i.Parent == null).CountAsync().ConfigureAwait(false));
 }
コード例 #6
0
        //private static Logger _logger = LogManager.GetCurrentClassLogger();

        public static async Task <int> GetThreadPostCountAsync(int thread, JCarrollOnlineV3DbContext data)
        {
            return(data == null
                ? throw new ArgumentNullException(nameof(data))
                : await data.ForumThreadEntrys.Where(i => i.Root.Id == thread).AsQueryable().CountAsync().ConfigureAwait(false));
        }
コード例 #7
0
 public ForumThreadsController(JCarrollOnlineV3DbContext context)
 {
     _context = context;
 }
コード例 #8
0
 public ApplicationUsersController(JCarrollOnlineV3DbContext context)
 {
     _context = context;
 }