示例#1
0
        /// <summary>
        /// Télécharge le fichier désiré
        /// et la parse, en remplissant les données
        /// </summary>
        /// <param name="d">Base de donnée, doit être de type InterestRate</param>
        public override void ImportAndParse(Data.Data d, Data.DataRetour Erreur = null)
        {
            // On vérifie que les données soient de type InterestRate
            switch (d.Type)
            {
            case Data.Data.TypeData.InterestRate:

                //On teste le bon ordre des dates
                if (d.End < d.Start)
                {
                    throw new WrongDates(@"La date de fin ne peut être antérieure au début de l'acquisition");
                }

                // pour contenir la liste des entrées incorecte
                List <string> listeErreur = new List <string>();

                // Pour chaque année, on récupère le fichier et on le parse
                for (int i = d.Start.Year; i <= d.End.Year; i++)
                {
                    _CurrentYear = i;
                    string symbol = d.Symbol.First();
                    _Filepath = "EBF_" + symbol + "_" + _CurrentYear + ".csv";

                    Uri siteUri;
                    // exemple d'url voulu : http://www.euribor-ebf.eu/assets/modules/rateisblue/processed_files/hist_EURIBOR_2013.csv

                    siteUri = new Uri("http://www.euribor-ebf.eu/assets/modules/rateisblue/processed_files/hist_" + symbol + "_" + _CurrentYear + ".csv");

                    try
                    {
                        // Télécharge le fichier
                        ImportFile(siteUri);

                        // On indique au parser le symbol courant et le nom du fichier, puis on parse le fichier obtenu
                        Parser.ParserCSV p = (Parser.ParserCSV)_Parser;
                        p.set(CultureInfo.GetCultureInfo("FR"));

                        _Parser.set(_Filepath, symbol);
                        _Parser.ParseFile(d);
                    }
                    catch
                    {
                        listeErreur.Add(symbol);
                    }

                    // On supprime le fichier
                    System.IO.File.Delete(@_Filepath);
                }

                // on renvoie la liste d'erreur
                if (listeErreur.Count != 0)
                {
                    Erreur.SetListeErreur(listeErreur);
                }
                break;

            default:
                throw new Mauvaistype(@"Mauvais Type utilisé");
            }
        }
示例#2
0
        /// <summary>
        /// Crée les fichiers
        /// et le parse, en remplissant les données
        /// </summary>
        /// <param name="d">Base de donnée, DataXML </param>
        public override void ImportAndParse(Data.Data d, Data.DataRetour Erreur = null)
        {
            // Création des fichiers
            string filePath       = "xml.xml";
            string filePathSchema = "Schema/xmlSchema.xsd";

            // Si les fichiers existe,nt alors on les nomme autrement
            int    i        = 0;
            string nameFile = filePath;

            while (System.IO.File.Exists(@nameFile))
            {
                i++;
                nameFile = i + "_" + filePath;
            }
            filePath = nameFile;

            // Fichier XML
            StreamWriter stw = new StreamWriter(filePath);

            stw.Write(contentXML);
            stw.Close();
            WebAPI_final.Models.Constantes.displayDEBUG("Fichier XML créé", 1);

            // Parse
            _Parser = new Parser.ParserXML(filePath, filePathSchema);
            _Parser.ParseFile(d);

            // On supprime les fichiers
            System.IO.File.Delete(@filePath);
        }
示例#3
0
        /// <summary>
        /// Télécharge le fichier désiré
        /// et la parse, en remplissant les données
        /// </summary>
        /// <param name="d">Base de donnée, doit être de type HistoricalData</param>
        public override void ImportAndParse(Data.Data d, Data.DataRetour Erreur = null)
        {
            // On vérifie que les données soient de type historique
            switch (d.Type)
            {
            case Data.Data.TypeData.HistoricalData:

                //On teste le bon ordre des dates
                if (d.End < d.Start)
                {
                    throw new WrongDates(@"La date de E ne peut être antérieure au début de l'acquisition");
                }

                // pour contenir la liste des entrées incorecte
                List <string> listeErreur = new List <string>();
                // Pour chaque symbol, on récupère le fichier et on le parse
                foreach (string symbol in d.Symbol)
                {
                    _Filepath = "Yahoo_" + symbol + "_" + d.Start.ToString("dd-MM-yy") + "_" + d.End.ToString("dd-MM-yy") + ".csv";

                    Uri siteUri;
                    // exemple d'url voulu : http://ichart.finance.yahoo.com/table.csv?s=GOOG&d=5&e=8&f=2013&g=d&a=5&b=8&c=2011&ignore=.csv
                    // http://ichart.finance.yahoo.com/table.csv?s=GOOG&d=5&e=3&f=2014&g=d&a=4&b=2&c=2014&ignore=.csv

                    int moiDebt = d.Start.Month - 1;
                    int moiFin  = d.End.Month - 1;

                    siteUri = new Uri("http://ichart.finance.yahoo.com/table.csv?s=" + symbol
                                      + "&d=" + moiFin + "&e=" + d.End.Day + "&f=" + d.End.Year
                                      + "&g=d" + "&a=" + moiDebt + "&b=" + d.Start.Day + "&c=" + d.Start.Year + "&ignore=.csv");

                    try
                    {
                        // Télécharge le fichier
                        ImportFile(siteUri);

                        // On indique au parser le symbol courant et le nom du fichier, puis on parse le fichier obtenu
                        _Parser.set(_Filepath, symbol);
                        _Parser.ParseFile(d);
                    }
                    catch
                    {
                        listeErreur.Add(symbol);
                    }

                    // On supprime le fichier
                    System.IO.File.Delete(@_Filepath);
                }

                // on renvoie la liste d'erreur
                if (listeErreur.Count != 0)
                {
                    Erreur.SetListeErreur(listeErreur);
                }
                break;

            default:
                throw new Mauvaistype(@"Mauvais Type utilisé");
            }
        }
示例#4
0
        /// <summary>
        /// Télécharge le fichier désiré
        /// et la parse, en remplissant les données
        /// </summary>
        /// <param name="d">Base de donnée, doit être de type HistoricalData</param>
        public override void ImportAndParse(Data.Data d, Data.DataRetour Erreur = null)
        {
            // On vérifie que les données soient de type historique
            switch (d.Type)
            {
            case Data.Data.TypeData.HistoricalData:

                //On teste le bon ordre des dates
                if (d.End < d.Start)
                {
                    throw new WrongDates(@"La date de fin ne peut être antérieure au début de l'acquisition");
                }

                // pour contenir la liste des entrées incorecte
                List <string> listeErreur = new List <string>();
                // Pour chaque symbol, on récupère le fichier et on le parse
                foreach (string symbol in d.Symbol)
                {
                    _Filepath = "Google_" + symbol + ".csv";

                    Uri siteUri;
                    // exemple d'url voulu : https://www.google.com/finance/historical?q=GOOG&startdate=May+8+2011&enddate=Jun+8%2C+2013&num=30&output=csv
                    //https://www.google.com/finance/historical?q=CA.PA&startdate=juin+1+2014&enddate=juin+3+2014&num=30&output=csv

                    siteUri = new Uri("http://www.google.com/finance/historical?q=" + symbol
                                      + "&startdate=" + d.Start.ToString("MMM+d+yyyy")
                                      + "&enddate=" + d.End.ToString("MMM+d+yyyy") + "&num=30&output=csv");

                    try
                    {
                        // Télécharge le fichier
                        ImportFile(siteUri);

                        // On indique au parser le symbol courant et le nom du fichier, puis on parse le fichier obtenu
                        _Parser.set(_Filepath, symbol);
                        _Parser.ParseFile(d);
                    }
                    catch
                    {
                        listeErreur.Add(symbol);
                    }
                    // On supprime le fichier
                    System.IO.File.Delete(@_Filepath);
                }

                // on renvoie la liste d'erreur
                if (listeErreur.Count != 0)
                {
                    Erreur.SetListeErreur(listeErreur);
                }
                break;

            default:
                throw new Mauvaistype(@"Mauvais Type utilisé");
            }
        }
示例#5
0
        /// <summary>
        /// Recherche les taux d'intérêts suivant les données en paramètre
        /// </summary>
        /// <param name="symbol">Nom du symbol à traiter</param>
        /// <param name="start">Date de début</param>
        /// <param name="end">Date de fin</param>
        public WebAPI_final.Models.Data.Data getInterestRate(WebAPI_final.Models.Data.Data.InterestRate symbol, DateTime start, DateTime end, Data.DataRetour dretour)
        {
            WebAPI_final.Models.Constantes.displayDEBUG("start getInterestRate", 0);

            // Création du DataIRate
            WebAPI_final.Models.Data.DataInterestRate d = new WebAPI_final.Models.Data.DataInterestRate(symbol, start, end);

            // Import des données désirées
            WebAPI_final.Models.ImportParse.EBF i = new WebAPI_final.Models.ImportParse.EBF();
            i.ImportAndParse(d, dretour);

            WebAPI_final.Models.Constantes.displayDEBUG("end getInterestRate", 0);

            return(d);
        }
示例#6
0
        /// <summary>
        /// Recherche les taux de change suivant les données en paramètre
        /// </summary>
        /// <param name="symbol">Nom de la monnaie étalon</param>
        /// <param name="columns">Listes des monnaies à comparer à la monnaie étalon</param>
        /// <param name="start">Date de début de sauvegarde des données</param>
        /// <param name="end">Date de fin</param>
        /// <param name="freq">Fréquence de sauvegarde, traitement différent si journalier ou mensuel/annuel</param>
        public WebAPI_final.Models.Data.Data getExchangeRate(
            WebAPI_final.Models.Data.Data.Currency symbol, List <WebAPI_final.Models.Data.Data.Currency> columns,
            DateTime start, DateTime end, WebAPI_final.Models.Data.Data.Frequency freq, Data.DataRetour dretour)
        {
            WebAPI_final.Models.Constantes.displayDEBUG("start getExchangeRate", 0);

            // Création du DataIRate
            WebAPI_final.Models.Data.DataExchangeRate d = new WebAPI_final.Models.Data.DataExchangeRate(symbol, columns, start, end, freq);

            // Import des données désirées
            WebAPI_final.Models.ImportParse.FXTop i = new WebAPI_final.Models.ImportParse.FXTop();
            i.ImportAndParse(d, dretour);

            WebAPI_final.Models.Constantes.displayDEBUG("end getExchangeRate", 0);

            return(d);
        }
示例#7
0
        /// <summary>
        /// Télécharge le fichier désiré
        /// et la parse, en remplissant les données
        /// </summary>
        /// <param name="d">Base de donnée, doit être de type ExchangeRate</param>
        public override void ImportAndParse(Data.Data d, Data.DataRetour Erreur = null)
        {
            // On vérifie que les données soient de type ExchangeRate
            switch (d.Type)
            {
            case Data.Data.TypeData.ExchangeRate:

                //On teste le bon ordre des dates
                if (d.End < d.Start)
                {
                    throw new WrongDates(@"La date de fin ne peut être antérieure au début de l'acquisition");
                }

                // Cast, pour obtenir la fréquence
                Data.DataExchangeRate der     = (Data.DataExchangeRate)d;
                CultureInfo           culture = CultureInfo.GetCultureInfo("EN");

                List <string> list;

                if (der.Freq == Data.Data.Frequency.Daily)
                {
                    list = der.Columns;
                }
                else
                {
                    list = der.Symbol;
                }

                // pour contenir la liste des entrées incorecte
                List <string> listeErreur = new List <string>();
                // Pour chaque symbol, on récupère le fichier et on le parse
                foreach (var symb in list)
                {
                    string[] monnaie = symb.Split('/');

                    //Récupération de l'url
                    //http://fxtop.com/en/historical-exchange-rates.php?A=1&C1=EUR&C2=USD&DD1=1&MM1=1&YYYY1=2012&B=1&P=&I=1&DD2=1&MM21&YYYY2=2013&btnOK=Go%21
                    //http://fxtop.com/en/historical-exchange-rates.php?A=1&C1=EUR&C2=USD&MA=1&DD1=01&MM1=05&YYYY1=2014&B=1&P=&I=1&DD2=01&MM2=06&YYYY2=2014&btnOK=Go%21
                    //http://fxtop.com/en/historical-exchange-rates.php?A=1&C1=ADF&C2=ALL&MA=1&DD1=1&MM1=4&YYYY1=2014&B=1&P=&I=1&DD2=1&MM2=5&YYYY2=2014&btnOK=Go%21
                    string url;

                    if (der.Freq == Data.Data.Frequency.Daily)
                    {
                        url = "http://fxtop.com/en/historical-exchange-rates.php?A=1&C1=" + monnaie[0] + "&C2=" + monnaie[1] + "&DD1=" + der.Start.ToString("dd") + "&MM1=" + der.Start.ToString("MM") + "&YYYY1=" + der.Start.ToString("yyyy") + "&B=1&P=&I=1&DD2=" + der.End.ToString("dd") + "&MM2=" + der.End.ToString("MM") + "&YYYY2=" + der.End.ToString("yyyy") + "&btnOK=Go%21";
                    }
                    else
                    {
                        string choixFreq;

                        if (der.Freq == Data.Data.Frequency.Monthly)
                        {
                            choixFreq = "&MA=1";
                        }
                        else
                        {
                            choixFreq = "&YA=1";
                        }

                        url = "http://fxtop.com/en/historical-exchange-rates.php?A=1&C1=" + monnaie[0] + "&C2=" + monnaie[1] + choixFreq + "&DD1=" + der.Start.ToString("dd") + "&MM1=" + der.Start.ToString("MM") + "&YYYY1=" + der.Start.ToString("yyyy") + "&B=1&P=&I=1&DD2=" + der.End.ToString("dd") + "&MM2=" + der.End.ToString("MM") + "&YYYY2=" + der.End.ToString("yyyy") + "&btnOK=Go%21";
                    }

                    _Filepath = "FxTop_" + monnaie[0] + "_" + monnaie[1] + "_" + der.Freq.ToString()
                                + "_" + der.Start.ToString("dd-MM-yy") + "_" + der.End.ToString("dd-MM-yy") + ".html";
                    Uri siteUri = new Uri(url);

                    try
                    {
                        // Télécharge le fichier
                        ImportFile(siteUri);

                        // On indique au parser le symbol courant et le nom du fichier, puis on parse le fichier obtenu
                        _Parser.set(_Filepath, symb);
                        _Parser.ParseFile(d);
                    }
                    catch
                    {
                        listeErreur.Add(symb);
                    }

                    // On insère les données dans d
                    Parser.ParserGenerique p = (Parser.ParserGenerique)_Parser;
                    DataSet ds = p.getDataSet();
                    insertData(d, ds, symb);

                    // On supprime le fichier
                    System.IO.File.Delete(@_Filepath);
                }

                // on renvoie la liste d'erreur
                if (listeErreur.Count != 0)
                {
                    Erreur.SetListeErreur(listeErreur);
                }
                break;

            default:
                throw new Mauvaistype(@"Mauvais Type utilisé");
            }
        }
示例#8
0
 /// <summary>
 /// Télécharge le fichier désiré
 /// et la parse, en remplissant les données
 /// </summary>
 public abstract void ImportAndParse(Data.Data d, Data.DataRetour Erreur = null);