public IHttpActionResult Post() { var req = Request.Content.ReadAsStreamAsync().Result; var body = new StreamReader(req).ReadToEnd(); dynamic json = JsonConvert.DeserializeObject(body); var parameters = json.result.parameters; var userId = MessageHandler.SenderId; var userHandler = new UserHandler(); if ((string)json.result.action == "routes") { var origin = (string)parameters["origin"]; var dest = (string)parameters["destination"]; var currency = userHandler.GetCurrency(userId) ?? "USD"; string currencyCulture; Currency.currencies.TryGetValue(currency, out currencyCulture); RoutesHandler.EntryPoint(origin, dest, currencyCulture ?? "chr-Cher-US"); return(Ok()); } else if ((string)json.result.action == "setCurrency") { var currency = (string)parameters["currency"]; var newCurrency = userHandler.SetCurrency(userId, currency); var message = !string.IsNullOrEmpty(newCurrency) ? $"Currency updated to {newCurrency} ({Currency.CurrencyNames[newCurrency]})" : $"Sorry but {currency} is not currently supported :/. Try again with another one."; MessageHandler.SendTextMessage(message); return(Ok()); } else if ((string)json.result.action == "showSaved") { var attr = (string)parameters["attr"]; ShowHandler.EntryPoint(userId, attr); return(Ok()); } return(Ok()); }