/// <summary> /// Converts input temperature value to new value unit based on the given conversion unit input /// </summary> /// <param name="request"></param> /// <returns></returns> public double ConvertTemperature(TemptureConversionRequest request) { try { _logger.LogInformation($"Request object {request}"); return(request.ConversionUnit switch { TemperatureUnit.CelsiusToFahrenheit => (1.8 * request.Value) + 32, TemperatureUnit.CelsiusToKelvin => request.Value + 273.15, TemperatureUnit.FahrenheitToCelsius => (request.Value - 32) / 1.8, TemperatureUnit.FahrenheitToKelvin => ((request.Value - 32) / 1.8) + 273.15, TemperatureUnit.KelvinToCelsius => request.Value - 273.15, TemperatureUnit.KelvinToFahrenheit => (request.Value - 273.15) * 1.8 + 32, _ => request.Value, }); }
public IActionResult Get([FromQuery] TemptureConversionRequest request) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var convertedValue = _temperatureConversionService.ConvertTemperature(request); return(Ok(convertedValue)); } catch (Exception ex) { _logger.LogError($"Error occured while converting temperature. Error - {ex.Message}\n {ex.StackTrace}"); return(StatusCode(StatusCodes.Status500InternalServerError)); } }