示例#1
0
        /// <summary>
        /// Метод принимающий диапазон дат и удаляет все элементы списка не входящий в данный диапазон
        /// </summary>
        /// <param name="item">Верхняя граница диапазона дат</param>
        /// <param name="item2">Нижняя граница диапазона дат</param>
        public void Export(string item, string item2)
        {
            // создание переменных в формате даты
            DateTime one = Convert.ToDateTime(item);
            DateTime two = Convert.ToDateTime(item2);

            // Определение индекса верхней и нижней границы диапазона
            int oneitem = this.dateBase.FindIndex(x => x.Date.ToString().Contains(item));
            int twoitem = this.dateBase.FindIndex(x => x.Date.ToString().Contains(item2));

            // сколько элементов переносится
            int index = twoitem + 1;


            // Инициализация массива для заполнения его данными, которые деобходимо экспортировать
            DataFields[] array = new DataFields[index];
            // Элемент массива
            int count = 0;


            // Заполнение массива данными структуры теми которые входят в диапазон значений
            for (int i = 0; i < index; i++)
            {
                if (this.dateBase[i].Date >= one & this.dateBase[i].Date <= two)
                {
                    array[count].Date        = this.dateBase[i].Date;
                    array[count].Period      = this.dateBase[i].Period;
                    array[count].Cold        = this.dateBase[i].Cold;
                    array[count].Hotter      = this.dateBase[i].Hotter;
                    array[count].TotalCold   = this.dateBase[i].TotalCold;
                    array[count].TotalHotter = this.dateBase[i].TotalHotter;

                    count++;
                }
            }
            // Очистка списка
            this.dateBase.Clear();

            // Заполнение списка из массива DataFields[]
            for (int i = 0; i < count; i++)
            {
                this.dateBase.Add(

                    new DataFields()
                {
                    Date        = array[i].Date,
                    Period      = array[i].Period,
                    Cold        = array[i].Cold,
                    Hotter      = array[i].Hotter,
                    TotalCold   = array[i].TotalCold,
                    TotalHotter = array[i].TotalHotter
                }
                    );
            }
        }
示例#2
0
        /// <summary>
        /// Метод перерасчета данных о потреблении
        /// </summary>
        public void RecalculateItem()
        {
            // Определяет количество элементов в базе данных
            int count = dateBase.Count;
            int totalCold, totalHotter;

            // Инициализация массива структуры
            DataFields[] array = new DataFields[count];
            // Копирование данных списка в массив структуры
            this.dateBase.CopyTo(array);
            // Очистка базы данных
            this.dateBase.Clear();

            // Заполнение списка из массива DataFields[]
            for (int i = 0; i < count; i++)
            {
                if (i == 0)
                {
                    totalCold   = array[i].Cold;
                    totalHotter = array[i].Hotter;
                }
                else
                {
                    totalCold   = array[i].Cold - array[i - 1].Cold;
                    totalHotter = array[i].Hotter - array[i - 1].Hotter;
                }

                this.dateBase.Add(

                    new DataFields()
                {
                    Date        = array[i].Date,
                    Period      = array[i].Period,
                    Cold        = array[i].Cold,
                    Hotter      = array[i].Hotter,
                    TotalCold   = totalCold,
                    TotalHotter = totalHotter
                }
                    );
            }
        }