Beispiel #1
0
        public static MultiValuedProperty <Page> BlobToPageCollection(byte[] blob, MAPIPropertiesDictionary propertiesDictionary)
        {
            MultiValuedProperty <Page> multiValuedProperty = new MultiValuedProperty <Page>();

            try
            {
                uint intFrom4bytes = DetailsTemplateAdapter.GetIntFrom4bytes(blob, 4);
                int  num           = 8;
                int  num2          = 0;
                while ((long)num2 < (long)((ulong)intFrom4bytes))
                {
                    uint[] array = new uint[9];
                    for (int i = 0; i < 9; i++)
                    {
                        array[i] = DetailsTemplateAdapter.GetIntFrom4bytes(blob, num);
                        num     += 4;
                    }
                    DetailsTemplateAdapter.AddControl(array, blob, multiValuedProperty, propertiesDictionary);
                    num2++;
                }
            }
            catch (ArgumentException ex)
            {
                throw new DataValidationException(new PropertyValidationError(DirectoryStrings.CannotCalculateProperty("Pages", ex.Message), DetailsTemplateSchema.Pages, blob), ex);
            }
            catch (InvalidOperationException ex2)
            {
                throw new DataValidationException(new PropertyValidationError(DirectoryStrings.CannotCalculateProperty("Pages", ex2.Message), DetailsTemplateSchema.Pages, blob), ex2);
            }
            catch (ParsingException ex3)
            {
                throw new DataValidationException(new PropertyValidationError(DirectoryStrings.CannotCalculateProperty("Pages", ex3.Message), DetailsTemplateSchema.Pages, blob), ex3);
            }
            return(multiValuedProperty);
        }