// Token: 0x0600071A RID: 1818 RVA: 0x00037968 File Offset: 0x00035B68 public void ProcessRequest(HttpContext httpContext) { ExTraceGlobals.AttachmentHandlingTracer.TraceDebug((long)this.GetHashCode(), "AttachmentHandler.ProcessRequest"); try { AttachmentUtility.UpdateAcceptEncodingHeader(httpContext); OwaContext owaContext = OwaContext.Get(httpContext); UserContext userContext = owaContext.UserContext; string text = Utilities.GetQueryStringParameter(httpContext.Request, "id"); string queryStringParameter = Utilities.GetQueryStringParameter(httpContext.Request, "dla", false); bool flag = queryStringParameter == null && this.IsVoiceMailAttachment(httpContext); if (flag) { text = Utilities.GetStringfromBase64String(text); } OwaStoreObjectId owaStoreObjectId = OwaStoreObjectId.CreateFromString(text); using (Item item = Utilities.GetItem <Item>(userContext, owaStoreObjectId, new PropertyDefinition[0])) { if (item == null) { ExTraceGlobals.AttachmentHandlingTracer.TraceError((long)this.GetHashCode(), "AttachmentHandler.ProcessRequest: Unable to retrieve parent item for attachment"); } else { if (userContext.IsIrmEnabled && !userContext.IsBasicExperience) { Utilities.IrmDecryptIfRestricted(item, userContext, true); } if (queryStringParameter == null) { this.DownloadOneAttachment(item, userContext, httpContext, flag); } else { string queryStringParameter2 = Utilities.GetQueryStringParameter(httpContext.Request, "femb", false); if (queryStringParameter2 != null) { using (Item embeddedItem = AttachmentUtility.GetEmbeddedItem(item, httpContext.Request, userContext)) { if (embeddedItem != null) { this.DownloadAllAttachments(embeddedItem, httpContext, userContext); } else { ExTraceGlobals.AttachmentHandlingTracer.TraceError((long)this.GetHashCode(), "AttachmentHandler.ProcessRequest: Failure to obtain reference to embedded item containing attachment"); } goto IL_12E; } } this.DownloadAllAttachments(item, httpContext, userContext); } IL_12E :; } } } catch (ThreadAbortException) { OwaContext.Get(httpContext).UnlockMinResourcesOnCriticalError(); } }