Example #1
0
        protected override async Task ReadStateAsync()
        {
            await base.ReadStateAsync();

            _battleId = this.GetPrimaryKeyLong();
            _battle   = await _apiClient.GetBattleAsync(_battleId);
        }
Example #2
0
        public void EditBattle(BattleDTO dto)
        {
            var battle = _unitOfWork.GetRepository <Battle>()
                         .GetAll()
                         .Single(b => b.Id == dto.Id);

            _mapper.Map(dto, battle);
            _unitOfWork.SaveChanges();
        }
Example #3
0
        public async Task <IActionResult> AttackAsync([FromBody] BattleDTO battleDTO)
        {
            var atkCountry = await _userService.GetCountryByUserID(User.Identity.Name);

            battleDTO.IdAtt = atkCountry.ID;

            await _battleService.SendAllTypesToAttack(battleDTO);

            return(Ok());
        }
Example #4
0
        public void AddBattle(BattleDTO dto)
        {
            var battle = new Battle();

            _mapper.Map(dto, battle);

            _unitOfWork.GetRepository <Battle>().Add(battle);

            _unitOfWork.SaveChanges();
        }
Example #5
0
        public async Task SendAllTypesToAttack(BattleDTO battleDto)
        {
            foreach (UnitDTO unit in battleDto.Army)
            {
                UnitDTOValidator unitValidator    = new UnitDTOValidator();
                ValidationResult validatorResults = unitValidator.Validate(unit);

                if (!validatorResults.IsValid)
                {
                    foreach (var failure in validatorResults.Errors)
                    {
                        throw new HttpResponseException {
                                  Status = 400, Value = failure.ErrorMessage
                        };
                    }
                }
            }
            if (!battleDto.Army.Any(u => u.UnitTypeID == UnitData.General.ID))
            {
                throw new HttpResponseException {
                          Status = 400, Value = "A küldött csapat nem tartalmaz Hadvezért"
                }
            }
            ;

            var attackingCountry = await _context.Countries.FirstOrDefaultAsync(c => c.ID == battleDto.IdAtt);

            var defendingCountry = await _context.Countries.FirstOrDefaultAsync(c => c.ID == battleDto.IdDef);

            if (attackingCountry == null)
            {
                throw new HttpResponseException {
                          Status = 400, Value = "Támadó ország nem található"
                };
            }
            if (defendingCountry == null)
            {
                throw new HttpResponseException {
                          Status = 400, Value = "Védekező ország nem található"
                };
            }

            foreach (UnitDTO unitDto in battleDto.Army)
            {
                await SendUnitsOfTypeToAttack(attackingCountry, defendingCountry, unitDto.UnitCount, unitDto.UnitTypeID);
            }

            await _context.SaveChangesAsync();
        }