Exemplo n.º 1
0
        //открытие Main окна для выбранного элемента
        public static void ChangeItem(ListBox Accounts, Login loginWindow)
        {
            if (Accounts.SelectedItem != null)
            {
                //инициализация нового окна Main
                Main mainWindow = new Main();

                //инициализация массива данных учета по выделенному элементу
                string[][] data = WriteAndRead.GetArrayDll(Accounts.SelectedValue.ToString());

                //открываем окно Main и называем его выделенным элементом
                mainWindow.Title         = Accounts.SelectedItem.ToString();
                mainWindow.lHead.Content = Accounts.SelectedItem.ToString();
                mainWindow.Show();

                //сворачиваем окно Login и снимаем выделение с Accounts
                loginWindow.WindowState = WindowState.Minimized;
                Accounts.SelectedItem   = null;

                //обновление данных в окне
                DataUpdate(mainWindow);

                //обновление дней в комбобоксах, раздел "Аналитика"
                Calculate.InfoUpdate(mainWindow);
            }
        }
Exemplo n.º 2
0
        //высчитываем рейтинги популярности АЗС
        public static string[][] GetGSTopic(string name)
        {
            //получаем список АЗС
            List <string> list  = WriteAndRead.GetListDll(name, 1);
            List <string> list2 = WriteAndRead.GetListDll(name, 1);

            //избавляемся от регистро-зависимости (делаем это красиво)
            TextInfo ti = CultureInfo.CurrentCulture.TextInfo;

            for (int i = 0; i < list.Count; i++)
            {
                list[i] = ti.ToTitleCase(list[i]);
            }

            //инициализируем матрицу [АЗС][% отношение]
            string[][] topic  = GetPersentage(list);
            float[]    number = GetNumberOccurrences(list2);

            for (int i = 0; i < topic.Length; i++)
            {
                topic[i] = new string[] { $"Кол-во упоминаний: {number[i]}\n{topic[i][0]}", topic[i][1] }
            }
            ;

            return(topic);
        }
Exemplo n.º 3
0
        //удаляем учет
        public static void Deleting(Main main)
        {
            MessageBoxResult result = MessageBox.Show($"Учет \"{main.Title}\" будет безвозвратно удалён, продолжить?", "Сообщение",
                                                      MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes);

            if (result == MessageBoxResult.Yes)
            {
                //инициализируем индекс позиции имени учета
                int index = WriteAndRead.GetListFda(0).IndexOf(main.Title);

                //инициализируем список из строк accountList.ini
                List <string> list = File.ReadAllLines(Resources.Get(Resources.Names.Ini)).ToList();

                //удаляем строчку по индексу
                list.RemoveAt(index);

                //записываем новый список в accountList.ini
                File.WriteAllLines(Resources.Get(Resources.Names.Ini), list);

                //удаляем .dll файл
                File.Delete($"{Resources.Get(Resources.Names.Dir)}\\{main.Title}.dll");

                MessageBox.Show($"Учет \"{main.Title}\" был безвозвратно удалён", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);

                main.Close();
            }
        }
Exemplo n.º 4
0
        //заполнение Accounts
        public static void AccountsFill(ListBox listBox)
        {
            List <string> list = WriteAndRead.GetListFda(0);

            //если список пустой
            if (list.Count == 0)
            {
                listBox.IsEnabled   = false;
                listBox.ItemsSource = null;
                listBox.Items.Add(Resources.Get(Resources.Names.defoltItem));
            }

            //если список содержит наименования учетов
            else
            {
                //удаление стандартного элемента
                if (listBox.Items.Contains(Resources.Get(Resources.Names.defoltItem)))
                {
                    listBox.Items.Clear();
                }

                listBox.IsEnabled   = true;
                listBox.ItemsSource = list;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Возврощяет список каждодневных значений параметра 'е', существующих в .Dll
        /// </summary>
        /// <param name="name">имя файла .dll без расширения</param>
        /// <param name="e">индекс параметра</param>
        /// <returns></returns>
        public static List <float> GetDailyOption(string name, int e)
        {
            //инициализируем список всех дней, параметров, зависимых параметров и неповторяющихся дней
            List <DateTime> allDays    = GetDays(name);
            List <float>    allOptions = WriteAndRead.GetListDll(name, e).Select(option => float.Parse(option)).ToList();

            float[]         options = new float[GetOriginalDays(name).Count];
            List <DateTime> days    = GetOriginalDays(name);
            int             count   = allDays.Count;

            for (int i = 0, j = 0; i < count; i++)
            {
                //увеличиваем j, если в списке всех дней не нашелся
                //оригинальный день days[j]
                if (!allDays.Contains(days[j]))
                {
                    j++;
                }

                //переносим в options[j] элемент из allOptions
                options[j] += allOptions[i];

                //удаляем элемент days[j] из allDays, чтобы
                //двигать j дальше
                allDays.Remove(days[j]);
            }

            return(options.ToList());
        }
Exemplo n.º 6
0
        //добавляем данные в .dll файл
        public static void AppendData(Main main)
        {
            //инициализация данных
            string GS          = main.tbGS.Text;
            string type        = main.cbType.Text;
            string volume      = main.tbVolume.Text;
            string cost        = main.tbCost.Text;
            string consumption = main.tbConsumption.Text;
            string costLitr    = null;
            string transit     = null;

            if (GS == "" || GS == null || GS == Resources.Get(Resources.Names.textGS))
            {
                GS = "Не указано";
            }

            if (type == "Выберите тип используемого бензина")
            {
                MessageBox.Show("Вы не выбрали тип топлива", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

            else if (!Exam.NumericExam(volume, "объем топлива", main.tbVolume.DataContext.ToString()))
            {
                ;
            }
            else if (!Exam.NumericExam(cost, "стоимость заправки", main.tbCost.DataContext.ToString()))
            {
                ;
            }
            else if (!Exam.NumericExam(consumption, "средний расход топлива", main.tbConsumption.DataContext.ToString()))
            {
                ;
            }
            else if (!Exam.NamedExam(GS, "наименование АЗС", main.tbGS.DataContext.ToString()))
            {
                ;
            }

            else
            {
                costLitr = Calculate.GetCostLitr(volume, cost);
                transit  = Calculate.GetTransit(consumption, volume);

                //инициализируем массив данных
                string[] array = { GS.Trim(' '), type, Formate(volume), Formate(cost, 2), Formate(consumption), Formate(costLitr), Formate(transit) };

                //запись данных
                WriteAndRead.WriteDll(main.Title, array);

                DataUpdate(main);
                ResetTextBoxes(main);

                MessageBox.Show("Данные успешно занесены в учет", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
Exemplo n.º 7
0
        //меняем состояние кнопки соответственно среднему расходу
        static void ChangesAgregateConsumptionButton(string name, TextBox textBox)
        {
            string consumption = WriteAndRead.GetListFda(2)[WriteAndRead.GetListFda(0).IndexOf(name)];

            if (consumption != "Не указано")
            {
                textBox.Background = Brushes.GreenYellow;
                textBox.Text       = consumption;
                textBox.Foreground = Brushes.Black;
            }
        }
Exemplo n.º 8
0
        public Login()
        {
            InitializeComponent();

            //перемещение окна за Header или зоголовок (Rectangle на окне)
            void layoutRoot(object sender, MouseButtonEventArgs e) => DragMove();

            Header.MouseLeftButtonDown    += new MouseButtonEventHandler(layoutRoot);
            HeadLable.MouseLeftButtonDown += new MouseButtonEventHandler(layoutRoot);

            //Создание необходимых файлов
            WriteAndRead.CreateFileAndFirectory();

            //заполнение списка учетов
            Actions.AccountsFill(lbAccounts);
        }
Exemplo n.º 9
0
        //сохранение среднего расхода топлива
        public static void SavedConsumption(string name, TextBox textBox)
        {
            //инициализируем значение среднего расхода топлива
            string consumption = textBox.Text;

            //сообщение об ошибке
            if (!Exam.NumericValidation(consumption))
            {
                MessageBox.Show("Вы попытались запомнить невозножное значение", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

            //сохранение среднего расхода топлива
            else
            {
                //если пользователь указал 0 или меньшее число
                //сохроняем средний расход, как неуказанный
                float reset = float.Parse(consumption);

                if (reset <= 0)
                {
                    consumption  = "Не указано";
                    textBox.Text = null;
                    VanishText(textBox, "Укажите здесь средний расход", true);
                }

                //если число больше 0
                else
                {
                    textBox.Text       = consumption;
                    textBox.Background = Brushes.LightGreen;
                    textBox.Foreground = Brushes.Black;
                }

                //записываем новое значение
                WriteAndRead.ChangeFdaPoint(name, consumption, 2);

                //сообщения по окончанию добавления
                if (consumption != "Не указано")
                {
                    MessageBox.Show($"Значение \"{consumption}\" успешно сохранено.\nВ следующий раз вам не придется вводить его заного", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    MessageBox.Show($"Сохраненное значение удалено", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
        }
Exemplo n.º 10
0
        //возвращение полей к исходному состоянию
        static void ResetTextBoxes(Main main)
        {
            main.tbVolume.Text = null;
            main.tbCost.Text   = null;
            main.tbGS.Text     = null;
            main.tbRename.Text = null;

            VanishText(main.tbVolume, Resources.Get(Resources.Names.textVol), true);
            VanishText(main.tbCost, Resources.Get(Resources.Names.textCost), true);
            VanishText(main.tbGS, Resources.Get(Resources.Names.textGS), true);
            VanishText(main.tbRename, Resources.Get(Resources.Names.textForName), true);

            if (WriteAndRead.GetListFda(2)[WriteAndRead.GetListFda(0).IndexOf(main.Title)] == "Не указано")
            {
                main.tbConsumption.Text = null;
                VanishText(main.tbConsumption, Resources.Get(Resources.Names.textMidConsumption), true);
            }
        }
Exemplo n.º 11
0
        //меняем имя учета
        public static void Renaming(string name, Main main)
        {
            if (Exam.NamedExam(name, "имя учёта", Resources.Get(Resources.Names.textForName)))
            {
                //поменяли имя .dll файла
                File.Move($"{Resources.Get(Resources.Names.Dir)}\\{main.Title}.dll", $"{Resources.Get(Resources.Names.Dir)}\\{name}.dll");

                //поменяли имя в acountList.ini
                WriteAndRead.ChangeFdaPoint(main.Title, name, 0);

                //меняем заголовок окна Main
                main.Title = name;

                DataUpdate(main);

                MessageBox.Show($"Имя учета было изменено на \"{name}\"", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Обновление данных в разделе "Аналитика"
        /// </summary>
        /// <param name="main">окно mainWindow</param>
        public static void InfoUpdate(Main main)
        {
            if (WriteAndRead.GetListDll(main.Title, 0).Count != 0)
            {
                DateTime date = GetOriginalDays(main.Title)[main.cbDate.SelectedIndex];
                DateTime date2 = GetOriginalDays(main.Title)[main.cbDate2.SelectedIndex];
                int      count = GetOriginalDays(main.Title, date, date2).Count, period = 1;

                if (count >= 9)
                {
                    period = 7;
                }

                //правка дней по возрастанию
                if (date > date2)
                {
                    DateTime tmpDate = date;
                    date  = date2;
                    date2 = tmpDate;
                }

                TotalNumber(main.Title, 3, date, date2, main.tbAllVolumeInfo, "лит. было залито");
                TotalNumber(main.Title, 4, date, date2, main.tbAllCostInfo, "руб. было затрачено на заправку");
                TotalNumber(main.Title, 7, date, date2, main.tbAllTransitInfo, "км дороги было преодалено (ожидаемо)");
                MidleNumber(main.Title, 3, date, date2, main.tbMiddleVolumeInfo, "лит. заливается на каждой заправке", "лит. каждый день");
                MidleNumber(main.Title, 4, date, date2, main.tbMiddleCostInfo, "руб. тратится на каждой заправке", "руб. каждый день");

                float _100percent = Get100Percent(main.Title);

                UploadedInfo(main, _100percent, period, date, date2);
            }

            else
            {
                main.tbUploadedDaysInfo.Text = "Заполняйте учет новыми данными и получайте актульные сведения";
                main.tbInfo.Text             = "Здесь будет указано количество литров залитых в самые нагруженные дни";
                main.tbInfo2.Text            = "Здесь будет указан объем затрат на заправку в самые нагруженные дни";
                main.tbAllVolumeInfo.Text    = null;
                main.tbAllCostInfo.Text      = null;
                main.tbAllTransitInfo.Text   = null;
                main.tbMiddleVolumeInfo.Text = null;
                main.tbMiddleCostInfo.Text   = null;
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Возврощает весь список дней в формате [день][месяц][год]
        /// </summary>
        /// <param name="name">имя файла без расширения</param>
        /// <returns></returns>
        public static List <DateTime> GetDays(string name)
        {
            //список всех дней без приведения к формату
            List <string>   allDays = WriteAndRead.GetListDll(name, 0);
            List <DateTime> days    = new List <DateTime>();

            //приводим элементы allDays к формату и переписываем
            //в список days
            int count = allDays.Count;

            for (int i = 0; i < count; i++)
            {
                DateTime tmp = DateTime.Parse(allDays[i]);
                DateTime d   = new DateTime(tmp.Year, tmp.Month, tmp.Day);
                days.Add(d);
            }

            return(days);
        }
Exemplo n.º 14
0
        /// <summary>
        /// Возврощает список всех значений параметра 'e', с учетом границ времени
        /// </summary>
        /// <param name="name">имя файла .dll без расширения</param>
        /// <param name="date">правая граница времени</param>
        /// <param name="date2">левая граница времени</param>
        /// <param name="e">индекс параметра</param>
        /// <returns></returns>
        public static List <float> GetCustomOption(string name, DateTime date, DateTime date2, int e)
        {
            //костомный параметр, дни, значения параметра
            List <float>    list   = new List <float>();
            List <DateTime> days   = GetDays(name);
            List <float>    option = WriteAndRead.GetListDll(name, e).Select(day => float.Parse(day)).ToList();

            //инициализация начального и конечного индекса
            int index     = days.IndexOf(date);
            int lastIndex = days.LastIndexOf(date2);

            //составление списка кастомного параметра
            for (; index <= lastIndex; index++)
            {
                list.Add(option[index]);
            }

            return(list);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Открытие окна настроек сохраненных данных
        /// </summary>
        /// <param name="name">имя файла</param>
        /// <param name="main">окно <see cref="Main"/></param>
        /// <param name="sender">объект инициализируемый при нажатии на кнопку в <see cref="Table"/></param>
        public static void OpenCustomizeWindow(string name, Main main, object sender)
        {
            //инициализируем кнопку и массив
            Button button = sender as Button;

            string[][] desposed = WriteAndRead.GetArrayDll(name);

            //получаем индекс строчки и снимаев выделение
            int index = Int32.Parse(button.Tag.ToString());

            main.dgTable.SelectedIndex = -1;

            //настройки содержимого окна корректировки данных
            Customize customize = new Customize {
                Owner = main
            };

            customize.lHead.Content             = $"Правка данных ({index + 1})"; //заголовок окна
            customize.Title                     = name;                           //имя окна, по умолчанию используется для получения имени учета
            customize.tbVolume.Text             = desposed[index][3];             //объем заправки
            customize.tbVolume.DataContext      = desposed[index][3];
            customize.tbCost.Text               = desposed[index][4];             //стоимость
            customize.tbCost.DataContext        = desposed[index][4];
            customize.cbType.Text               = desposed[index][2];             //тип топлива
            customize.cbType.DataContext        = desposed[index][2];
            customize.tbConsumption.Text        = desposed[index][5];             //средний расход топлива
            customize.tbConsumption.DataContext = desposed[index][5];

            if (desposed[index][1] != "Не указано")
            {
                customize.tbGS.Text        = desposed[index][1];        //наименование АЗС
                customize.tbGS.DataContext = desposed[index][1];
            }

            customize.dpChooiceDate.Text = DateTime.Parse
                                               (desposed[index][0]).ToShortDateString(); //дата
            customize.dpChooiceDate.DataContext = desposed[index][0];

            customize.bSaveData.DataContext = index;                    //индекс элемента в desposed[][]

            customize.ShowDialog();
        }
Exemplo n.º 16
0
        /// <summary>
        /// Проверка поля наименования
        /// </summary>
        /// <param name="text">основной текст</param>
        /// <param name="option">наименование параметра, отображаемого в сообщении</param>
        /// <param name="vanishText">исчезающий текст (псевдо-анимация)</param>
        /// <returns></returns>
        public static bool NamedExam(string text, string option, string vanishText)
        {
            if (WordValidation(text, '|', vanishText) == -1)
            {
                MessageBox.Show($"Вы не указали {option}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(false);
            }

            else if (WordValidation(text, '|', vanishText) == 0)
            {
                MessageBox.Show("Знак \"|\" является недопустимым, попробуйте его заменить другим", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(false);
            }

            else if (option == "имя учёта" && WriteAndRead.GetListFda(0).Contains(text))
            {
                MessageBox.Show($"Такое имя {option} занято, придумайте другое", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(false);
            }

            return(true);
        }
Exemplo n.º 17
0
        //удаляет выбранный объект учета
        public static void ToDeliteObject(string name, Main main, Customize customize, int e)
        {
            string[][] desposed    = WriteAndRead.GetArrayDll(name);
            string[][] newDesposed = new string[desposed.Length - 1][];

            //удаляем выбранный день
            for (int i = 0, j = 0; i < desposed.Length; i++)
            {
                if (i != e)
                {
                    newDesposed[j++] = desposed[i];
                }
                else
                {
                    j++;
                }
            }

            WriteAndRead.WriteDll(name, newDesposed);

            MessageBox.Show("Элемент успешно удален", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
            customize.Close();
        }
Exemplo n.º 18
0
        /// <summary>
        /// Получаем список неповторяющихся дней
        /// </summary>
        /// <param name="name">имя файла без расширения</param>
        /// <returns></returns>
        public static List <DateTime> GetOriginalDays(string name)
        {
            //инициализируем список всех дней подряд
            List <DateTime> allDays = WriteAndRead.GetListDll(name, 0).Select(day => DateTime.Parse(day)).ToList();

            //инициализируем список неповторяющихся дней
            List <DateTime> days = new List <DateTime>();

            //заполняем список не повторяющимися днями
            for (int i = 0; i < allDays.Count; i++)
            {
                //инициализируем шаблон дня [день/месяц/год]
                DateTime d = new DateTime(allDays[i].Year, allDays[i].Month, allDays[i].Day);

                //добавляем день
                if (!days.Contains(d))
                {
                    days.Add(d);
                }
            }

            return(days);
        }
Exemplo n.º 19
0
        //заведение нового учета
        public static void AppendNewAcc(TextBox textBox, ListBox listBox)
        {
            string name = textBox.Text;

            if (Exam.NamedExam(name, "имя учета", Resources.Get(Resources.Names.textForName)))
            {
                //инициализация пустого массива
                string[] array = { };

                //создание, заполнение файла пустым массивом
                File.AppendAllLines($"{Resources.Get(Resources.Names.Dir)}\\{name}.dll", array);

                //добавляем учет в acountList.ini
                WriteAndRead.WriteInFda(name, 1);

                //заполняем listBox
                AccountsFill(listBox);

                //очищаем текстовой поле
                textBox.Text = null;

                MessageBox.Show($"Новый учет \"{name}\" успешно заведен", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// Обновление данных в окне
        /// </summary>
        /// <param name="main">окно</param>
        public static void DataUpdate(Main main)
        {
            //заголовок окна
            main.lHead.Content = main.Title;

            //значение среднего расхода топлива
            string consumption = WriteAndRead.GetListFda(2)[WriteAndRead.GetListFda(0).IndexOf(main.Title)];

            if (consumption != "Не указано")
            {
                main.tbConsumption.Text       = consumption;
                main.tbConsumption.Background = Brushes.LightGreen;
                main.tbConsumption.Foreground = Brushes.Black;
                main.tbConsumption.ToolTip    = $"Кликните 2 раза, чтобы запомнить.\nСохранённое значение: {consumption}";
            }
            else
            {
                main.tbConsumption.ToolTip = "Кликните 2 раза, чтобы запомнить";
            }

            //заметка о дате заведения учета
            main.lAboutAccCreating.Content = "Учёт был заведён " + WriteAndRead.GetListFda(1)[WriteAndRead.GetListFda(0).IndexOf(main.Title)];

            //перезаполняем таблицу
            main.dgTable.ItemsSource = WriteAndRead.ReadForTable(main.Title);

            //обновляем первую диаграмму
            Chart1Update();

            //обновляем вторую диаграмму
            Chart2Update();

            //перезаполняем круговую диаграмму
            main.chPieChart.ItemsSource = WriteAndRead.ReadForPieChart(main.Title);

            //переписываем списки дней в разделе "Аналитика"
            FillDates(main.Title, main.cbDate, main.cbDate2);

            void Chart1Update()
            {
                //перезаполняем первую диаграмму
                if (main.bChart1Reversed.ToolTip.ToString() == "Изменить по дням")
                {
                    main.chart1.ItemsSource      = WriteAndRead.ReadForFirstChart(main.Title, 1);
                    main.bChart1Reversed.ToolTip = "Изменить по записям";
                }
                else
                {
                    main.chart1.ItemsSource      = WriteAndRead.ReadForFirstChart(main.Title, 0);
                    main.bChart1Reversed.ToolTip = "Изменить по дням";
                }
            }

            void Chart2Update()
            {
                //перезаполняем вторую диаграмму
                if (main.bChart2Reversed.ToolTip.ToString() == "Изменить по дням")
                {
                    main.chart2.ItemsSource      = WriteAndRead.ReadForSecondChart(main.Title, 1);
                    main.bChart2Reversed.ToolTip = "Изменить по записям";
                }
                else
                {
                    main.chart2.ItemsSource      = WriteAndRead.ReadForSecondChart(main.Title, 0);
                    main.bChart2Reversed.ToolTip = "Изменить по дням";
                }
            }
        }
Exemplo n.º 21
0
        //сохроняет измененные данные
        public static void ToCorrectOfData(string name, Main main, Customize customize, int e)
        {
            //инициализация данных
            string[][] desposed    = WriteAndRead.GetArrayDll(name);
            string     GS          = customize.tbGS.Text;
            string     type        = customize.cbType.Text;
            string     volume      = customize.tbVolume.Text;
            string     cost        = customize.tbCost.Text;
            string     consumption = customize.tbConsumption.Text;
            string     date        = customize.dpChooiceDate.DataContext.ToString();

            if (customize.dpChooiceDate.Text != DateTime.Parse(customize.dpChooiceDate.DataContext.ToString()).ToShortDateString())
            {
                date = customize.dpChooiceDate.Text + " 12:30";
            }
            string costLitr = null;
            string transit  = null;

            if (GS == "" || GS == null || GS == Resources.Get(Resources.Names.textGS))
            {
                GS = "Не указано";
            }


            else if (!Exam.NumericValidation(volume))
            {
                ;
            }
            else if (!Exam.NumericValidation(cost))
            {
                ;
            }
            else if (!Exam.NumericValidation(consumption))
            {
                ;
            }
            else if (!Exam.NamedExam(GS, "наименование АЗС", Resources.Get(Resources.Names.textGS)))
            {
                ;
            }

            else
            {
                customize.Close();

                if (
                    GS != customize.tbGS.DataContext.ToString() ||
                    volume != customize.tbVolume.DataContext.ToString() ||
                    cost != customize.tbCost.DataContext.ToString() ||
                    consumption != customize.tbConsumption.DataContext.ToString() ||
                    type != customize.cbType.DataContext.ToString() ||
                    date != DateTime.Parse(customize.dpChooiceDate.DataContext.ToString()).ToShortDateString() + " 12:30"
                    )
                {
                    costLitr = Calculate.GetCostLitr(volume, cost);
                    transit  = Calculate.GetTransit(consumption, volume);

                    //инициализируем массив данных
                    desposed[e] = new string[] { date, GS.Trim(' '), type, Formate(volume), Formate(cost, 2), Formate(consumption), Formate(costLitr), Formate(transit) };

                    //запись данных
                    desposed = Calculate.DesposedSort(desposed);
                    WriteAndRead.WriteDll(name, desposed);

                    DataUpdate(main);

                    MessageBox.Show("Данные успешно изменены", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
                }


                else
                {
                    MessageBox.Show("Были сохранены исходные данные", "Сообщение", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }

            customize.Close();
        }