Beispiel #1
0
        private void CreateComments(int screamId)
        {
            const int COUNT = 25;
            List <ScreamBackend.DB.Tables.Comment> fakeComments = new List <ScreamBackend.DB.Tables.Comment>(COUNT);

            for (int i = 1; i <= COUNT; i++)
            {
                fakeComments.Add(new ScreamBackend.DB.Tables.Comment
                {
                    Content  = "TEST: FAKER COMMENT " + i,
                    AuthorId = FakeUser.Id,
                    ScreamId = screamId
                });
            }

            using var context = new ScreamBackend.DB.ScreamDB(contextOptions);

            context.Comments.AddRange(fakeComments);
            int t = context.SaveChanges();

            if (t == COUNT)
            {
                return;
            }
            throw new Exception("added comments fail");
        }
        /// <summary>
        /// Initial InMemory database
        /// There will create a faker user in database
        /// </summary>
        protected void SeedInit()
        {
            using var context = new ScreamBackend.DB.ScreamDB(contextOptions);

            context.Database.EnsureCreated();

            FakeUser = new ScreamBackend.DB.Tables.User
            {
                Username           = "******",
                NormalizedUsername = "******",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                IsAdmin         = false,
                CreateDateTime  = DateTime.Now,
                Avatar          = "",
                PasswordHash    = "96cae35ce8a9b0244178bf28e4966c2ce1b8385723a96a6b838858cdd6ca0a1e"
            };

            if (!context.Users.Any(u => !u.IsAdmin))
            {
                context.Users.Add(FakeUser);
            }

            _ = context.SaveChanges();
        }
Beispiel #3
0
        public static void InitDatabase(DbContextOptions contextOption)
        {
            if (_databaseInitialized)
            {
                return;
            }
            lock (_lock)
            {
                if (_databaseInitialized)
                {
                    return;
                }

                using var context = new ScreamBackend.DB.ScreamDB(contextOption);

                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                var user          = FakeUser;
                var commentAuthor = FakeCommentAuthor;
                var screams       = GetFakeScreams(user);
                var comments      = GetFakeComments(screams, commentAuthor);
                context.Users.Add(user);
                context.Users.Add(commentAuthor);
                context.Screams.AddRange(screams);
                context.Comments.AddRange(comments);

                const int NUMBER_OF_USER_AND_COMMENT_AUTHOR = 2;
                int       shouldEffects = screams.Count + comments.Count + NUMBER_OF_USER_AND_COMMENT_AUTHOR;
                context.SaveChanges();

                _databaseInitialized = true;
            }
        }
 public DBSeedFactory()
 {
     redisConn   = StackExchange.Redis.ConnectionMultiplexer.Connect("localhost");
     _connection = RelationalOptionsExtension.Extract(contextOptions).Connection;
     _connection.Open();
     _db = new ScreamBackend.DB.ScreamDB(contextOptions);
     SeedInit();
 }
        protected void CreateAdministartor()
        {
            using var context = new ScreamBackend.DB.ScreamDB(contextOptions);

            FakeAdmin = new ScreamBackend.DB.Tables.User
            {
                Username           = "******",
                NormalizedUsername = "******",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                IsAdmin         = true,
                CreateDateTime  = DateTime.Now,
                Avatar          = "",
                PasswordHash    = "96cae35ce8a9b0244178bf28e4966c2ce1b8385723a96a6b838858cdd6ca0a1e",
            };

            if (!context.Users.Any(u => u.IsAdmin))
            {
                context.Users.Add(FakeAdmin);
            }

            _ = context.SaveChanges();
        }
Beispiel #6
0
 internal AbstractScreamsManager(ScreamBackend.DB.ScreamDB db)
 {
     DB = db;
 }
Beispiel #7
0
 internal Comment(ScreamBackend.DB.Tables.Comment model, ScreamBackend.DB.ScreamDB db)
 {
     Model = model;
     _db   = db;
 }
Beispiel #8
0
 /// <summary>
 /// instance from database model
 /// </summary>
 /// <param name="scream"></param>
 internal Scream(ScreamBackend.DB.Tables.Scream scream, AbstractScreamsManager referenceScreams)
 {
     Model     = scream;
     Cache_Key = CACHE_KEY_PREFIX + scream.Id;
     _db       = referenceScreams.DB;
 }