Esempio n. 1
0
 private static void ValidateEnergyConsumption()
 {
     if (_calculations.GetEnergyConsumption(_ship) > _ship.Energy)
     {
         _modelState.AddModelError("EnergyConsumptionOverdraft",
                                   "The energy consumption of the ship is too high");
     }
 }
Esempio n. 2
0
        public IActionResult Wings(WingsViewModel viewModel)
        {
            viewModel.AvailableWings   = _spaceTransitAuthority.GetWings();
            viewModel.AvailableWeapons = _spaceTransitAuthority.GetWeapons();

            if (viewModel.SelectedWeapons == null || viewModel.SelectedWeapons.Length < viewModel.SelectedWings.Length)
            {
                viewModel.SelectedWeapons = new List <int> [viewModel.SelectedWings.Length];
            }

            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var ship = CreateShip(viewModel);

            var license = (Licence)int.Parse(User.Claims.FirstOrDefault(claim => claim.Type == "License")?.Value ?? string.Empty);

            Validation.ValidateShip(ModelState, ship, _calculations, viewModel.MaximumTakeoffMass, license);

            if (ModelState.ErrorCount > 0)
            {
                return(View(viewModel));
            }

            return(View("Overview", new OverviewViewModel
            {
                Ship = ship,
                Weight = _calculations.GetShipWeight(ship),
                EnergyConsumption = _calculations.GetEnergyConsumption(ship),
                MaximumTakeoffMass = viewModel.MaximumTakeoffMass,
                HullId = viewModel.HullId,
                EngineId = viewModel.EngineId,
                SelectedWings = viewModel.SelectedWings,
                SelectedWeapons = viewModel.SelectedWeapons,
            }));
        }