private void GetCurr() { var mnbService = new MNBArfolyamServiceSoapClient(); var currRequest = new GetCurrenciesRequestBody() { }; var currResponse = mnbService.GetCurrencies(currRequest); var currResult = currResponse.GetCurrenciesResult; var currXml = new XmlDocument(); currXml.LoadXml(currResult); foreach (XmlElement element in currXml.DocumentElement) { for (int i = 0; i < element.InnerText.Length / 3; i++) { string currency; var currChildElement = (XmlElement)element.ChildNodes[i]; currency = currChildElement.InnerText.ToString(); CurrenciesInput.Add(currency); CurrenciesOutput.Add(currency); } } }
public Form1() { InitializeComponent(); var mnbService = new MNBArfolyamServiceSoapClient(); var request = new GetCurrenciesRequestBody() { }; var response = mnbService.GetCurrencies(request); var currencyresult = response.GetCurrenciesResult; var xml = new XmlDocument(); xml.LoadXml(currencyresult); foreach (XmlElement element in xml.DocumentElement) { foreach (XmlNode item in element) { var curr = item.InnerText; Currencies.Add(curr); } } comboBox1.DataSource = Currencies; comboBox1.SelectedItem = "EUR"; RefreshData(); }
private void mnbDownload_Click(object sender, RibbonControlEventArgs e) { //Check MNB service if (_mnbService.State.ToString() != "Created") { _mnbService = new MNBArfolyamServiceSoapClient(); _mnbService.Open(); } //Log to the database LogDatabaseDataSet.LogRow newLogRow = _logDatabaseDataSet.Log.NewLogRow(); newLogRow.Név = Environment.UserName; newLogRow.TimeStamp = DateTime.Now; _logDatabaseDataSet.Log.Rows.Add(newLogRow); _logTableAdapter.Update(_logDatabaseDataSet.Log); //Get currencies xml and map it to its model GetCurrenciesResponseBody currenciesXML = _mnbService.GetCurrencies(new GetCurrenciesRequestBody()); MNBCurrencies currenciesModel = (MNBCurrencies)_operatorService.XmlToModel <MNBCurrencies>(currenciesXML.GetCurrenciesResult); //Exchange rates query config GetExchangeRatesRequestBody getExchangeRatesRequestBody = new GetExchangeRatesRequestBody { startDate = "2015.01.01.", endDate = "2020.04.01.", currencyNames = string.Join(",", currenciesModel.Currencies) }; //Get exchange rates xml and map it to its model GetExchangeRatesResponseBody exchangeRatesXML = _mnbService.GetExchangeRates(getExchangeRatesRequestBody); MNBExchangeRates exchangeRatesModel = (MNBExchangeRates)_operatorService.XmlToModel <MNBExchangeRates>(exchangeRatesXML.GetExchangeRatesResult); //Create datatable from model and import it to Excel then save it DataTable dataTable = _operatorService.ModelToDataTable(exchangeRatesModel, currenciesModel); DataSet dataSet = new DataSet(); dataSet.Tables.Add(dataTable); _operatorService.DataSetToExcel(dataSet); //Format worksheet and save the workbook to the user's documents Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet; activeWorksheet.Range["A2:CV2"].NumberFormatLocal = ""; activeWorksheet.Range["B3:CV10000"].NumberFormatLocal = "0"; activeWorksheet.Range["A3:A10000"].NumberFormatLocal = "éééé\\.hh\\.nn\\."; string savePath = Directory.GetCurrentDirectory() + "\\arfolyam-letoltes.xlsx"; Globals.ThisAddIn.Application.ActiveWorkbook.SaveCopyAs(savePath); _mnbService.Close(); }
private void CurrencyList() { var MNBservice = new MNBArfolyamServiceSoapClient(); var request = new GetCurrenciesRequestBody(); var response = MNBservice.GetCurrencies(request); var result = response.GetCurrenciesResult; var xml = new XmlDocument(); xml.LoadXml(result); foreach (XmlElement element in xml.DocumentElement.ChildNodes[0]) { var currency = element.InnerText; Currencies.Add(currency); } cbCurrency.DataSource = Currencies; }
/// <summary> /// Use MNB Client to retrieve Available Currencies /// </summary> private void GetAndProcessAvailableCurrencies() { try { var currencyResponse = client.GetCurrencies(new GetCurrenciesRequestBody()).GetCurrenciesResult; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(currencyResponse); XmlNodeList nodes = xmlDoc.SelectNodes(MNB_CURRENCIES_PER_CURRENCIES_PER_CURR); foreach (XmlNode node in nodes) { // Skip if node is null or empty if (string.IsNullOrWhiteSpace(node.InnerText)) { continue; } CurrencyWrapper currencyWrapper = new CurrencyWrapper() { CurrencyName = node.InnerText }; bool currencyAlreadyPresent = CurrenciesRetrieved.Any(curr => curr.CurrencyName == node.InnerText); if (!currencyAlreadyPresent) { CurrenciesRetrieved.Add(currencyWrapper); } } } catch (XmlException) { ShowErrorMessage("Could not parse the response from MNB while querying available currencies"); } catch (System.Xml.XPath.XPathException e) { ShowErrorMessage($"XML structure is inconsistent with assumption. Could not retrieve structure of {MNB_CURRENCIES_PER_CURRENCIES_PER_CURR}"); } catch (Exception e) { ShowErrorMessage(e.Message); } }
private void GetCurrencies() { var mnbService = new MNBArfolyamServiceSoapClient(); var request = new GetCurrenciesRequestBody(); var response = mnbService.GetCurrencies(request); var result = response.GetCurrenciesResult; var xml = new XmlDocument(); xml.LoadXml(result); foreach (XmlElement element in xml.DocumentElement) { var rate = new RateData(); Rates.Add(rate); var childElement = (XmlElement)element.ChildNodes[0]; rate.Currency = childElement.GetAttribute("curr"); } }
private void getExchangeRates() { var mnbService = new MNBArfolyamServiceSoapClient(); var request = new GetCurrenciesRequestBody() { }; var response = mnbService.GetCurrencies(request); var result = response.GetCurrenciesResult; var xml = new XmlDocument(); xml.LoadXml(result); int sorszam = 0; //ha ide 3-at írnék, akkor a HUF-t be se olvassa while (sorszam + 2 < xml.DocumentElement.InnerText.Length) //data-nál alkalmazott foreach csak egy elemet számít, HUF után kiugrik a ciklusból, ez végigmegy a teljes listán, még ha nem is szép megoldás { string curr; curr = (xml.DocumentElement.InnerText[sorszam]).ToString() + (xml.DocumentElement.InnerText[sorszam + 1]).ToString() + (xml.DocumentElement.InnerText[sorszam + 2]).ToString(); Currencies.Add(curr); sorszam += 3; } comboBox1.DataSource = Currencies; }
private void FillDataToExcel(Excel.Worksheet sheet, MNBArfolyamServiceSoapClient soapClient) //Fill excel worksheet { GetCurrenciesRequestBody getCurrenciesBody = new GetCurrenciesRequestBody(); GetExchangeRatesRequestBody getRatesBody = new GetExchangeRatesRequestBody(); var range = sheet.get_Range("A1", "A1"); var currencies = soapClient.GetCurrencies(getCurrenciesBody); int DayID = 0, countRates = 0; string xmlResult = currencies.GetCurrenciesResult; DataTable table = XmlToDataTable(xmlResult, 1); DataTable dataRates = new DataTable(); DataTable dataDays = new DataTable(); List <string> currenciesList = new List <string>(); ((Excel.Range)range.Cells[1, 1]).Value = "Dátum/ISO"; ((Excel.Range)range.Cells[2, 1]).Value = "Egység"; //Fill and get all currencies// int columnIndex = 2; foreach (DataRow items in table.Rows) { ((Excel.Range)range.Cells[1, columnIndex]).Value = items[0]; currenciesList.Add(items[0].ToString()); columnIndex++; } ////////////////////////////// //Fill days// var exchRates = soapClient.GetExchangeRates(getRatesBody); xmlResult = exchRates.GetExchangeRatesResult; table = XmlToDataTable(xmlResult, 0); columnIndex = 3; foreach (DataRow item in table.Rows) { ((Excel.Range)range.Cells[columnIndex, 1]).Value2 = item[0]; columnIndex++; } ///////////// //Fill Rates// getRatesBody = new GetExchangeRatesRequestBody(); dataRates = new DataTable(); dataDays = new DataTable(); for (int k = 0; k < currenciesList.Count; k++)//Loop all currencies and fill rates value { //if (k > 2) break; Set how many item will appaer range.Cells[1, k + 2].Select(); DayID = 0; countRates = 0; columnIndex = 3; getRatesBody.currencyNames = currenciesList[k]; exchRates = soapClient.GetExchangeRates(getRatesBody); xmlResult = exchRates.GetExchangeRatesResult; dataRates = XmlToDataTable(xmlResult, 1); dataDays = XmlToDataTable(xmlResult, 0); if (dataRates != null) { ((Excel.Range)range.Cells[2, k + 2]).Value = dataRates.Rows[countRates][0]; //Fill unit while (countRates < dataRates.Rows.Count) { if (dataRates.Rows[countRates][3].ToString() == dataDays.Rows[DayID][0].ToString()) //Date ID check { ((Excel.Range)range.Cells[columnIndex, k + 2]).Value = dataRates.Rows[countRates][2].ToString().Replace(",", "."); //Change string format columnIndex++; DayID++; countRates++; } else { columnIndex++; DayID++; } } } } }