public void Register(EnhancementDatabaseReader enhancementDatabaseReader) { enhancementDatabaseReader.OnHeaderRead += (header) => { Console.WriteLine($"Enhancement Database Version: {header.Version}"); }; enhancementDatabaseReader.OnEnhancementRead += (enhancement) => { Console.WriteLine($"Enhancement: {enhancement.Name}"); }; enhancementDatabaseReader.OnEnhancementSetRead += (enhancementSet) => { Console.WriteLine($"Enhancement Set: {enhancementSet.DisplayName}"); }; }
public void Register(EnhancementDatabaseReader enhancementDatabaseReader) { enhancementDatabaseReader.OnEnhancementRead += (enhancement) => { _domainContext.Add(Map(enhancement)); _enhancementReadCount++; if (_enhancementReadCount < BatchSize) { return; } _domainContext.SaveChanges(); _enhancementReadCount = 0; }; enhancementDatabaseReader.OnEnhancementsCompleted += () => { _domainContext.SaveChanges(); }; }
private static void ExportEnhancementDatabase(ExportOptions options, IList <IExporter> exporters) { using (var file = File.OpenRead(options.EnhancementSetPath)) { using (var binaryReader = new BinaryReader(file, Encoding.Default, true)) { var enhancementDatabaseReader = new EnhancementDatabaseReader(binaryReader); foreach (var exporter in exporters) { exporter.Register(enhancementDatabaseReader); } while (enhancementDatabaseReader.Read()) { ; } } } }
public void Register(EnhancementDatabaseReader enhancementDatabaseReader) { _enhancementDatabaseReader = enhancementDatabaseReader; var enhancementFolder = Path.Combine(_outputPath, "enhancements"); var enhancementSetFolder = Path.Combine(_outputPath, "enhancement_sets"); var serializer = new SerializerBuilder() .WithNamingConvention(UnderscoredNamingConvention.Instance) .ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitDefaults | DefaultValuesHandling.OmitNull) .Build(); _enhancementDatabaseReader.OnHeaderRead += (header) => { if (!Directory.Exists(enhancementFolder)) { Directory.CreateDirectory(enhancementFolder); } if (!Directory.Exists(enhancementSetFolder)) { Directory.CreateDirectory(enhancementSetFolder); } }; _enhancementDatabaseReader.OnEnhancementSetRead += (enhancementSet) => { var enhancementSetPath = Path.Combine(enhancementSetFolder, enhancementSet.StringId) + ".yml"; if (File.Exists(enhancementSetPath)) { File.Delete(enhancementSetPath); } using (var file = File.Create(enhancementSetPath)) { using (var writer = new StreamWriter(file)) { serializer.Serialize(writer, enhancementSet); } } }; _enhancementDatabaseReader.OnEnhancementRead += (enhancement) => { var isAttuned = enhancement.UniqueIdentifier.Contains("attuned", StringComparison.CurrentCultureIgnoreCase); var isCrafted = enhancement.UniqueIdentifier.Contains("crafted", StringComparison.CurrentCultureIgnoreCase); var isSpecial = enhancement.TypeId == EnhancementType.SpecialOrigin.Id; var isNormal = !isAttuned && !isCrafted && !isSpecial; // TODO: Move this mapping to a data property var enhancementPath = enhancementFolder; var name = enhancement.UniqueIdentifier; if (isAttuned) { enhancementPath = Path.Combine(enhancementPath, "attuned"); enhancementPath = Path.Combine(enhancementPath, enhancement.EnhancementSetName); name = enhancement.EnhancementSetName + "_" + enhancement.ShortName.Replace("/", "_").Replace(" ", "_"); } else if (isCrafted) { // data/enhancements/attuned/aegis/aegis_resdam_endrdx.yml // data/enhancements/attuned/aegis/aegis_psi_status.yml enhancementPath = Path.Combine(enhancementPath, "crafted"); enhancementPath = Path.Combine(enhancementPath, enhancement.EnhancementSetName); name = enhancement.EnhancementSetName + "_" + enhancement.ShortName.Replace("/", "_").Replace(" ", "_"); } else if (isSpecial) { enhancementPath = Path.Combine(enhancementPath, "special"); } else if (isNormal) { // data/enhancements/normal/defense.yml // data/enhancements/normal/flight_speed.yml enhancementPath = Path.Combine(enhancementPath, "normal"); name = enhancement.Name.Replace(" ", "_"); } if (!Directory.Exists(enhancementPath)) { Directory.CreateDirectory(enhancementPath); } var fileName = name + ".yml"; enhancementPath = Path.Combine(enhancementPath, fileName); if (File.Exists(enhancementPath)) { File.Delete(enhancementPath); } using (var file = File.Create(enhancementPath)) { using (var writer = new StreamWriter(file)) { serializer.Serialize(writer, enhancement); } } }; }
public MidsDomainContextLoader(DatabaseReader databaseReader, EnhancementDatabaseReader enhancementDatabaseReader) { _databaseReader = databaseReader; _enhancementDatabaseReader = enhancementDatabaseReader; }
/// <summary> /// Creates an instance of the context provider from the given readers /// </summary> /// <remarks>may want to encapsulate this usage because reader is stateful and Create modifies that state.</remarks> /// <param name="databaseReader">the database reader to use.</param> public MidsDomainContextFactory(DatabaseReader databaseReader, EnhancementDatabaseReader enhancementDatabaseReader) { _loader = new MidsDomainContextLoader(databaseReader, enhancementDatabaseReader); }
public void Register(EnhancementDatabaseReader enhancementDatabaseReader) { _contextMapper.Register(enhancementDatabaseReader); }