예제 #1
0
        public static List <TauxDevise> GetTauxDevisesFromAPI(DateTime date)
        {
            //TODO
            //Prevoir le cas où l'API répond pas

            string     stringURL = $"https://api.exchangeratesapi.io/{date:yyyy-MM-dd}?base=EUR";
            WebRequest request   = WebRequest.Create(stringURL);

            request.Method = "GET";
            HttpWebResponse response = null;

            response = (HttpWebResponse)request.GetResponse();


            List <TauxDevise> tauxDevises = new List <TauxDevise>();

            using (Stream stream = response.GetResponseStream())
            {
                StreamReader streamReader = new StreamReader(stream);
                JObject      json         = JObject.Parse(streamReader.ReadToEnd());
                foreach (JProperty rate in (JToken)json["rates"])
                {
                    TauxDevise tauxDevise = new TauxDevise(rate.Name, (float)rate.Value, date);
                    tauxDevises.Add(tauxDevise);
                }

                streamReader.Close();
            }

            return(tauxDevises);
        }
예제 #2
0
        public float CalculateTotalFrais(int note_frais_id, DateTime date)
        {
            try
            {
                DataBaseManagerTauxDevises dataBaseManagerTauxDevises = new DataBaseManagerTauxDevises();


                //Chercher les taux pour le mois
                List <TauxDevise> tauxDevises = dataBaseManagerTauxDevises.GetTauxDevises(date);

                List <Frais> allFrais = GetAllFraisOfNoteFrais(note_frais_id);

                float totalFrais = 0;
                foreach (Frais frais in allFrais)
                {
                    if (frais.devise == "EUR")
                    {
                        totalFrais += frais.montant;
                    }
                    else
                    {
                        TauxDevise tauxDevise = tauxDevises.First(x => x.nom_taux == frais.devise);
                        totalFrais += frais.montant * tauxDevise.taux;
                    }
                }


                return(totalFrais);
            }
            catch (Exception e)
            {
                Console.WriteLine($"Generic Exception Handler: {e}");
                return(-1);
            }
        }
예제 #3
0
        public List<TauxDevise> GetTauxDevises(DateTime date)
        {
            date = date.AddMonths(1).AddDays(-1);

            List<TauxDevise> tauxDeviseList = new List<TauxDevise>();

            this.connection.Open();
            MySqlCommand cmd = this.connection.CreateCommand();
            cmd.CommandText = $"SELECT * FROM taux_devises WHERE date = '{date:yyyy-MM-dd HH:mm:ss}'";
            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        TauxDevise tauxDevise = new TauxDevise(reader.GetString("nom_taux"),
                                                            reader.GetFloat("taux"),
                                                            reader.GetDateTime("date"),
                                                            reader.GetInt32("id"));
                        tauxDeviseList.Add(tauxDevise);
                    }
                }
                else
                {
                    tauxDeviseList = APITauxDevises.GetTauxDevisesFromAPI(date);
                    SetTauxDevises(tauxDeviseList, date);
                }

            }

            this.connection.Close();
            return tauxDeviseList;
        }