예제 #1
0
파일: reader.cs 프로젝트: reexjungle/xcal
        protected void ResetNodes()
        {
            BeginNode = BeginCalendarNode.Empty;
            EndNode = EndCalendarNode.Empty;
            PropertyNode = PropertyCalendarNode.Empty;
            ParameterNodes.Clear();
            ValueNodes.Clear();

        }
예제 #2
0
파일: fragment.cs 프로젝트: reexjungle/xcal
 public CalendarFragment(
     BeginCalendarNode begin, 
     PropertyCalendarNode properties, 
     IEnumerable<ParameterCalendarNode> parameters, 
     IEnumerable<ValueCalendarNode> values, 
     EndCalendarNode end)
 {
     //Begin = begin;
     //Properties = properties;
     //Parameters = parameters;
     //Values = values;
     //End = end;
 }
예제 #3
0
파일: reader.cs 프로젝트: reexjungle/xcal
        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));
            }

        }