Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        /// <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);
            }
        }
Esempio n. 6
0
        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");
            }
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
            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++;
                            }
                        }
                    }
                }
            }