Example #1
0
        public IActionResult Abilities()
        {
            AbilityViewModel model = new AbilityViewModel()
            {
                AllAbilities = this.dataService.GetObjects <Ability>("GenerationId, Name"),
                AllPokemon   = this.dataService.GetAllPokemonWithAbilitiesAndIncomplete(),
            };

            return(this.View(model));
        }
Example #2
0
        public async Task Should_Return_400_Status_Code_If_ViewModel_Invalid()
        {
            // Arrange
            var client = factory.CreateClient();
            await factory.AuthenticateAsync(client);

            var data = new AbilityViewModel();

            // Act
            var response = await PerformRequest(client, data);

            // Assert
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public async Task Should_Return_400_Status_Code_With_Invalid_ViewModel()
        {
            // Arrange
            var data = new AbilityViewModel();

            var abilitiesController = new AbilitiesController(abilityServices.Object);

            // Act
            var response = await abilitiesController.Create(data);

            // Assert
            Assert.NotNull(response);
            Assert.IsType <BadRequestObjectResult>(response.Result);
        }
        public async Task <ActionResult <AbilityViewModel> > Create(
            [FromBody] AbilityViewModel data
            )
        {
            data.Validate();

            if (data.Invalid)
            {
                return(BadRequest(data.Notifications));
            }

            var response = await abilityServices.CreateAbility(data);

            return(Created(nameof(Create), response));
        }
Example #5
0
 private async Task <HttpResponseMessage> PerformRequest(
     HttpClient client,
     AbilityViewModel data
     )
 {
     return(await client.PostAsync("/v1/abilities", new StringContent(
                                       JsonConvert.SerializeObject(data),
                                       Encoding.UTF8
                                       ) {
         Headers =
         {
             ContentType = new MediaTypeHeaderValue("application/json")
         }
     }));
 }
Example #6
0
        public static AbilityViewModel BuildAbilityViewModel(Ability ability, bool addRelations = false)
        {
            var viewmodel = new AbilityViewModel
            {
                Id          = ability.Id,
                Name        = ability.Name,
                Description = ability.Description
            };

            if (addRelations)
            {
                viewmodel.MetaHumans = ability.MetaHumanAbilities.Select(y => BuildMetaViewModel(y.MetaHuman));
            }

            return(viewmodel);
        }
Example #7
0
 public AbilityContext() {
     if (VM_Ability == null) {
         VM_Ability = new AbilityViewModel();
     }
     if (VM_Generation == null) {
         VM_Generation = new GenerationViewModel();
     }
     if (VM_Region == null) {
         VM_Region = new RegionViewModel();
     }
     if (VM_VersionGroups == null) {
         VM_VersionGroups = new VersionGroupsViewModel();
     }
     if (VM_Language == null) {
         VM_Language = new LanguageViewModel();
     }
 }
        public async Task <AbilityViewModel> CreateAbility(AbilityViewModel data)
        {
            var ability = mapper.Map <Ability>(data);

            var abilityExists = await abilitiesRepository.ExistsById(data.Id);

            if (abilityExists)
            {
                throw new AbilityException("Ability number must be unique", 400);
            }

            abilityExists = await abilitiesRepository.ExistsByName(data.Name);

            if (abilityExists)
            {
                throw new AbilityException("Ability name must be unique", 400);
            }

            ability = await abilitiesRepository.CreateAbility(ability);

            return(mapper.Map <AbilityViewModel>(ability));
        }
        public async Task Should_Be_Able_To_Create_New_Pokemon()
        {
            // Arrange
            var pokemon = BogusDomain.PokemonFaker();

            var stats = BogusDomain.StatsFaker();

            var abilities = BogusDomain.AbilitiesFaker();

            var data  = BogusViewModel.PokemonViewModelFaker(pokemon, stats, abilities);
            var photo = LoadPokemonPhoto();

            data.PokemonPhoto = photo;

            var response = new PokemonViewModel()
            {
                Id             = pokemon.Id,
                Name           = pokemon.Name,
                EvolutionLevel = pokemon.EvolutionLevel,
                LevelingRate   = pokemon.LevelingRate,
                CatchRate      = pokemon.CatchRate,
                HatchTime      = pokemon.HatchTime,
                CreatedAt      = pokemon.CreatedAt,
            };

            var statsViewModel = data.Stats;

            var abilityViewModel = new AbilityViewModel()
            {
                Id     = abilities[0].Id,
                Name   = abilities[0].Name,
                Effect = abilities[0].Effect,
            };

            var hiddenAbilityViewModel = new AbilityViewModel()
            {
                Id     = abilities[1].Id,
                Name   = abilities[1].Name,
                Effect = abilities[1].Effect,
            };

            mapper.Setup(x => x.Map <Pokemon>(data)).Returns(pokemon);
            mapper.Setup(x => x.Map <Stats>(data.Stats)).Returns(stats);
            pokemonRepository.Setup(x => x.ExistsById(pokemon.Id)).ReturnsAsync(false);
            pokemonRepository.Setup(x => x.ExistsByName(pokemon.Name))
            .ReturnsAsync(false);
            abilitiesRepository.Setup(x => x.ExistsById(
                                          abilities[0].Id
                                          )).ReturnsAsync(true);
            abilitiesRepository.Setup(x => x.ExistsById(
                                          abilities[1].Id
                                          )).ReturnsAsync(true);
            storageProvider.Setup(x => x.SaveFile(photo)).Returns(Guid.NewGuid().ToString());
            pokemonRepository.Setup(x => x.CreatePokemon(pokemon))
            .ReturnsAsync(pokemon);
            statsRepository.Setup(x => x.CreateStats(stats))
            .ReturnsAsync(stats);
            pokemonRepository.Setup(x => x.CreatePokemonAbility(
                                        data.Id, data.Abilities[0].Id
                                        )).ReturnsAsync(new PokemonAbility()
            {
                PokemonId = data.Id,
                AbilityId = data.Abilities[0].Id
            });
            pokemonRepository.Setup(x => x.CreatePokemonAbility(
                                        data.Id, data.Abilities[1].Id
                                        )).ReturnsAsync(new PokemonAbility()
            {
                PokemonId = data.Id,
                AbilityId = data.Abilities[1].Id
            });
            abilitiesRepository.Setup(x => x.FindByPokemonId(data.Id))
            .ReturnsAsync(new List <Ability>()
            {
                abilities[0],
                abilities[1]
            });
            mapper.Setup(x => x.Map <PokemonViewModel>(pokemon)).Returns(
                response
                );
            mapper.Setup(x => x.Map <StatsViewModel>(stats)).Returns(
                statsViewModel
                );
            mapper.Setup(x => x.Map <List <AbilityViewModel> >(abilities)).Returns(
                new List <AbilityViewModel>()
            {
                abilityViewModel,
                hiddenAbilityViewModel
            }
                );

            // Act
            var result = await pokemonServices.CreatePokemon(data);

            // Assert
            Assert.IsType <PokemonViewModel>(result);
            Assert.IsType <StatsViewModel>(result.Stats);
            Assert.IsType <List <AbilityViewModel> >(result.Abilities);
            Assert.Equal(pokemon.Id, result.Id);
            Assert.Equal(stats.Total, result.Stats.Total);
            Assert.Equal(2, result.Abilities.Count);
            Assert.Equal(
                DateTime.Today.ToLocalTime().Date,
                result.CreatedAt.ToLocalTime().Date
                );
        }
 private IEnumerator CountdownToEffectEnd(AbilityViewModel avm)
 {
     yield return new WaitForSecondsInterruptTime(avm.Model.Duration);
     avm.Model.Deactivate();
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            HeroPlayerInfo = (e.Parameter as HeroPlayerInfoViewModel);
            if (HeroPlayerInfo == null)
            {
                ShowDialog();
                return;
            }
            foreach (var item in HeroPlayerInfo.Permanent_buffs)
            {
                switch (item.Permanent_buff)
                {
                case "1":
                    Buff1Grid.Visibility = Visibility.Visible;
                    Buff1TextBlock.Text  = item.Stack_count;
                    break;

                case "2":
                    Buff2Grid.Visibility = Visibility.Visible;
                    Buff2TextBlock.Text  = item.Stack_count;
                    break;

                case "3":
                    Buff3Grid.Visibility = Visibility.Visible;
                    Buff3TextBlock.Text  = item.Stack_count;
                    break;

                case "4":
                    Buff4Grid.Visibility = Visibility.Visible;
                    Buff4TextBlock.Text  = item.Stack_count;
                    break;

                case "5":
                    Buff5Grid.Visibility = Visibility.Visible;
                    Buff5TextBlock.Text  = item.Stack_count;
                    break;

                case "6":
                    Buff6Grid.Visibility = Visibility.Visible;
                    Buff6TextBlock.Text  = item.Stack_count;
                    break;

                case "7":
                    Buff7Grid.Visibility = Visibility.Visible;
                    Buff7TextBlock.Text  = item.Stack_count;
                    break;

                case "8":
                    Buff8Grid.Visibility = Visibility.Visible;
                    Buff8TextBlock.Text  = item.Stack_count;
                    break;

                case "9":
                    Buff9Grid.Visibility = Visibility.Visible;
                    Buff9TextBlock.Text  = item.Stack_count;
                    break;

                default:
                    break;
                }
            }

            string rankMedalSource = "ms-appx:///Assets/RankMedal/SeasonalRank0-0.png";

            if (HeroPlayerInfo.Rank_tier == null)
            {
            }
            else if (HeroPlayerInfo.Rank_tier[0] == '8')
            {
                rankMedalSource = "ms-appx:///Assets/RankMedal/SeasonalRankTop0.png";
            }
            else if (HeroPlayerInfo.Rank_tier.Length == 2)
            {
                rankMedalSource = string.Format("ms-appx:///Assets/RankMedal/SeasonalRank{0}-{1}.png", HeroPlayerInfo.Rank_tier[0], HeroPlayerInfo.Rank_tier[1]);
            }
            else
            {
            }
            MatchData_RankMedalImage.Source = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri(rankMedalSource));

            for (int i = 0; i < HeroPlayerInfo.Ability_upgrades_arr.Count; i++)
            {
                try
                {
                    AbilityViewModel temp = new AbilityViewModel()
                    {
                        Ability = ConstantsHelper.abilitiesIDDictionary[HeroPlayerInfo.Ability_upgrades_arr[i]].StartsWith("special_bonus") ? "ms-appx:///Assets/Icons/talent.jpg" : string.Format("https://www.dota2.com.cn/images/heroes/abilities/{0}_hp1.png", ConstantsHelper.abilitiesIDDictionary[HeroPlayerInfo.Ability_upgrades_arr[i]])
                    };
                    if (HeroPlayerInfo.Hero_name != "祈求者")
                    {
                        if (i < 16)
                        {
                            temp.ID = (i + 1).ToString();
                        }
                        else if (i == 16)
                        {
                            temp.ID = "18";
                        }
                        else if (i == 17)
                        {
                            temp.ID = "20";
                        }
                        else if (i == 18)
                        {
                            temp.ID = "25";
                        }
                    }
                    else
                    {
                        temp.ID = (i + 1).ToString();
                    }
                    abilityNames.Add(temp);
                }
                catch
                {
                    continue;
                }
            }

            if (HeroPlayerInfo.Account_id == "ID: null")
            {
                IDTextBlock.Visibility = Visibility.Collapsed;
            }

            base.OnNavigatedTo(e);
        }