private IEnumerable <Item> GetIcalEnumerator() { string calendarName; IEnumerable <Item> result = CalendarDocument.InternalICalToItems(this.inputStream, this.charset, this.addressCache, CalendarImporter.maxICalBodyLength, true, delegate { Util.DisposeIfPresent(this.itemCache); this.itemCache = MessageItem.CreateInMemory(InternalSchema.ContentConversionProperties); this.itemCache.PropertyBag.ExTimeZone = this.session.ExTimeZone; this.itemCache.Sensitivity = Sensitivity.Normal; return(this.itemCache); }, this.results.RawErrors, out calendarName); this.results.CalendarName = calendarName; return(result); }
internal static bool ICalToItem(Stream iCalStream, Item item, InboundAddressCache addressCache, bool suppressBodyPromotion, string charsetName, out LocalizedString errorMessage) { IList <LocalizedString> list = new List <LocalizedString>(); string text; IEnumerable <Item> enumerable = CalendarDocument.InternalICalToItems(iCalStream, charsetName, addressCache, suppressBodyPromotion ? new uint?(0U) : null, false, () => item, list, out text); bool flag = false; using (IEnumerator <Item> enumerator = enumerable.GetEnumerator()) { if (enumerator.MoveNext()) { Item item2 = enumerator.Current; if (item2.Validate().Length != 0) { ExTraceGlobals.ICalTracer.TraceDebug(0L, "CalendarDocument::ICalToItem. Validation error for promoted item."); list.Add(ServerStrings.ValidationFailureAfterPromotion(string.Empty)); } flag = (list.Count == 0); } } if (!flag) { CalendarDocument.AttachICalToItem(iCalStream, item); } if (list.Count == 0) { errorMessage = LocalizedString.Empty; } else if (list.Count == 1) { errorMessage = list[0]; } else { errorMessage = LocalizedString.Join(Environment.NewLine, list.Cast <object>().ToArray <object>()); } return(flag); }