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(); }
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(); }
internal AbstractScreamsManager(ScreamBackend.DB.ScreamDB db) { DB = db; }
internal Comment(ScreamBackend.DB.Tables.Comment model, ScreamBackend.DB.ScreamDB db) { Model = model; _db = db; }
/// <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; }