Add date of values
This commit is contained in:
@@ -30,19 +30,21 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
|
|||||||
Future<void> submitForm() async {
|
Future<void> submitForm() async {
|
||||||
String fromCurrencyCode = _fromCurrencyController.text.split(" - ")[0];
|
String fromCurrencyCode = _fromCurrencyController.text.split(" - ")[0];
|
||||||
String toCurrencyCode = _toCurrencyController.text.split(" - ")[0];
|
String toCurrencyCode = _toCurrencyController.text.split(" - ")[0];
|
||||||
|
List<String> dateValue = [];
|
||||||
double exchangeRate = 0;
|
double exchangeRate = 0;
|
||||||
await MihCurrencyExchangeRateServices.getCurrencyExchangeValue(
|
await MihCurrencyExchangeRateServices.getCurrencyExchangeValue(
|
||||||
fromCurrencyCode, toCurrencyCode)
|
fromCurrencyCode, toCurrencyCode)
|
||||||
.then((amount) {
|
.then((amount) {
|
||||||
exchangeRate = amount;
|
dateValue = amount;
|
||||||
});
|
});
|
||||||
|
exchangeRate = double.parse(dateValue[1]);
|
||||||
double exchangeValue =
|
double exchangeValue =
|
||||||
double.parse(_fromAmountController.text) * exchangeRate;
|
double.parse(_fromAmountController.text) * exchangeRate;
|
||||||
|
|
||||||
print(
|
print(
|
||||||
"${_fromAmountController.text} | $fromCurrencyCode\n$exchangeValue | $toCurrencyCode");
|
"Date: ${dateValue[0]}\n${_fromAmountController.text} | $fromCurrencyCode\n$exchangeValue | $toCurrencyCode");
|
||||||
displayResult(_fromAmountController.text, fromCurrencyCode, exchangeValue,
|
displayResult(dateValue[0], _fromAmountController.text, fromCurrencyCode,
|
||||||
toCurrencyCode);
|
exchangeValue, toCurrencyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearInput() {
|
void clearInput() {
|
||||||
@@ -52,7 +54,7 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
|
|||||||
_toAmountController.clear();
|
_toAmountController.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayResult(String amount, String fromCurrencyCode,
|
void displayResult(String date, String amount, String fromCurrencyCode,
|
||||||
double exchangeValue, String toCurrencyCode) {
|
double exchangeValue, String toCurrencyCode) {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
@@ -71,6 +73,19 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
|
|||||||
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
|
FittedBox(
|
||||||
|
child: Text(
|
||||||
|
"Values as at $date",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 30,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color:
|
||||||
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class MihCurrencyExchangeRateServices {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Future<double> getCurrencyExchangeValue(
|
static Future<List<String>> getCurrencyExchangeValue(
|
||||||
String fromCurrencyCode,
|
String fromCurrencyCode,
|
||||||
String toCurrencyCode,
|
String toCurrencyCode,
|
||||||
) async {
|
) async {
|
||||||
@@ -48,19 +48,19 @@ class MihCurrencyExchangeRateServices {
|
|||||||
final Map<String, dynamic> jsonResponse = json.decode(response.body);
|
final Map<String, dynamic> jsonResponse = json.decode(response.body);
|
||||||
final Map<String, dynamic>? baseCurrencyData =
|
final Map<String, dynamic>? baseCurrencyData =
|
||||||
jsonResponse[fromCurrencyCode];
|
jsonResponse[fromCurrencyCode];
|
||||||
|
final List<String> dateValue = [];
|
||||||
if (baseCurrencyData != null) {
|
if (baseCurrencyData != null) {
|
||||||
// Access the value for the target currency (e.g., "usd")
|
|
||||||
final dynamic rateValue = baseCurrencyData[toCurrencyCode];
|
final dynamic rateValue = baseCurrencyData[toCurrencyCode];
|
||||||
|
final String date = jsonResponse["date"];
|
||||||
|
|
||||||
if (rateValue is num) {
|
if (rateValue is num) {
|
||||||
// Check if it's a number (int or double)
|
dateValue.add(date);
|
||||||
return rateValue.toDouble();
|
dateValue.add(rateValue.toString());
|
||||||
|
return dateValue;
|
||||||
} else {
|
} else {
|
||||||
// Handle cases where the rate might not be a number or is missing
|
|
||||||
print(
|
print(
|
||||||
'Warning: Rate for $toCurrencyCode in $fromCurrencyCode is not a number or missing.');
|
'Warning: Rate for $toCurrencyCode in $fromCurrencyCode is not a number or missing.');
|
||||||
return 0;
|
return ["Error", "0"];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw Exception(
|
throw Exception(
|
||||||
|
|||||||
Reference in New Issue
Block a user