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)
            { }
        }