private static async Task PrintPokemonInfo(ISession session, System.Collections.Generic.IEnumerable <POGOProtos.Settings.Master.PokemonSettings> pokemonSettings, System.Collections.Generic.List <POGOProtos.Inventory.Candy> pokemonFamilies, POGOProtos.Data.PokemonData duplicatePokemon) { var bestPokemonOfType = (session.LogicSettings.PrioritizeIvOverCp ? await session.Inventory.GetHighestPokemonOfTypeByIv(duplicatePokemon) : await session.Inventory.GetHighestPokemonOfTypeByCp(duplicatePokemon)) ?? duplicatePokemon; var setting = pokemonSettings.SingleOrDefault(q => q.PokemonId == duplicatePokemon.PokemonId); var family = pokemonFamilies.FirstOrDefault(q => q.FamilyId == setting.FamilyId); family.Candy_++; session.EventDispatcher.Send(new TransferPokemonEvent { Id = duplicatePokemon.PokemonId, Perfection = PokemonInfo.CalculatePokemonPerfection(duplicatePokemon), Cp = duplicatePokemon.Cp, BestCp = bestPokemonOfType.Cp, BestPerfection = PokemonInfo.CalculatePokemonPerfection(bestPokemonOfType), FamilyCandies = family.Candy_ }); }
public Guid RetrieveNextComicPageId(Guid pageId) { System.Collections.Generic.IEnumerable <Entities.Comic.ComicPage> comicIssue = _comicIssuePageRetriever.RetrieveComicPagesForIssue(1); Entities.Comic.ComicPage currentComicPage = comicIssue.SingleOrDefault(page => page.PageId == pageId); if (currentComicPage is null) { throw new ArgumentException($"Unable to find current comic page for {nameof(pageId)}: {pageId}"); } try { return(comicIssue.TryOffsetBy(page => page.PageNumber, currentComicPage.PageNumber, idOffset: 1, out Entities.Comic.ComicPage nextComicPage) ? nextComicPage.PageId : currentComicPage.PageId); } catch (InvalidOperationException) { throw new ArgumentException($"Unable to retrieve next comic page for page with PageId {pageId}"); } }