public void ApplyPendingScripts(SqlConnection connection, IMigratorConfiguration configuration, IEnumerable <PendingItem> scripts) { foreach (var updateScript in scripts) { ClasspathScripts.Add(updateScript); AppliedItem appliedScript = new AppliedItem { Type = updateScript.Type, Executed = DateTime.Now, Name = updateScript.Name, Version = updateScript.Version, Checksum = updateScript.Checksum }; if (updateScript.Type == ItemType.Repeatable) { AppliedItem oldItem = DbItems.FirstOrDefault(s => Equals(updateScript.Version, s.Version)); if (oldItem != null) { DbItems.Remove(oldItem); } } DbItems.Add(appliedScript); AppliedItems.Add(appliedScript); Log.InfoFormat("Running script {0} with version {1}", updateScript.Name, updateScript.Version); } }
private void _appliedItemUpdateTimer_Tick(object sender, object e) { foreach (AppliedItemWrapper appliedItem in AppliedItems) { if (appliedItem.IsExpired) { AppliedItems.Remove(appliedItem); break; } appliedItem.Update(appliedItem.WrappedData); } }
/// <summary> /// Updates inventory data /// </summary> public static async Task UpdateInventory() { // Get ALL the items var response = await GetInventory(); var fullInventory = response.InventoryDelta?.InventoryItems; // Update items ItemsInventory.AddRange(fullInventory.Where(item => item.InventoryItemData.Item != null) .GroupBy(item => item.InventoryItemData.Item) .Select(item => item.First().InventoryItemData.Item), true); CatchItemsInventory.AddRange( fullInventory.Where( item => item.InventoryItemData.Item != null && CatchItemIds.Contains(item.InventoryItemData.Item.ItemId)) .GroupBy(item => item.InventoryItemData.Item) .Select(item => item.First().InventoryItemData.Item), true); AppliedItems.AddRange( fullInventory .Where(item => item.InventoryItemData.AppliedItems != null) .SelectMany(item => item.InventoryItemData.AppliedItems.Item) .Select(item => new AppliedItemWrapper(item)), true); // Update incbuators IncubatorsInventory.AddRange(fullInventory.Where(item => item.InventoryItemData.EggIncubators != null) .SelectMany(item => item.InventoryItemData.EggIncubators.EggIncubator) .Where(item => item != null), true); // Update Pokedex PokedexInventory.AddRange(fullInventory.Where(item => item.InventoryItemData.PokedexEntry != null) .Select(item => item.InventoryItemData.PokedexEntry), true); // Update Pokemons PokemonsInventory.AddRange(fullInventory.Select(item => item.InventoryItemData.PokemonData) .Where(item => item != null && item.PokemonId > 0), true); EggsInventory.AddRange(fullInventory.Select(item => item.InventoryItemData.PokemonData) .Where(item => item != null && item.IsEgg), true); // Update candies CandyInventory.AddRange(from item in fullInventory where item.InventoryItemData?.Candy != null where item.InventoryItemData?.Candy.FamilyId != PokemonFamilyId.FamilyUnset group item by item.InventoryItemData?.Candy.FamilyId into family select new Candy { FamilyId = family.FirstOrDefault().InventoryItemData.Candy.FamilyId, Candy_ = family.FirstOrDefault().InventoryItemData.Candy.Candy_ }, true); }