public static void MigrateDatabase(IModHelper helper, string fromPath, ref StoredGiftDatabase newDb) { GiftDatabaseModel fromDatabaseModel = helper.ReadJsonFile <GiftDatabaseModel>(fromPath); if (newDb.Database.Entries.Keys.Count == 0) { newDb.Database = fromDatabaseModel; } else { // Merge // TODO: Clean this up a bit. foreach (string npcName in fromDatabaseModel.Entries.Keys) { CharacterTasteModel fromTasteModel = fromDatabaseModel.Entries[npcName]; if (!newDb.Database.Entries.ContainsKey(npcName)) { newDb.Database.Entries.Add(npcName, fromTasteModel); continue; } Dictionary <GiftTaste, List <GiftModel> > newEntries = newDb.Database.Entries[npcName].Entries; Dictionary <GiftTaste, List <GiftModel> > fromEntries = fromTasteModel.Entries; foreach (GiftTaste taste in fromEntries.Keys) { if (!newEntries.ContainsKey(taste)) { newEntries.Add(taste, fromEntries[taste]); continue; } newEntries[taste] = fromEntries[taste] .Concat(newEntries[taste]) .DistinctBy(gift => gift.ItemId) .ToList(); } } } newDb.Write(); }
public GiftDatabase(IModHelper helper, GiftDatabaseModel database) { this.Helper = helper; this.Database = database; }
public GiftDatabase(IModHelper helper) { this.Helper = helper; this.Database = new GiftDatabaseModel(); }