/// <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é"); } }
/// <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); }
/// <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é"); } }
/// <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é"); } }
/// <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); }
/// <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); }
/// <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é"); } }
/// <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);