private ShedulerStepObj GetStep(int?Id)
        {
            if (Id == null)
            {
                return(null);
            }

            var step = MQueryCommand.SelectShedulerStep(Id);

            if (step != null)
            {
                return(new ShedulerStepObj()
                {
                    Id = step.Id,
                    OnOperationCompleteStep = step.OnOperationCompleteStep,
                    OnOperationErrorStep = step.OnOperationErrorStep,
                    OperationCheckIntervalMs = step.OperationCheckIntervalMs,
                    OperationType = step.OperationType,
                    OrderId = step.OrderId,
                    ShedulerTask = step.ShedulerTask,
                    ShedulerTasks = step.ShedulerTasks,
                    TaskId = step.TaskId,
                    RepeatCount = step.RepeatCount,
                    RepeatTimeout = step.RepeatTimeout,
                    ShedulerTaskHistories = step.ShedulerTaskHistories,
                    OperationAttributes = step.OperationAttributes
                });
            }
            else
            {
                return(null);
            }
        }
        public bool AddSteps(int taskId)
        {
            //Добавление шагов
            if (!this.IsEmpty())
            {
                var allStepNodes = this.GetAllNodes();

                int firstStepId = 0;
                foreach (var stepNode in allStepNodes)
                {
                    if (stepNode.Tag == null)
                    {
                        return(false);
                    }
                    var           currentStep      = (StepsProperties)stepNode.Tag;
                    ShedulerStep  shedulerStep     = MQueryCommand.SelectShedulerStep(currentStep.Id);
                    TrySQLCommand insertStepResult = null;
                    if (shedulerStep == null)
                    {
                        insertStepResult = MQueryCommand.TryInsertNewStep(taskId,
                                                                          currentStep.OperationId,
                                                                          currentStep.RepeatTimesOnLackOf1cResponse,
                                                                          currentStep.RepeatingIntervalOn1cWaiting * MILLISECONDS_IN_SECOND,
                                                                          currentStep.WaitingForSuccessInterval * MILLISECONDS_IN_SECOND);
                    }
                    else
                    {
                        insertStepResult = MQueryCommand.TryUpdateStep(currentStep.Id,
                                                                       currentStep.OperationId,
                                                                       currentStep.RepeatTimesOnLackOf1cResponse,
                                                                       currentStep.RepeatingIntervalOn1cWaiting * MILLISECONDS_IN_SECOND,
                                                                       currentStep.WaitingForSuccessInterval * MILLISECONDS_IN_SECOND);
                    }

                    if (!insertStepResult.IsComplete)
                    {
                        MessageBox.Show($"Ошибка добавления новой задачи{Environment.NewLine}{insertStepResult.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(false);
                    }
                    if (stepNode.Parent == null)
                    {
                        firstStepId = insertStepResult.ReturnedId;
                    }

                    currentStep.Id = insertStepResult.ReturnedId;
                }
                ;
                var uspdateResult = MQueryCommand.TryUpdateStepFirstStepId(taskId, firstStepId);
                if (!uspdateResult.IsComplete)
                {
                    return(false);
                }

                // Обновляем Id связей
                foreach (var stepNode in allStepNodes)
                {
                    var stepNodeProperties = (StepsProperties)stepNode.Tag;
                    foreach (TreeNode childNode in stepNode.Nodes)
                    {
                        var childNodeProperties = (StepsProperties)childNode.Tag;
                        if (childNodeProperties.IsPositive)
                        {
                            uspdateResult = MQueryCommand.TryUpdateStepPositiveOperationId(stepNodeProperties.Id, childNodeProperties.Id);
                        }
                        else
                        {
                            uspdateResult = MQueryCommand.TryUpdateStepNegativeOperationId(stepNodeProperties.Id, childNodeProperties.Id);
                        }
                        if (!uspdateResult.IsComplete)
                        {
                            return(false);
                        }
                    }
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }