Пример #1
0
        public AuthController(MenherachanContext db, IWebHostEnvironment env)
        {
            _db  = db;
            _env = env;

            _logDirectory = Path.Combine(_env.WebRootPath, "logs", "auth_logs.log");
        }
Пример #2
0
        public MainPageController(MenherachanContext db, IBoardCollection collection, IWebHostEnvironment env)
        {
            _db         = db;
            _collection = collection;
            _env        = env;

            _logDirectory = Path.Combine(_env.WebRootPath, "logs", "main_page_logs.log");
        }
Пример #3
0
        public ThreadController(MenherachanContext db, IWebHostEnvironment env)
        {
            _db  = db;
            _env = env;

            _logDirectory = Path.Combine(_env.WebRootPath, "logs", "thread_logs.log");

            _md5 = new MD5CryptoServiceProvider();
        }
Пример #4
0
        public ReportController(MenherachanContext db, IBoardCollection collection, IWebHostEnvironment env)
        {
            _db         = db;
            _collection = collection;
            _env        = env;

            _logDirectory = Path.Combine(_env.WebRootPath, "logs", "report_logs.log");

            _md5 = new MD5CryptoServiceProvider();
        }
Пример #5
0
 public static void AddFilesToPost(MenherachanContext db, Post post, FileInformation info)
 {
     db.File.Add(new File
     {
         BoardId       = post.BoardId,
         ThreadId      = post.ThreadId,
         PostId        = post.PostId,
         FileName      = info.FileName,
         ThumbnailName = info.ThumbnailName,
         Info          = $"{info.Information}"
     });
     db.SaveChanges();
 }
Пример #6
0
        public static bool UserIsBanned(MenherachanContext db, string ipHash)
        {
            try
            {
                var ban = db.Ban.First(b => b.AnonIpHash == ipHash);

                if (ban == null)
                {
                    return(false);
                }

                return(ban.Term > DateTimeOffset.Now.ToUnixTimeSeconds());
            }
            catch (InvalidOperationException)
            {
                return(false);
            }
        }
Пример #7
0
        public BoardInformation(Board board, MenherachanContext db)
        {
            ThreadCount = db.Board.Where(b => b.Prefix == board.Prefix)
                          .Join(db.Thread,
                                b => b.BoardId,
                                t => t.BoardId,
                                (br, thread) => thread.ThreadId).Count();

            PostCount = db.Board.Where(b => b.Prefix == board.Prefix).Join(db.Post,
                                                                           b => b.BoardId,
                                                                           p => p.BoardId,
                                                                           (brd, post) => post.PostId).Count();

            FileCount = db.Board.Where(b => b.Prefix == board.Prefix).Join(db.File,
                                                                           b => b.BoardId,
                                                                           f => f.BoardId,
                                                                           (br, fl) => fl.FileId).Count();
        }
Пример #8
0
        public static void AddPostToThread(MenherachanContext db, Post post, bool sage, bool isWrittenByOp = false)
        {
            var thread = db.Thread.First(t => t.ThreadId == post.ThreadId);

            if (thread == null)
            {
                throw new InvalidOperationException();
            }

            if (!sage)
            {
                thread.BumpInUnixTime = DateTimeOffset.Now.ToUnixTimeSeconds();
            }

            post.IsWrittenByOp = isWrittenByOp;

            db.Post.Add(post);
            db.SaveChanges();
        }
Пример #9
0
        public static void AddThreadToBoard(MenherachanContext db, ref Post firstThreadPost)
        {
            var thread = new Thread
            {
                AnonName = firstThreadPost.AnonName,
                BoardId  = firstThreadPost.BoardId,
                OpIpHash = firstThreadPost.AnonIpHash,
                IsClosed = false
            };

            db.Thread.Add(thread);
            db.SaveChanges();

            firstThreadPost.ThreadId          = thread.ThreadId;
            firstThreadPost.TimeInUnixSeconds = DateTimeOffset.Now.ToUnixTimeSeconds();

            db.Post.Add(firstThreadPost);
            db.SaveChanges();
        }