public static CalendarProperty ReadFrom(CalendarReader reader) { var line = new CalendarProperty { Name = reader.ReadName() }; if (line.Name.Length == 0) { return(line); } while (reader.PeekOrRead(';')) { var param = CalendarPropertyParameter.ReadFrom(reader); if (line.Parameters == null) { line.Parameters = new List <CalendarPropertyParameter>(); } line.Parameters.Add(param); } reader.ReadChar(':'); line.Value = ReadValue(reader); if (!reader.IsEof) { reader.ReadChar('\r'); } if (!reader.IsEof) { reader.ReadChar('\n'); } return(line); }
private static IList <string> ParseParamValues(CalendarReader reader) { var res = new List <string>(); do { var val = ParseParamValue(reader); if (val == null) { if (res.Count == 0) { throw new Exception("Param value expected"); } return(res); } res.Add(val); } while (reader.PeekOrRead(',')); return(res); }