private ShedulerStepObj CheckStepResultNew(ShedulerStepObj step) { MLogger.Debug($"\"CheckStepResultNew\", StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); var operation = MQueryCommand.SelectOperationById(step.OperationID); if (operation != null) { //операция не прочитана if (!(operation.IsRead ?? false)) { MLogger.Debug($"\"CheckStepResultNew\" - operation not readed, StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); var typeName = OperationTools.GetOperationNameEnById(operation.OperationType); MQueryCommand.TryInsertShedulerHistory(Id, step.Id, step.ComputerId, false, $"Операция \"{typeName}\" для компьютера \"{operation.ComputerName}\" не прочитана. ID операции = {operation.ID}"); return(null); } //операция прочитана, но не выполена if ((operation.IsRead ?? false) && (!(operation.IsCompleted ?? false) || (operation.Is1CError == 1))) { MLogger.Debug($"\"CheckStepResultNew\" - operation readed, bun not completed, StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); if (step.RepeatCount > 0) { MLogger.Debug($"\"CheckStepResultNew\" - step.RepeatCount > 0) operation readed, bun not completed, StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); MLogger.Debug($"\"CheckStepResultNew\" - step.RepeatCount ((до step.RepeatCount -= 1) = {step.RepeatCount}) operation readed, bun not completed, StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); step.RepeatCount -= 1; MLogger.Debug($"\"CheckStepResultNew\" - step.RepeatCount ((после step.RepeatCount -= 1) = {step.RepeatCount}) operation readed, bun not completed, StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); Thread.Sleep(step.RepeatTimeout ?? 0); MLogger.Debug($"\"CheckStepResultNew\" - step.RepeatCount (после step.RepeatCount -= 1), operation readed, bun not completed, return StepId: {step.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); return(step); } else { var newStep = GetStep(step.OnOperationErrorStep); if (newStep != null) { MLogger.Debug($"\"CheckStepResultNew\" - step.RepeatCount <= 0, operation readed, bun not completed, return StepId: {newStep.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); } else { MLogger.Debug($"\"CheckStepResultNew\" - step.RepeatCount <= 0, operation readed, bun not completed, return StepId: null, ThreadId: {Thread.CurrentThread.ManagedThreadId}"); } return(newStep); } } //операция прочитана и выполнена if ((operation.IsRead ?? false) && (operation.IsCompleted ?? false) && (operation.Is1CError == 0)) { var newStep = GetStep(step.OnOperationCompleteStep); if (newStep != null) { MLogger.Debug($"\"CheckStepResultNew\" - operation readed, bun not completed, return StepId: {newStep.Id}, ThreadId: {Thread.CurrentThread.ManagedThreadId}, OperationId: {step.OperationID}"); } else { MLogger.Debug($"\"CheckStepResultNew\" - operation readed, bun not completed, return StepId: null, ThreadId: {Thread.CurrentThread.ManagedThreadId}"); } return(newStep); } } return(null); }