Exemplo n.º 1
0
        public static Валюты Новый()
        {
            NsgBaseObject obj = CreateByGuid(NsgService.StringToGuid("b30fac77-bcc2-4715-a3b9-7b6f20f1646d"));

            if (obj == null)
            {
                obj = new Валюты();
            }
            return(obj as Валюты);
        }
Exemplo n.º 2
0
        protected override void OnCreateReport(NsgBackgroundWorker nsgBackgroundReporter, System.ComponentModel.DoWorkEventArgs e)
        {
            base.OnCreateReport(nsgBackgroundReporter, e);

            string          url               = "http://cbrates.rbc.ru/tsv/cb/" + $"{Валюта.Value.КодВалюты}.tsv"; // создаем переменную url в которой хранится адрес сайта
            HttpWebRequest  myHttwebrequest   = (HttpWebRequest)HttpWebRequest.Create(url);                        // выполняем запрос по указонному адресу
            HttpWebResponse myHttpWebresponse = (HttpWebResponse)myHttwebrequest.GetResponse();                    // получаем ответ
            StreamReader    strm              = new StreamReader(myHttpWebresponse.GetResponseStream());           // создаем считыватель
            var             text              = strm.ReadToEnd().Split('\n');                                      // записываем данные с сайта в массив удаляя enter, тем самым получая массив с одной строкой
            var             period            = ИсторияКурсов.Новый();                                             // создаем объект

            for (int i = 0; i < text.Length; i++)                                                                  // цикл для перебора массива text
            {
                var      row           = text[i].Split('\t');                                                      // записываем данные в массив удаляя отступы и получая массив с тремя элементами
                DateTime date          = DateTime.ParseExact(row[0], "yyyyMMdd", CultureInfo.InvariantCulture);    // преобрауем 1-ый элемент массива в тип DateTime
                var      firstCompare  = date.CompareTo(nsgPeriodPicker1.Period.Begin);                            // сравниваем date с данными из PeriodPicker
                var      secondCompare = date.CompareTo(nsgPeriodPicker1.Period.End);                              // --//--
                if ((firstCompare == 1 | secondCompare == -1) & (firstCompare == 1 | secondCompare == 0) & (firstCompare == 1 | secondCompare == 0))
                {
                    period.New();                                                                                // создаем новые строки объекста period

                    period.ДатаВремя = date;                                                                     // присваиваем полю ДатаВремя переменную date
                    period.Значение  = Math.Round(Convert.ToDecimal(row[2], NumberFormatInfo.InvariantInfo), 2); // присваиваем полю Значение 3-ий элемент массива конвертируя его в тип decimal и округляя до 2 знаков после запятой
                    period.Валюта    = Валюта.Value;                                                             // присваиваем полю Валюта поле Валюта
                    period.Post();                                                                               // связываем с БД
                }
            }

            NsgCompare cmp  = new NsgCompare().Add(ИсторияКурсов.Names.Валюта, Валюта.Value.Наименование, NsgComparison.Contain);    // добавляем в сравнение новое условие сравнения поля Валюты из объекта ИсторияКурсов и поля Валюта из объекта ЗаполнениеКурса
            NsgSorting sort = new NsgSorting(new NsgSortingParam(ИсторияКурсов.Names.ДатаВремя, NsgSortDirection.Descending));       // сортируем по ... полю ДатаВремя наверное????
            var        pole = period.FindAll(cmp);                                                                                   // получаем массив объектов с условием которое записано в переменной cmp
            var        max  = pole[pole.Length - 1];                                                                                 // берем последний элемент массива pole

            var        currency = Валюты.Новый();                                                                                    // создаем объект
            NsgCompare cmp2     = new NsgCompare().Add(Валюты.Names.Наименование, Валюта.Value.Наименование, NsgComparison.Contain); // добавляем в сравнение новое условие сравнения поля Наименования из объекта Валюты и поля Валюта из объекта ЗаполнениеКурса

            currency.Find(cmp2);                                                                                                     //  заполняем объект из БД по условию cmp2
            currency.Edit();                                                                                                         // переводим объект в режим редактирования
            currency.ТекущийКурс = max.Значение;                                                                                     // изменяем значение поля ТекущийКурс на значение поля Значение объекта ИсторияКурсов
            currency.Post();                                                                                                         // связываем с БД
        }
Exemplo n.º 3
0
 private Валюты[] convertArray(NsgMultipleObject[] array)
 {
     Валюты[] res = new Валюты[array.Length];
     array.CopyTo(res, 0);
     return(res);
 }