protected void ResetNodes() { BeginNode = BeginCalendarNode.Empty; EndNode = EndCalendarNode.Empty; PropertyNode = PropertyCalendarNode.Empty; ParameterNodes.Clear(); ValueNodes.Clear(); }
public CalendarFragment( BeginCalendarNode begin, PropertyCalendarNode properties, IEnumerable<ParameterCalendarNode> parameters, IEnumerable<ValueCalendarNode> values, EndCalendarNode end) { //Begin = begin; //Properties = properties; //Parameters = parameters; //Values = values; //End = end; }
protected void Parse(string value) { var escapedValue = Escape(value); BeginNode = ExtractBeginCalendarNode(escapedValue); if (BeginNode != BeginCalendarNode.Empty) { UpdateReader(BeginNode); return; } EndNode = ExtractEndCalendarNode(escapedValue); if (EndNode != EndCalendarNode.Empty) { UpdateReader(EndNode); return; } PropertyNode = ExtractPropertyCalendarNode(escapedValue); if (PropertyNode != PropertyCalendarNode.Empty) { ParameterNodes.AddRange(PropertyNode.ParameterNodes); ValueNodes.AddRange(PropertyNode.ValueNodes); UpdateReader(PropertyNode); return; } var parameterNode = ExtractParameterCalendarNode(escapedValue); if (parameterNode != ParameterCalendarNode.Empty) { ParameterNodes.Add(parameterNode); ValueNodes.AddRange(parameterNode.ValueNodes); UpdateReader(parameterNode); return; } var valueNodes = ExtractValueCalendarNodes(EscapedCOMMA, escapedValue).ToList(); if (valueNodes.Any()) { ValueNodes.AddRange(valueNodes); UpdateReader(ValueCalendarNode.Flatten(EscapedCOMMA, valueNodes)); return; } valueNodes = ExtractValueCalendarNodes(EscapedSEMICOLON, escapedValue).ToList(); if (valueNodes.Any()) { ValueNodes.AddRange(valueNodes); UpdateReader(ValueCalendarNode.Flatten(EscapedSEMICOLON, valueNodes)); } }