Exemplo n.º 1
0
        static TimerBoundaryEvent CreateTimeBoundaryEvent(XElement xElement)
        {
            var timerBoundaryEvent = new TimerBoundaryEvent();

            FillCommonProcessElementAttributes(timerBoundaryEvent, xElement);
            timerBoundaryEvent.AttachedTo = GetAttachedToElement(xElement);

            var xTimerDefinitionType = xElement.Element("DefinitionType");

            if (xTimerDefinitionType == null)
            {
                throw new InvalidElementException($"Timer event at line {ContractParser.GetLineNumber(xElement)} " +
                                                  $"is missing timer definition type");
            }
            if (Enum.TryParse(xTimerDefinitionType.Value, out TimerDefinitionType parsedDefinitionType))
            {
                timerBoundaryEvent.TimerDefinitionType = parsedDefinitionType;
            }
            else
            {
                throw new InvalidElementException($"{xTimerDefinitionType.Value} is not a valid timer definition type at " +
                                                  $"line {ContractParser.GetLineNumber(xTimerDefinitionType)}");
            }

            var xTimerDefinition = xElement.Element("Definition");

            if (xTimerDefinition == null)
            {
                throw new InvalidElementException($"Timer event at line {ContractParser.GetLineNumber(xElement)} " +
                                                  $"is missing timer definition");
            }
            timerBoundaryEvent.TimerDefinition = xTimerDefinition.Value;

            return(timerBoundaryEvent);
        }
Exemplo n.º 2
0
 public TimerBoundaryEventConverter(TimerBoundaryEvent eventElement, ProcessConverter processConverter)
 {
     this.eventElement     = eventElement;
     this.processConverter = processConverter;
 }