partial void Merge(GatheringTool entity, ItemDTO dto, object state) { int defaultSkinId; if (int.TryParse(dto.DefaultSkin, out defaultSkinId)) { entity.DefaultSkinId = defaultSkinId; } }
public static async Task GetItems() { List <Item> allItems = new List <Item>(); List <int> allIds = apiOperations.GetAllIds(ITEMS_SUFFIX); Console.WriteLine($"Got {allIds.Count} items Ids"); for (int i = 0; i < allIds.Count; i += 200) { IEnumerable <int> idsToDownload = allIds.Skip(i).Take(200); StringBuilder endpoint = new StringBuilder(ITEMS_SUFFIX).Append("?ids="); foreach (var id in idsToDownload) { endpoint.Append(id) .Append(','); } endpoint.Length--; List <APIResult <Item> > result = apiOperations.GetObjectsByIds <Item>(endpoint.ToString()); foreach (var apiItem in result) { Item itemToAdd = apiItem.ResultObject; switch (itemToAdd.Type) { case "Armor": Armor armor = JsonConvert.DeserializeObject <Armor>(apiItem.AdditionalDetails); armor.Id = itemToAdd.Id; itemToAdd.Armor = armor; itemToAdd.ArmorId = armor.Id; dbOperations.AddWithoutCommit <Armor>(armor); break; case "Weapon": Weapon weapon = JsonConvert.DeserializeObject <Weapon>(apiItem.AdditionalDetails); weapon.Id = itemToAdd.Id; itemToAdd.Weapon = weapon; itemToAdd.WeaponId = weapon.Id; dbOperations.AddWithoutCommit <Weapon>(weapon); break; case "Back": BackItem backItem = JsonConvert.DeserializeObject <BackItem>(apiItem.AdditionalDetails); if (backItem == null) { backItem = new BackItem(); } backItem.Id = itemToAdd.Id; itemToAdd.BackItem = backItem; itemToAdd.BackItemId = backItem.Id; dbOperations.AddWithoutCommit <BackItem>(backItem); break; case "Consumable": Consumable consumable = JsonConvert.DeserializeObject <Consumable>(apiItem.AdditionalDetails); consumable.Id = itemToAdd.Id; itemToAdd.Consumable = consumable; itemToAdd.ConsumableId = consumable.Id; dbOperations.AddWithoutCommit <Consumable>(consumable); break; case "Container": Container container = JsonConvert.DeserializeObject <Container>(apiItem.AdditionalDetails); container.Id = itemToAdd.Id; itemToAdd.Container = container; itemToAdd.ContainerId = container.Id; dbOperations.AddWithoutCommit <Container>(container); break; case "Gathering": GatheringTool gathering = JsonConvert.DeserializeObject <GatheringTool>(apiItem.AdditionalDetails); gathering.Id = itemToAdd.Id; itemToAdd.GatheringTool = gathering; itemToAdd.GatheringToolId = gathering.Id; dbOperations.AddWithoutCommit <GatheringTool>(gathering); break; case "Gizmo": Gizmo gizmo = JsonConvert.DeserializeObject <Gizmo>(apiItem.AdditionalDetails); gizmo.Id = itemToAdd.Id; itemToAdd.Gizmo = gizmo; itemToAdd.GizmoId = gizmo.Id; dbOperations.AddWithoutCommit <Gizmo>(gizmo); break; case "MiniPet": Miniature mini = JsonConvert.DeserializeObject <Miniature>(apiItem.AdditionalDetails); mini.Id = itemToAdd.Id; itemToAdd.Miniature = mini; itemToAdd.MiniatureId = mini.Id; dbOperations.AddWithoutCommit <Miniature>(mini); break; case "Tool": SalvageKit salvage = JsonConvert.DeserializeObject <SalvageKit>(apiItem.AdditionalDetails); salvage.Id = itemToAdd.Id; itemToAdd.SalvageKit = salvage; itemToAdd.SalvageKitId = salvage.Id; dbOperations.AddWithoutCommit <SalvageKit>(salvage); break; case "Trinket": Trinket trinket = JsonConvert.DeserializeObject <Trinket>(apiItem.AdditionalDetails); trinket.Id = itemToAdd.Id; itemToAdd.Trinket = trinket; itemToAdd.TrinketId = trinket.Id; dbOperations.AddWithoutCommit <Trinket>(trinket); break; case "UpgradeComponent": UpgradeComponent upgrade = JsonConvert.DeserializeObject <UpgradeComponent>(apiItem.AdditionalDetails); upgrade.Id = itemToAdd.Id; itemToAdd.UpgradeComponent = upgrade; itemToAdd.UpgradeComponentId = upgrade.Id; dbOperations.AddWithoutCommit <UpgradeComponent>(upgrade); break; default: break; } allItems.Add(apiItem.ResultObject); } Console.WriteLine($"Loaded {allItems.Count} out of {allIds.Count} items"); } await dbOperations.AddToEntity <Item>(allItems); Console.WriteLine("Getting items completed"); }