public ActionResult Create([Bind(Include = "Id,From,To,PricePerUnit")] ConsumptionRange range)
 {
     if (ModelState.IsValid)
     {
         _db.ConsumptionRanges.Add(range);
         _db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(Create(range));
 }
예제 #2
0
        public ActionResult Create([Bind(Include = "Id,MeterReadings,MeasuredAt")] Consumption consumption)
        {
            if (ModelState.IsValid)
            {
                _db.Consumptions.Add(consumption);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(consumption));
        }
        public ActionResult Create([Bind(Include = "Id,Since,Until,Kind,ConsumptionRanges")] TariffViewModel tariffViewModel)
        {
            if (ModelState.IsValid)
            {
                var tariff = tariffViewModel.ToTariff(_db);
                _db.Tariffs.Add(tariff);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tariffViewModel));
        }
예제 #4
0
        private void AddEditTask()
        {
            if (string.IsNullOrEmpty(this.edTaskName.Text))
            {
                MessageBox.Show("Значение поля 'Название задачи' не может быть пустым.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.ActiveControl = this.edTaskName;
                return;
            }
            List <int> selectedComputers = rgvComputersForSheduler.SelectedValues.Select(s => (int)s).ToList();

            // Добавление таска
            this.lbTasks.DisplayMember = "Name";
            this.lbTasks.ValueMember   = "Id";

            var schedulerTask = new ShedulerTask
            {
                Name = this._newTaskName,
                //StartTime = DateTime.Now.AddHours(1)
            };

            // Заполнение списка компьютеров
            var computersList = selectedComputers.Select(x => new ShedulerTasksComputersList
            {
                ComputerId = x
            }).ToList();

            if (this._isAddTaskMode)
            {
                var addedIndex = this.lbTasks.Items.Add(schedulerTask);
                // Добавление новой задачи
                var addTaskResult = MQueryCommand.TryInsertNewTask(this.edTaskName.Text,
                                                                   cmbTaskModes.SelectedIndex,
                                                                   this.pckrStartDateTime.Value.Add(-_utcOffset),
                                                                   computersList,
                                                                   this.chbEnable.Checked);
                if (!addTaskResult.IsComplete)
                {
                    MessageBox.Show($"Ошибка добавления новой задачи{Environment.NewLine}{addTaskResult.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                // Добавление шагов
                var stepsWereAdded = stepsTree1.AddSteps(addTaskResult.ReturnedId);
                if (!stepsWereAdded)
                {
                    using (EntityDb context = new EntityDb())
                    {
                        try
                        {
                            var task = context.ShedulerTasks.First(x => x.Id == addTaskResult.ReturnedId);
                            context.ShedulerTasks.Remove(task);
                            context.SaveChanges();
                        }
                        catch (Exception ex)
                        {
                            MLogger.Error(ex.ToString());
                            MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }

                    this.lbTasks.Items.Remove(schedulerTask);

                    MessageBox.Show("Невозможно добавление новой задачи без указания операций. Необходимо указать как минимум одну операцию.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    return;
                }

                // Перезагрузка списка задач
                this.UpdateTasksList();
                this.lbTasks.SelectedIndex = addedIndex;
                this._isAddTaskMode        = false;
                MessageBox.Show($"Задача '{this.edTaskName.Text}' была успешно добавлена", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                // Редактирование выбранной задачи
                var selectedTaskItem = (ShedulerTask)lbTasks.SelectedItem;
                if (selectedTaskItem == null)
                {
                    return;
                }

                var updateResult = MQueryCommand.TryUpdateTask(selectedTaskItem.Id,
                                                               this.chbEnable.Checked,
                                                               this.edTaskName.Text,
                                                               null,
                                                               cmbTaskModes.SelectedIndex,
                                                               this.pckrStartDateTime.Value.Add(-_utcOffset),
                                                               computersList);
                if (!updateResult.IsComplete)
                {
                    MessageBox.Show($"Ошибка при обновлении данных{Environment.NewLine}{updateResult.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                // Очистка списка шагов
                //if (!this.stepsTree1.IsEmpty())
                //{
                //	this.ClearSteps(selectedTaskItem.Id);
                //}

                //Удаление шагов
                var stepsWereDeleted = MQueryCommand.TryDeleteSteps(stepsTree1.StepsIdListToDelete);
                if (!stepsWereDeleted.IsComplete)
                {
                    MessageBox.Show(stepsWereDeleted.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                // Добавление шагов
                var stepsWereEdited = stepsTree1.AddSteps(selectedTaskItem.Id);
                if (!stepsWereEdited)
                {
                    MessageBox.Show("Невозможно сохраниение изменений для дерева операций. Требуется добавить хотя бы одну операцию.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                var currentSelectedIndex = this.lbTasks.SelectedIndex;
                this.UpdateTasksList();
                this.lbTasks.SelectedIndex = currentSelectedIndex;

                MessageBox.Show($"Изменения по задаче '{this.edTaskName.Text}' были успешно сохранены", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            this.toolStripButtonAddTask.Enabled        =
                this.toolStripButtonRemoveTask.Enabled =
                    this.lbTasks.Enabled = true;
            this.labelEditing.Visible    = false;
            this.btnCancel.Visible       = false;
        }