private void ChangeExecute() { NameValuta nm = new NameValuta(); nm = SourceSelectedValuta; SourceSelectedValuta = ResultSelectedValuta; ResultSelectedValuta = nm; string str = Result; Result = Input; Input = str; }
private async void LoadData() { string url = ""; if (ChoiceDate.Date == DateTime.Now.Date) { url = "https://www.cbr-xml-daily.ru/daily_json.js"; } else { url = $"https://www.cbr-xml-daily.ru/archive/{ChoiceDate.Year}/{ChoiceDate.Month}/{ChoiceDate.Day}/daily_json.js"; } try { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(url); var response = await client.GetAsync(client.BaseAddress); int day = ChoiceDate.Day; int month = ChoiceDate.Month; int year = ChoiceDate.Year; #region //if (response.StatusCode != System.Net.HttpStatusCode.OK) //{ // url = "https://www.cbr-xml-daily.ru/daily_json.js"; // HttpClient client2 = new HttpClient(); // client2.BaseAddress = new Uri(url); // response = await client2.GetAsync(client2.BaseAddress); // var prev_content = await response.Content.ReadAsStringAsync(); // var prev_info = JsonConvert.DeserializeObject<DateValuta>(prev_content); // while (prev_info.Date > ChoiceDate.Date) // { // url = prev_info.PreviousURL; // client.BaseAddress = new Uri(url); // response = await client.GetAsync(client.BaseAddress); // prev_content = await response.Content.ReadAsStringAsync(); // prev_info = JsonConvert.DeserializeObject<DateValuta>(prev_content); // content = prev_content; // info = prev_info; // ChoiceDate = prev_info.Date; // } //} //else //{ // content = await response.Content.ReadAsStringAsync(); // info = JsonConvert.DeserializeObject<DateValuta>(content); //} #endregion if (response.StatusCode != System.Net.HttpStatusCode.OK) { while (response.StatusCode != System.Net.HttpStatusCode.OK) { if (day != 1) { day--; } if (month == 1 && day == 1) { day = 31; month = 12; year--; } if (day == 1) { day = 31; month--; } url = $"https://www.cbr-xml-daily.ru/archive/{year}/{month}/{day}/daily_json.js"; HttpClient client2 = new HttpClient(); client2.BaseAddress = new Uri(url); response = await client2.GetAsync(client2.BaseAddress); } } var content = await response.Content.ReadAsStringAsync(); var info = JsonConvert.DeserializeObject <DateValuta>(content); Date = info.Date; PreviousDate = info.PreviousDate; PreviousURL = info.PreviousURL; Valute = info.Valute; int indexR = IndexResult; int indexS = IndexSource; NameValutas.Clear(); NameValuta RUB = new NameValuta { ID = "R00001", NumCode = "001", CharCode = "RUB", Nominal = 1, Name = "Российский рубль", Value = (float)1, Previous = (float)1 }; NameValutas.Add(RUB); NameValutas.Add(info.Valute.AUD); NameValutas.Add(info.Valute.AZN); NameValutas.Add(info.Valute.GBP); NameValutas.Add(info.Valute.AMD); NameValutas.Add(info.Valute.BYN); NameValutas.Add(info.Valute.BGN); NameValutas.Add(info.Valute.BRL); NameValutas.Add(info.Valute.HUF); NameValutas.Add(info.Valute.HKD); NameValutas.Add(info.Valute.DKK); NameValutas.Add(info.Valute.USD); NameValutas.Add(info.Valute.EUR); NameValutas.Add(info.Valute.INR); NameValutas.Add(info.Valute.KZT); NameValutas.Add(info.Valute.CAD); NameValutas.Add(info.Valute.KGS); NameValutas.Add(info.Valute.CNY); NameValutas.Add(info.Valute.MDL); NameValutas.Add(info.Valute.NOK); NameValutas.Add(info.Valute.PLN); NameValutas.Add(info.Valute.RON); NameValutas.Add(info.Valute.XDR); NameValutas.Add(info.Valute.SGD); NameValutas.Add(info.Valute.TJS); NameValutas.Add(info.Valute.TRY); NameValutas.Add(info.Valute.TMT); NameValutas.Add(info.Valute.UZS); NameValutas.Add(info.Valute.UAH); NameValutas.Add(info.Valute.CZK); NameValutas.Add(info.Valute.SEK); NameValutas.Add(info.Valute.CHF); NameValutas.Add(info.Valute.ZAR); NameValutas.Add(info.Valute.KRW); NameValutas.Add(info.Valute.JPY); IndexResult = indexR; IndexSource = indexS; Result = (NameValutas.ElementAt(indexR).Value / SourceSelectedValuta.Value).ToString(); } catch (Exception ex) { } }