public async Task <IActionResult> Speedup(string core, string serialTime, string time)
        {
            var result = new Speedup();

            using (var client = new HttpClient())
            {
                var request = CalculatorService.GetRequestSpeedup(core, serialTime, time);
                var content = new StringContent(request, Encoding.UTF8, "text/xml");
                var action  = "http://tempuri.org/ICalculator/Speedup";

                client.DefaultRequestHeaders.Add("SOAPAction", action);

                using (var response = await client.PostAsync(CalculatorService.Url, content))
                {
                    var asyncstring = await response.Content.ReadAsStringAsync();

                    var soapResponse = Transform.Exec(asyncstring);
                    var serialize    = JsonConvert.DeserializeObject <SpeedupRoot>(soapResponse);

                    result.Calculated = serialize.Envelope.Body.SpeedupResponse.SpeedupResult.Calculated;
                }
            }

            return(Ok(result));
        }
    public void AddPowerup(PowerupType type)
    {
        if (powerups.ContainsKey(type) && type != PowerupType.ULTIMATE)
        {
            powerups[type].AddTime();
            return;
        }

        // usuwanie steerblock powerupa
        if (type != PowerupType.STEERBLOCK && powerups.ContainsKey(PowerupType.STEERBLOCK))
        {
            SteerBlock sb = (SteerBlock)powerups[PowerupType.STEERBLOCK];
            sb.PowerupEnd(this);
            powerups.Remove(PowerupType.STEERBLOCK);
        }

        Powerup thePowerup = null;

        // Tutaj w switch przydalo by sie ogarniac priorytet powerupow
        // np jak masz slowa to sie nie da speedup -> powerupy sie anuluja?

        switch (type)
        {
        case PowerupType.SPEEDUP:
        {
            if (powerups.ContainsKey(PowerupType.SLOWDOWN))
            {
                powerups.Remove(PowerupType.SLOWDOWN);
            }
            Speedup     powerup = new Speedup();
            SpeedupData sd;
            if (powerupsData.ContainsKey(PowerupType.SPEEDUP))
            {
                sd = (SpeedupData)powerupsData[PowerupType.SPEEDUP];
            }
            else
            {
                sd = Resources.Load <SpeedupData>("ScriptableData/SpeedupData");
                powerupsData.Add(PowerupType.SPEEDUP, sd);
            }
            powerup.speedupData = sd;
            powerup.AddTime();
            powerups.Add(PowerupType.SPEEDUP, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.SLOWDOWN:
        {
            if (powerups.ContainsKey(PowerupType.SPEEDUP))
            {
                powerups.Remove(PowerupType.SPEEDUP);
            }
            SlowDown     powerup = new SlowDown();
            SlowDownData sd;
            if (powerupsData.ContainsKey(PowerupType.SLOWDOWN))
            {
                sd = (SlowDownData)powerupsData[PowerupType.SLOWDOWN];
            }
            else
            {
                sd = Resources.Load <SlowDownData>("ScriptableData/SlowdownData");
                powerupsData.Add(PowerupType.SLOWDOWN, sd);
            }
            powerup.slowDownData = sd;
            powerup.AddTime();
            powerups.Add(PowerupType.SLOWDOWN, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.STEERBLOCK:
        {
            SteerBlock     powerup = new SteerBlock();
            SteerBlockData sd;
            if (powerupsData.ContainsKey(PowerupType.STEERBLOCK))
            {
                sd = (SteerBlockData)powerupsData[PowerupType.STEERBLOCK];
            }
            else
            {
                sd = Resources.Load <SteerBlockData>("ScriptableData/SteerBlockData");
                powerupsData.Add(PowerupType.STEERBLOCK, sd);
            }
            powerup.steerBlockData = sd;
            powerup.AddTime();
            powerups.Add(PowerupType.STEERBLOCK, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.GHOST:
        {
            Ghost     powerup = new Ghost();
            GhostData gd;
            if (powerupsData.ContainsKey(PowerupType.GHOST))
            {
                gd = (GhostData)powerupsData[PowerupType.GHOST];
            }
            else
            {
                gd = Resources.Load <GhostData>("ScriptableData/GhostData");
                powerupsData.Add(PowerupType.GHOST, gd);
            }
            powerup.ghostData = gd;
            powerup.AddTime();
            powerups.Add(PowerupType.GHOST, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.ULTIMATE:
        {
            powerups.Remove(PowerupType.ULTIMATE);
            Ultimate     powerup = new Ultimate();
            UltimateData ud;
            if (powerupsData.ContainsKey(PowerupType.ULTIMATE))
            {
                ud = (UltimateData)powerupsData[PowerupType.ULTIMATE];
            }
            else
            {
                ud = Resources.Load <UltimateData>("ScriptableData/UltimateData");
                powerupsData.Add(PowerupType.ULTIMATE, ud);
            }
            powerup.ultimateData = ud;
            powerup.AddTime();
            powerups.Add(PowerupType.ULTIMATE, powerup);
            thePowerup = powerup;
            break;
        }

        case PowerupType.SHIELD:
        {
            thePowerup = new Shield();
            break;
        }

        default:
            Debug.LogError("Unknown PowerupType");
            return;
        }
        thePowerup.PowerupStart(this);
        GameManager.Instance.AddPowerupScore();
    }