Exemple #1
0
        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);
        }