public async Task DataBaseSaveCurs_Ok_Test() { IConfiguration config = SU.GetConfiguration(); ExchangeRatesDdContext dbContext = new ExchangeRatesDdContext(config, SU.GetLogger <ExchangeRatesDdContext>()); DbWorker db = new DbWorker(config, SU.GetLogger <DbWorker>(), dbContext); Valute saveValute = new Valute() { CharCode = "TEST_1", Name = "TEST_1", Nominal = 10, Value = 10.1m }; bool result = await db.StoreCurrencyAsync(new ValCurs() { Date = DateTime.Today.AddYears(-100), Name = "TEST_0", Valute = new List <Valute>() { saveValute } }); Assert.True(result); IQueryable <ExchangeRates> restoreValute = dbContext.ExchangeRates.Where(valute => valute.Name == saveValute.Name && valute.Value == saveValute.Value && saveValute.Nominal == saveValute.Nominal); Assert.True(restoreValute.Any()); dbContext.ExchangeRates.Remove(restoreValute.Single()); dbContext.SaveChanges(); }
private ValCurs ParseXmlToValCurs(string xml) { ValCurs result = new ValCurs(); XDocument srcTree = XDocument.Parse(xml); result.Date = (string)srcTree.Element("ValCurs").Attribute("Date").Value; result.Name = (string)srcTree.Element("ValCurs").Attribute("name").Value; result.Valutes = new List <Valute>(); foreach (var item in srcTree.Descendants("Valute")) { Valute valute = new Valute(); valute.ID = (string)item.Attribute("ID").Value; valute.NumCode = int.Parse(item.Element("NumCode").Value); valute.CharCode = (string)item.Element("CharCode").Value; valute.Nominal = int.Parse(item.Element("Nominal").Value); valute.Name = (string)item.Element("Name").Value; valute.Value = (float)Convert.ToDouble(item.Element("Value").Value); result.Valutes.Add(valute); } return(result); }
static public void Create_Vklad(Client client, Valute valute, Prog prog, decimal Sum, Schet Out, Bank bank) { Schet In = new Schet(); In.Nschet = 1; In.Data_sozd = DateTime.Now; In.Prog = prog; In.Sum = 0; In.ValuteID = valute.ID; In.ClientID = client.ID; In.Status = true; bank.Schet.Add(In); bank.SaveChanges(); Operacii operacii = new Operacii(); operacii.ID = 1; operacii.Date = DateTime.Now; operacii.StatusID = bank.Status.Where(i => i.Name == "Выполнена").FirstOrDefault().ID; operacii.OutID = Out.Nschet; operacii.InID = In.Nschet; operacii.Tip_operaziiID = bank.Tip_operacii.Where(i => i.Name == "Создание вклада").FirstOrDefault().ID; if (In.ValuteID == Out.ValuteID) { operacii.Sum_In = operacii.Sum_Out = Sum; Out.Sum -= Sum; In.Sum += Sum; } else { perevod(Out, In, Sum, bank, operacii); } bank.Operacii.Add(operacii); bank.SaveChanges(); }
public async Task UpdateCache(object valute = null, DateTime dateFrom = default(DateTime)) { Valute val = valute as Valute; if (val == null) { throw new ArgumentNullException("valute"); } try { var httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromSeconds(5); var uri = this.GenerateUri(val, dateFrom == default(DateTime) ? DateTime.Now.AddMonths(-1) : dateFrom, DateTime.Now); HttpResponseMessage response = await httpClient.GetAsync(uri).ConfigureAwait(false); var data = await response.Content.ReadAsByteArrayAsync().ConfigureAwait(false); await this.WriteFile(string.Concat(val.ID, dateFrom.ToString("_ddMMyyyy"), ".xml"), data).ConfigureAwait(false); if (CashUpdated != null) { CashUpdated(this, null); } } catch (Exception ex) { Debug.WriteLine(string.Format("{0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace)); } }
private FinancialQuote Cast(JsonElement jsonValute) { var id = jsonValute.GetProperty("ID").GetString(); var valute = new Valute { ID = id, Name = jsonValute.GetProperty("Name").GetString(), CharCode = jsonValute.GetProperty("CharCode").GetString(), NumCode = jsonValute.GetProperty("NumCode").GetString() }; var quotation = new Quotation { ValuteID = id }; if (jsonValute.GetProperty("Nominal").TryGetInt32(out var nominal)) { quotation.Nominal = nominal; } if (jsonValute.GetProperty("Value").TryGetDecimal(out decimal value)) { quotation.Value = value; } return(new FinancialQuote { Valute = valute, Quotation = quotation }); }
public ValuteBLL(Valute valute) { ID = valute.ID; Name = valute.Name; Otnoshenie_k_rub_prod = valute.Otnoshenie_k_rub_prod; Otnoshenie_k_rub_pok = valute.Otnoshenie_k_rub_pok; }
public Valute GetCourse(DateTime date, string currencyCode) { DataSet ds = Cbr.GetCursOnDate(date); if (ds == null) { throw new ArgumentNullException("ds", "Сервис вернул null"); } if (string.IsNullOrEmpty(currencyCode)) { throw new ArgumentNullException("currencyCode", "currencyCode не может быть null"); } DataTable dt = ds.Tables["ValuteCursOnDate"]; DataRow[] rows = dt.Select(string.Format("VchCode=\'{0}\'", currencyCode)); if (rows.Length > 0) { var valute = new Valute(); if (decimal.TryParse(rows[0]["Vcurs"].ToString(), out decimal resultCourse) && (int.TryParse(rows[0]["Vnom"].ToString(), out int resultNominal))) { valute.Curse = resultCourse; valute.Nominal = resultNominal; valute.Name = rows[0]["Vname"].ToString(); return(valute); } throw new InvalidCastException("От службы ожидалось значение курса валют."); } throw new KeyNotFoundException("Для заданной валюты не найден курс."); }
private Uri GenerateUri(Valute valute, DateTime starDate, DateTime endDate) { var startString = starDate.ToString("dd'/'MM'/'yyyy"); var endString = endDate.ToString("dd'/'MM'/'yyyy"); var query = string.Format("date_req1={0}&date_req2={1}&VAL_NM_RQ={2}", startString, endString, valute.ID); return(new Uri("http://www.cbr.ru/scripts/XML_dynamic.asp?" + query)); }
public void UPD(Valute valute) { Valute v = db.Valute.Find(valute.ID); v.Name = valute.Name; v.Otnoshenie_k_rub_pok = valute.Otnoshenie_k_rub_pok; v.Otnoshenie_k_rub_prod = valute.Otnoshenie_k_rub_prod; }
public Task <QouteCurs> GetResponse(object valute = null, DateTime dateFrom = default(DateTime)) { Valute val = valute as Valute; if (val == null) { throw new ArgumentNullException("valute"); } return(this.GetValuteQoutesResponce(val, dateFrom)); }
private void View_SelectedHistory(object sender, EventArgs e) { checkHistory = true; MainView.Click_SelectedHistory(out _selectedHistoryItem); _selectedValueLeft = _selectedHistoryItem.FirstValue; _selectedValuteRight = _selectedHistoryItem.SecondValute; _selectedValueRight = _selectedHistoryItem.SecondValue; _selectedValuteLeft = _selectedHistoryItem.FirstValute; checkHistory = false; }
public ItemViewModel(Valute selectedItem, IRepositoryCache <QouteCurs> dataSource) { _selectedItem = selectedItem; _selectedDate = DateTime.Now.AddMonths(-1); _dataSource = dataSource; _name = selectedItem.Name; _charCode = selectedItem.CharCode; _id = selectedItem.ID; _nominal = selectedItem.Nominal; _numCode = selectedItem.NumCode; _value = selectedItem.Value; this._dataSource.CashUpdated += _dataSource_CashUpdated; this.UpdateQoutesAsync(); }
static async Task Main(string[] args) { Console.WriteLine("Start!"); Valute valute = new Valute( "R01820", "392", "JPY", 100, "Японских иен", 66.9191, 66.5617); _valuteRepository.Add(valute); }
public static void FeelBigTable() { string uri = string.Empty; DateTime date = DateTime.Now; using (SqlConnection connection = new SqlConnection(@"Data source = KYLAK-ПК;" + "Integrated security = true; Initial Catalog = ValuteTable")) { connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; while (date <= DateTime.Now) { uri = "http://www.cbr.ru/scripts/XML_daily.asp?date_req="; uri += date.ToShortDateString(); WebRequest req = WebRequest.Create(uri); req.Timeout = int.MaxValue; WebResponse response = req.GetResponse(); string xml = string.Empty; using (Stream myReader = response.GetResponseStream()) { using (StreamReader MyNewReader = new StreamReader(myReader)) { xml = MyNewReader.ReadToEnd(); } } XDocument xdoc = XDocument.Parse(xml); var el = xdoc.Element("ValCurs").Elements("Valute"); foreach (XElement Valute in el) { command.CommandText = $@" INSERT INTO dbo.ValuteTable1 (Nominal, Rate, CharCode, RateDate) VALUES( {Valute.Element("Nominal").Value}, {Valute.Element("Value").Value.Replace(",", ".")}, '{Valute.Element("CharCode").Value}', '{date}' ) "; command.ExecuteNonQuery(); } date = date.AddDays(1); } connection.Close(); } }
public static void InitDictionary() { string uri = "http://www.cbr.ru/scripts/XML_daily.asp?date_req="; WebClient client = new WebClient(); Encoding win1251 = Encoding.GetEncoding("windows-1251"); UTF8Encoding utf = new UTF8Encoding(); Byte[] encodedBytes = win1251.GetBytes(uri); uri = utf.GetString(encodedBytes); var xml = client.DownloadString(uri); XDocument xdoc = XDocument.Parse(xml); var el = xdoc.Element("ValCurs").Elements("Valute"); if (!object.ReferenceEquals(el, null) && el.Count() > 0) { using (SqlConnection connection = new SqlConnection(@"Data source = KYLAK-ПК;" + "Integrated security = true; Initial Catalog = ValuteTable")) { connection.Open(); SqlCommand command = new SqlCommand(); command.Connection = connection; try { foreach (XElement Valute in el) { command.CommandText = $@" INSERT INTO dbo.Valute (ValuteId, ValuteName, CharCode) VALUES( NEWID(), '{Valute.Element("Name").Value}', '{Valute.Element("CharCode").Value}' ) "; command.ExecuteNonQuery(); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.InnerException?.Message); } finally { connection.Close(); } } } }
public MainPresenter(IMainView mainView, IValutesService valutesService, ILoggerRecording lg) { logger = lg; MainView = mainView; _valutesLeft = new BindingList <Valute> { new Valute { CharCode = "RUS", Nominal = 1, Name = "Российский рубль", NumCode = 0, Value = "1", } }; MainView.ValueLeft = 1.0; MainView.ValueRight = 1.0; this.valutesService = valutesService; var valsLeft = valutesService.GetValutes("./Content/daily_utf8.xml"); List <Valute> buf = _valutesLeft.Union(valsLeft.Valutes).ToList(); _valutesLeft = new BindingList <Valute>(buf);; _valutesRight = new BindingList <Valute>(_valutesLeft); _selectedValuteLeft = _valutesLeft[0]; _selectedValuteRight = _valutesLeft[0]; MainView.ListBoxValuteLeft_Add(_valutesLeft); MainView.ListBoxValuteRight_Add(_valutesRight); MainView.ListBoxHistory_Add(history.Histories); MainView.OpenChart += View_OpenChart; MainView.OpenSum += View_OpenSum; MainView.OpenEdit += View_OpenEdit; MainView.SelectedValuteLeft += View_SelectedValuteLeft; MainView.SelectedValuteRight += View_SelectedValuteRight; MainView.TextChangedLeft += View_TextChangedLeft; MainView.TextChangedRight += View_TextChangedRight; MainView.SelectedHistory += View_SelectedHistory; logger.log("Открытие Программы"); MainView.Show(); }
protected override void OnNavigatedTo(NavigationEventArgs e) { Valute selectValute = (Valute)e.Parameter; ConvertResult convertResult = new ConvertResult(); //если значение активной кнопки равно первой валюте - изменяем значение второй валюты if (Variables.activeButton == ChangeCurrency1.Name) { Currency1CharCode.Text = selectValute.CharCode; Variables.currency1 = selectValute; Currency2.Text = convertResult.Result(Currency1.Text, Currency2.Text, Variables.currency1, Variables.currency2); Currency1.SelectionStart = Currency1.Text.Length; } if (Variables.activeButton == ChangeCurrency2.Name) { Currency2CharCode.Text = selectValute.CharCode; Variables.currency2 = selectValute; Currency1.Text = convertResult.Result(Currency2.Text, Currency1.Text, Variables.currency2, Variables.currency1); Currency2.SelectionStart = Currency2.Text.Length; } }
public static Valute GetValute(string valuteId) { Valute valute = new Valute { Id = valuteId }; if (valuteId != "RUB") { string URI = "https://www.cbr-xml-daily.ru/daily_json.js"; JObject o = JObject.Parse(SendRequest.SendingRequest(URI)); valute.Value = (decimal)o.SelectToken($"Valute.{valuteId}.Value"); valute.Nominal = (int)o.SelectToken($"Valute.{valuteId}.Nominal"); } else { valute.Value = 1; valute.Nominal = 1; } return(valute); }
public async Task <QouteCurs> GetValuteQoutesResponce(Valute valute, DateTime dateFrom = default(DateTime)) { try { var stream = await ReadFile(string.Concat(valute.ID, dateFrom.ToString("_ddMMyyyy"), ".xml")).ConfigureAwait(false); XmlReader xr = XmlReader.Create(stream); var serializer = new XmlSerializer(typeof(QouteCurs)); return((QouteCurs)serializer.Deserialize(xr)); } catch (FileNotFoundException fileNotFoundException) { this.UpdateCache(valute, dateFrom).ConfigureAwait(false); return(null); } catch (Exception ex) { Debug.WriteLine(string.Format("{0}{1}{2}", ex.Message, Environment.NewLine, ex.StackTrace)); } return(null); }
public ActionResult TroskoviCreate(Troskovi tr) { try { if (ModelState.IsValid) { int id = int.Parse(TempData["id_rez"].ToString()); tr.id_rez = id; // izračun iznos u domaćoj valuti Valute val = (from v in Db.Valute where v.id_val == tr.id_val select v).FirstOrDefault(); decimal par = (from p in Db.vTecajna where p.sifra_valute == val.Sifra select p.koef_srednji).FirstOrDefault (); if (par == 0) { tr.IznosKM = tr.Iznos; } else { tr.IznosKM = par * tr.Iznos; } Db.Troskovi.AddObject(tr); Db.SaveChanges(); TempData.Remove("user"); TempData.Remove("id_rez"); // slanje email obavijesti za odgovornu osobu u return(RedirectToAction("ZapisnikPage", new { id = tr.id_rez })); } return(View(tr)); } catch (Exception ex) { return(Error(ex.ToString())); } }
private FinancialQuote GetRUB() { var valute = new Valute { ID = string.Empty, Name = "Российский рубль", CharCode = "RUB", NumCode = string.Empty }; var quotation = new Quotation { ValuteID = string.Empty, Nominal = 1, Value = 1 }; return(new FinancialQuote { Valute = valute, Quotation = quotation }); }
private async Task Initialize() // задаем первоначальные параметры { await Task.Delay(1000); //Ожидание, чтобы покрутился экран заставки allValutes = new CBRDaily(); allValutes = await allValutes.GetValutes(); // загружаем курс валют flag = true; leftOrRight = ""; LeftClickCommand = new RelayCommand(() => // если происходит выбор смены левой валюты, то "указатель" на валюту меняем соответвественно { leftOrRight = "L"; }); RightClickCommand = new RelayCommand(() => { leftOrRight = "R"; }); // первоначальное отображение leftValute = allValutes.Valute["RUB"]; rightValute = allValutes.Valute["USD"]; }
static public void Create_Schet(Client client, Valute valute, Bank bank) { Schet schet = new Schet(); schet.Nschet = 1; schet.Data_sozd = DateTime.Now; schet.ProgID = null; schet.Sum = 0; schet.ValuteID = valute.ID; schet.ClientID = client.ID; schet.Status = true; bank.Schet.Add(schet); bank.SaveChanges(); Operacii operacii = new Operacii(); bank.SaveChanges(); operacii.ID = 1; operacii.Date = DateTime.Now; operacii.StatusID = bank.Status.Where(i => i.Name == "Выполнена").FirstOrDefault().ID; operacii.OutID = schet.Nschet; operacii.Tip_operaziiID = bank.Tip_operacii.Where(i => i.Name == "Создание счёта").FirstOrDefault().ID; bank.Operacii.Add(operacii); bank.SaveChanges(); }
public void ADD(Valute valute) { db.Valute.Add(valute); }
public ExchangeRateInfo GetValute(ExchangeRateResponseData exchangeRateResponseData, Valute key) { var valuteKey = key.ToString("G"); if (exchangeRateResponseData.Valute.ContainsKey(valuteKey)) { return(exchangeRateResponseData.Valute[valuteKey]); } else { return(new ExchangeRateInfo()); } //TODO писать в лог }
static public void Create_Kredit(Schet schet, Prog prog, decimal Sum, Bank bank, Valute valute, int client) { bank.Prog.Add(prog); bank.SaveChanges(); Schet schet1 = new Schet(); schet1.ClientID = client; schet1.Nschet = 1; schet1.Data_sozd = DateTime.Now; schet1.ProgID = prog.ID; schet1.Sum = 0; schet1.Status = false; schet1.ValuteID = valute.ID; bank.Schet.Add(schet1); bank.SaveChanges(); Operacii operacii = new Operacii(); operacii.ID = 1; operacii.Date = DateTime.Now; operacii.StatusID = bank.Status.Where(i => i.Name == "Ожидает выполнения").FirstOrDefault().ID; operacii.OutID = schet1.Nschet; operacii.InID = schet.Nschet; operacii.Tip_operaziiID = bank.Tip_operacii.Where(i => i.Name == "Создание кредита").FirstOrDefault().ID; operacii.Sum_In = operacii.Sum_Out = Sum; bank.Operacii.Add(operacii); bank.SaveChanges(); }
public ActionResult Index() { //Инициализируем объекта типа XmlTextReader и //загружаем XML документ с сайта центрального банка XmlTextReader reader = new XmlTextReader("http://www.nbrb.by/Services/XmlExRates.aspx"); //В эти переменные будем сохранять куски XML //с определенными валютами (Euro, USD) List <Valute> valutes = new List <Valute>(); string XML = ""; //Перебираем все узлы в загруженном документе while (reader.Read()) { //Проверяем тип текущего узла switch (reader.NodeType) { //Если этого элемент Valute, то начинаем анализировать атрибуты case XmlNodeType.Element: if (reader.Name == "Currency") { if (reader.HasAttributes) { //Метод передвигает указатель к следующему атрибуту while (reader.MoveToNextAttribute()) { if (reader.Name == "Id") { reader.MoveToElement(); XML = reader.ReadOuterXml(); Valute v = new Valute(); v.name = GetName(XML); v.charCode = GetCharCode(XML); v.rate = GetValue(XML); v.scale = GetScale(XML); valutes.Add(v); } } } } break; } } List <string> belvalutes = new List <string>(); foreach (var valute in valutes) { string s = String.Format("За {3} {0}({1}): {2} BYN\n", valute.name, valute.charCode, Math.Round(valute.rate, 4), valute.scale); belvalutes.Add(s); } Valutes model = new Valutes(); model.valutes = belvalutes; if (Session["sucsess"] == null) { Session["sucsess"] = ""; } string a = Session["sucsess"].ToString(); return(View(model)); }