public void bAddArchiveNames() { using var db = new RedDBContext(); var parser = ServiceLocator.Default.ResolveType <Red4ParserService>(); var hashService = ServiceLocator.Default.ResolveType <IHashService>(); foreach (var item in db.Files) { var file = s_bm.Lookup(item.RedFileId); if (file.HasValue) { item.Archive = Path.GetFileNameWithoutExtension(file.Value.Archive.Name); } } db.SaveChanges(); }
public void bAddArchiveNames() { ArgumentNullException.ThrowIfNull(s_bm); using var db = new RedDBContext(); var parser = _host.Services.GetRequiredService <Red4ParserService>(); var hashService = _host.Services.GetRequiredService <IHashService>(); foreach (var item in db.Files) { var file = s_bm.Lookup(item.RedFileId); if (file.HasValue) { item.Archive = Path.GetFileNameWithoutExtension(file.Value.Archive.Name); } } db.SaveChanges(); }
private void CleanDataBase() { var sw = new Stopwatch(); using var db = new RedDBContext(); Console.WriteLine($"clean database..."); sw.Start(); if (db.Files != null && db.Files.Any()) { db.Files.RemoveRange(db.Files); } db.SaveChanges(); sw.Stop(); Console.WriteLine($"clean database: {sw.ElapsedMilliseconds}ms"); }
public void aGenerateDB() { ArgumentNullException.ThrowIfNull(s_bm); using var db = new RedDBContext(); var sw = new Stopwatch(); var parser = _host.Services.GetRequiredService <Red4ParserService>(); var hashService = _host.Services.GetRequiredService <IHashService>(); var allFiles = s_bm.Archives.Items .SelectMany(x => x.Files.Values) .ToList(); Console.WriteLine($"collect all models..."); sw.Restart(); var dblist = new Dictionary <ulong, RedFile>(); foreach (var file in allFiles) { if (dblist.ContainsKey(file.Key)) { continue; } var redFile = new RedFile() { RedFileId = file.Key, Name = file.Name }; dblist.Add(redFile.RedFileId, redFile); } sw.Stop(); Console.WriteLine($"collect all models: {sw.ElapsedMilliseconds}ms"); // add to DB Console.WriteLine($"add to DB..."); sw.Restart(); foreach (var(_, redFile) in dblist) { db.Add(redFile); } db.SaveChanges(); sw.Stop(); Console.WriteLine($"add to DB: {sw.ElapsedMilliseconds}ms"); }