示例#1
0
        protected void OnButtonDeleteFuelDocumentClicked(object sender, EventArgs e)
        {
            FuelDocument fd = ytreeviewFuelDocuments.GetSelectedObject <FuelDocument>();

            if (fd == null)
            {
                return;
            }
            Entity.ObservableFuelDocuments.Remove(fd);
            UoWGeneric.Delete(fd);
            HasChanges = true;
            UoWGeneric.Save();
        }
示例#2
0
        public override bool Save()
        {
            var all             = _deliveryScheduleRepository.All(UoWGeneric);
            var notArchivedList = all.Where(ds => ds.IsArchive == false && ds.From == Entity.From && ds.To == Entity.To).ToList();

            if (notArchivedList.Any() && UoWGeneric.Root.IsArchive == false)
            {            //при архивировании интервала эти проверки не нужны
                //есть вероятность, что среди активных интервалов есть дубликаты, так что берем первый
                var active = notArchivedList.First();
                MessageDialogHelper.RunWarningDialog("Уже существует интервал с таким же периодом.\n" +
                                                     "Создание нового интервала невозможно.\n" +
                                                     "Существующий интервал:\n" +
                                                     $"Код: {active.Id}\n" +
                                                     $"Название: {active.Name}\n" +
                                                     $"Период: {active.DeliveryTime}\n");
                return(false);                // нашли активный
            }

            var archivedList = all.Where(ds => ds.IsArchive && ds.From == Entity.From && ds.To == Entity.To).ToList();

            if (archivedList.Any() && UoWGeneric.Root.IsArchive == false)
            {            //при архивировании интервала эти проверки не нужны
                //т.к. интервалы нельзя удалять, архивными могут быть несколько, так что берем первый
                var archived = archivedList.First();
                if (MessageDialogHelper.RunQuestionDialog("Уже существует архивный интервал с таким же периодом.\n" +
                                                          "Создание нового интервала невозможно.\n" +
                                                          "Разархивировать существующий интервал?"))
                {                //отменяем изменения текущей сущности интервала и обновляем найденный архивный
                    UoWGeneric.Delete(UoWGeneric.Root);
                    archived.IsArchive = false;
                    UoWGeneric.Save(archived);
                    UoWGeneric.Commit();
                    MessageDialogHelper.RunInfoDialog("Разархивирован интервал:\n" +
                                                      $"Код: {archived.Id}\n" +
                                                      $"Название: {archived.Name}\n" +
                                                      $"Период: {archived.DeliveryTime}\n");
                }
                return(false);                // нашли/разархивировали старый
            }

            var valid = new QSValidator <DeliverySchedule> (UoWGeneric.Root);

            if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel))
            {
                return(false);
            }

            logger.Info("Сохраняем график доставки...");
            UoWGeneric.Save();
            return(true);
        }