public ActionResult <IEnumerable <CurrencyResultSet> > GetCurrencyData([FromQuery] string sourcecurrency, [FromQuery] string destinationcurrency, [FromQuery] DateTime?date, [FromQuery] DateTime?todate, [FromQuery] float amount, [FromQuery] bool ishistoric) { CurrencyRateInput input = new CurrencyRateInput() { sourcecurrency = sourcecurrency, destinationcurrency = destinationcurrency, date = date, amount = amount, todate = todate, ishistoric = ishistoric }; var currencylist = _cService.GetCurr(input); if (currencylist == null || currencylist.Count() == 0) { return(NotFound("Exchange rate not found for date provided")); } return(currencylist); }
//get currency list service public List <CurrencyResultSet> GetCurr(CurrencyRateInput input) { SqlDataReader rdr = null; List <CurrencyResultSet> currencyresults = new List <CurrencyResultSet>(); using (SqlConnection conn = new SqlConnection("Server=LENOVOPC;Database=CurrencyConverter;Trusted_Connection=True;MultipleActiveResultSets=True;")) { conn.Open(); SqlCommand cmd = new SqlCommand("[SP_GETRATESBYDATE]", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@Amount", input.amount)); cmd.Parameters.Add(new SqlParameter("@FromCurrency", input.sourcecurrency)); cmd.Parameters.Add(new SqlParameter("@ToCurrency", input.destinationcurrency)); cmd.Parameters.Add(new SqlParameter("@FromDate", input.date)); cmd.Parameters.Add(new SqlParameter("@ToDate", input.todate)); cmd.Parameters.Add(new SqlParameter("@IsHistoric", input.ishistoric)); using (rdr = cmd.ExecuteReader()) { while (rdr.Read()) { CurrencyResultSet result = new CurrencyResultSet() { Date = Convert.ToDateTime(rdr["Date"].ToString()), SourceCurrency = rdr["SourceCurrency"].ToString(), DestinationCurrency = rdr["DestinationCurrency"].ToString(), ConvertedAmount = rdr["ConvertedAmount"].ToString() }; currencyresults.Add(result); } } } return(currencyresults); }