Ejemplo n.º 1
0
        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);
        }