예제 #1
0
        // Token: 0x06000DDE RID: 3550 RVA: 0x0003A340 File Offset: 0x00038540
        public static OABManifest LoadFromMailbox(string fileSetId, MailboxSession session)
        {
            OABManifest.Tracer.TraceFunction(0L, "OABManifest.LoadFromMailbox: start");
            OABManifest      result           = null;
            MailboxFileStore mailboxFileStore = new MailboxFileStore("OAB");
            FileSetItem      current          = mailboxFileStore.GetCurrent(fileSetId, session);

            using (Stream singleFile = mailboxFileStore.GetSingleFile(current, "oab.xml", session))
            {
                if (singleFile != null)
                {
                    try
                    {
                        result = OABManifest.Deserialize(singleFile);
                        goto IL_6B;
                    }
                    catch (InvalidDataException arg)
                    {
                        OABManifest.Tracer.TraceError <string, InvalidDataException>(0L, "OABManifest.LoadFromMailbox: unable to load OAB manifest from mailbox fileset {0} due to exception: {1}", fileSetId, arg);
                        goto IL_6B;
                    }
                }
                OABManifest.Tracer.TraceError <string>(0L, "OABManifest.LoadFromMailbox: unable to load OAB manifest from mailbox fileset {0} because the manifest attachment cannot be found", fileSetId);
                IL_6B :;
            }
            OABManifest.Tracer.TraceFunction(0L, "OABManifest.LoadFromMailbox: end");
            return(result);
        }