Пример #1
0
        private void RunScript(string script)
        {
            try
            {
                ExecutionStart?.Invoke(this, EventArgs.Empty);
                lock (_script)
                {
                    _script.DoString(script, codeFriendlyName: "script");
                }

                ExecutionComplete?.Invoke(this, ExitCondition.ProgramEnd);
            }
            catch (InterpreterException e)
            {
                LuaError?.Invoke(this, e);
                ExecutionComplete?.Invoke(this, ExitCondition.ScriptError);
            }
            catch (ThreadAbortException)
            {
                // Ignore
            }
            catch (Exception e)
            {
                CsError?.Invoke(this, e);
                ExecutionComplete?.Invoke(this, ExitCondition.CsError);
            }
        }
Пример #2
0
        private DateTimeOffset CalculatePhaseTimes(TimeUnit timeUnit, DateTimeOffset?startTime = null, bool doForward = true)
        {
            int length = timeUnit.Length;

            if (!doForward)
            {
                length *= -1;
            }

            switch (timeUnit.Unit)
            {
            case TimeUnitsType.Day:
                return(startTime?.AddDays(length) ?? ExecutionStart.AddDays(length));

            case TimeUnitsType.Week:
                return(startTime?.AddDays(length * 7) ?? ExecutionStart.AddDays(length * 7));

            case TimeUnitsType.Month:
                return(startTime?.AddMonths(length) ?? ExecutionStart.AddMonths(length));
            }
            return(DateTime.Now);
        }
Пример #3
0
 /// <summary>
 /// Fires the execution start event.
 /// </summary>
 private void FireExecutionStartEvent()
 {
     ExecutionStart?.Invoke(this, new ExecutionStartEventArgs());
 }
Пример #4
0
        public void CheckActiveConfiguration(ValidationResults results)
        {
            if (CapacityCycleConfiguration == null)
            {
                var errorMessage = string.Format(Translations.CapacityCycleNoActiveConfiguration, ExecutionStart.ToString("d"));

                var validationResult = new ValidationResult(errorMessage, this, "ExecutionStart", null, EntityValidator);

                results.AddResult(validationResult);
                SetValidationError(validationResult);
            }
            ClearValidationErrors();
        }
Пример #5
0
        public void CheckCapacityCycles(ValidationResults results)
        {
            if (ContractModel?.AreOverlappingsAllowed ?? false)
            {
                return;
            }

            if (OtherCapacityCyles == null ||
                !OtherCapacityCyles.Any())
            {
                return;
            }

            bool hasOverlap = false;

            foreach (var capacityCycle in OtherCapacityCyles)
            {
                if (Equals(capacityCycle))
                {
                    continue;
                }
                hasOverlap = (capacityCycle.ExecutionStart <= ExecutionStart &&
                              capacityCycle.ExecutionEnd >= ExecutionStart) ||
                             (capacityCycle.ExecutionStart <= ExecutionEnd &&
                              capacityCycle.ExecutionEnd >= ExecutionEnd);
                if (hasOverlap)
                {
                    break;
                }
            }
            if (hasOverlap)
            {
                var errorMessage     = string.Format(Translations.CapacityCycleExecutionOverlap, ExecutionStart.ToString("d"));
                var validationResult = new ValidationResult(errorMessage, this, "ExecutionStart", null, EntityValidator);

                results.AddResult(validationResult);
                SetValidationError(validationResult);
            }
            ClearValidationErrors();
        }