private CalendarPropertyBase NewProperty(CalendarPropertyReader pr) { CalendarValueType valueType = pr.ValueType; if (valueType <= CalendarValueType.Date) { if (valueType == CalendarValueType.CalAddress) { return(new CalendarAttendee()); } if (valueType != CalendarValueType.Date) { goto IL_83; } } else if (valueType != CalendarValueType.DateTime) { if (valueType != CalendarValueType.Text) { goto IL_83; } if (string.Compare(pr.Name, "X-MS-OLK-ORIGINALSTART", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(pr.Name, "X-MS-OLK-ORIGINALEND", StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(pr.Name, "X-MICROSOFT-EXDATE", StringComparison.CurrentCultureIgnoreCase) == 0) { return(new CalendarDateTime()); } return(new CalendarPropertyBase()); } return(new CalendarDateTime()); IL_83: return(new CalendarPropertyBase()); }
private bool ParseProperty(CalendarPropertyReader propertyReader) { bool result = false; CalendarPropertyBase calendarPropertyBase = this.NewProperty(propertyReader); if (calendarPropertyBase.Parse(propertyReader)) { this.ProcessProperty(calendarPropertyBase); this.icalProperties.Add(calendarPropertyBase); result = true; } return(result); }
private bool ParseProperties(CalendarReader calReader) { CalendarPropertyReader propertyReader = calReader.PropertyReader; while (propertyReader.ReadNextProperty()) { if (!this.ParseProperty(propertyReader) && !string.IsNullOrEmpty(propertyReader.Name)) { this.Context.AddError(ServerStrings.InvalidICalElement(propertyReader.Name)); return(false); } } return(true); }
private void WriteProperties(CalendarReader reader, CalendarWriter writer) { CalendarPropertyReader propertyReader = reader.PropertyReader; while (propertyReader.ReadNextProperty()) { PropertyId propertyId = propertyReader.PropertyId; bool flag; if (ComponentId.VEvent == reader.ComponentId && this.dirty.TryGetValue(propertyId, out flag) && flag) { object obj = this[propertyId]; if (obj != null) { this.WriteProperty(writer, propertyId, obj); } } else { writer.WriteProperty(propertyReader); } } }
internal bool Parse(CalendarPropertyReader propertyReader) { this.calendarPropertyId = new CalendarPropertyId(propertyReader.PropertyId, propertyReader.Name); this.value = null; this.valueType = propertyReader.ValueType; this.parameters = new List <CalendarParameter>(); CalendarParameterReader parameterReader = propertyReader.ParameterReader; while (parameterReader.ReadNextParameter()) { CalendarParameter calendarParameter = new CalendarParameter(); if (!calendarParameter.Parse(parameterReader) || !this.ProcessParameter(calendarParameter)) { return(false); } this.parameters.Add(calendarParameter); } this.valueType = propertyReader.ValueType; SchemaInfo schemaInfo; if (VEvent.GetConversionSchema().TryGetValue(this.calendarPropertyId.Key, out schemaInfo) && schemaInfo.IsMultiValue) { List <object> list = new List <object>(); while (propertyReader.ReadNextValue()) { object item = this.ReadValue(propertyReader); list.Add(item); } this.value = list; } else { this.value = this.ReadValue(propertyReader); } return(this.Validate()); }
internal void Load(CalendarReader reader, Charset charset) { while (reader.ReadNextComponent()) { if (ComponentId.VEvent == reader.ComponentId) { CalendarPropertyReader propertyReader = reader.PropertyReader; while (propertyReader.ReadNextProperty()) { PropertyId propertyId = propertyReader.PropertyId; if (this.dirty.ContainsKey(propertyId) && !this.properties.ContainsKey(propertyId)) { if (PropertyId.Description == propertyId || PropertyId.Comment == propertyId) { byte[] array = null; TemporaryDataStorage temporaryDataStorage = new TemporaryDataStorage(); using (Stream stream = temporaryDataStorage.OpenWriteStream(true)) { using (Stream valueReadStream = propertyReader.GetValueReadStream()) { DataStorage.CopyStreamToStream(valueReadStream, stream, long.MaxValue, ref array); } } BodyData bodyData = new BodyData(); bodyData.SetFormat(BodyFormat.Text, InternalBodyFormat.Text, charset); bodyData.SetStorage(temporaryDataStorage, 0L, long.MaxValue); temporaryDataStorage.Release(); this.properties[propertyId] = bodyData; } else if (PropertyId.Attendee == propertyId) { CalendarParameterReader parameterReader = propertyReader.ParameterReader; while (parameterReader.ReadNextParameter()) { if (parameterReader.ParameterId == ParameterId.ParticipationStatus) { this.properties[propertyId] = parameterReader.ReadValue(); } } } else { this.properties[propertyId] = propertyReader.ReadValue(); } } } } if (ComponentId.VCalendar == reader.ComponentId) { CalendarPropertyReader propertyReader2 = reader.PropertyReader; while (propertyReader2.ReadNextProperty()) { PropertyId propertyId2 = propertyReader2.PropertyId; if (PropertyId.Method == propertyId2) { this.properties[propertyId2] = propertyReader2.ReadValue(); } } } } }
protected virtual object ReadValue(CalendarPropertyReader propertyReader) { return(propertyReader.ReadValue()); }
protected override object ReadValue(CalendarPropertyReader propertyReader) { return(propertyReader.ReadValueAsDateTime()); }