public static EventStatus?Parse(ReadOnlySequence <byte> buffer) { if (buffer.MatchesFrom(tenativeBytes.Span)) { return(EventStatus.Tentative); } if (buffer.MatchesFrom(confirmedBytes.Span)) { return(EventStatus.Confirmed); } if (buffer.MatchesFrom(needsactionBytes.Span)) { return(EventStatus.NeedsAction); } if (buffer.MatchesFrom(completedBytes.Span)) { return(EventStatus.Completed); } if (buffer.MatchesFrom(inprocessBytes.Span)) { return(EventStatus.InProgress); } if (buffer.MatchesFrom(draftBytes.Span)) { return(EventStatus.Draft); } if (buffer.MatchesFrom(finalBytes.Span)) { return(EventStatus.Final); } if (buffer.MatchesFrom(cancelledBytes.Span)) { return(EventStatus.Cancelled); } return(null); }
private static void UpdateProperty(ReadOnlySequence <byte> name, ReadOnlySequence <byte> parameters, ReadOnlySequence <byte> value, Event nextEvent) { if (name.MatchesFrom(UTF8Constants.Attendee.Span)) { nextEvent.Attendees.Add(value.ToString(Encoding.UTF8)); } else if (name.MatchesFrom(UTF8Constants.UId.Span)) { nextEvent.UId = value.ToString(Encoding.UTF8); } else if (name.MatchesFrom(UTF8Constants.Start.Span)) { var parseResult = iCalInstantPattern.Parse(value.ToString(Encoding.UTF8)); if (parseResult.Success) { nextEvent.Start = parseResult.Value; } } else if (name.MatchesFrom(UTF8Constants.End.Span)) { var parseResult = iCalInstantPattern.Parse(value.ToString(Encoding.UTF8)); if (parseResult.Success) { nextEvent.End = parseResult.Value; } } else if (name.MatchesFrom(UTF8Constants.Duration.Span)) { var parseResult = PeriodPattern.Roundtrip.Parse(value.ToString(Encoding.UTF8)); if (parseResult.Success) { nextEvent.Duration = parseResult.Value.ToDuration(); } } else if (name.MatchesFrom(UTF8Constants.Summary.Span)) { nextEvent.Summary = value.ToString(Encoding.UTF8); } else if (name.MatchesFrom(UTF8Constants.Status.Span)) { nextEvent.Status = EventStatusParser.Parse(value); } }