public override void Deserialize(IntermediateFormatReader reader) { base.Deserialize(reader); reader.RegisterDeclaration(Image.m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.Source: this.m_source = (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType)reader.ReadEnum(); break; case MemberName.Value: this.m_value = (ExpressionInfo)reader.ReadRIFObject(); break; case MemberName.MIMEType: this.m_MIMEType = (ExpressionInfo)reader.ReadRIFObject(); break; case MemberName.Sizing: this.m_sizing = (AspNetCore.ReportingServices.OnDemandReportRendering.Image.Sizings)reader.ReadEnum(); break; case MemberName.Action: this.m_action = (Action)reader.ReadRIFObject(); break; case MemberName.Tag: { ExpressionInfo expressionInfo = (ExpressionInfo)reader.ReadRIFObject(); if (expressionInfo != null) { this.m_tags = new List <ExpressionInfo>(1) { expressionInfo }; } break; } case MemberName.Tags: this.m_tags = reader.ReadGenericListOfRIFObjects <ExpressionInfo>(); break; case MemberName.EmbeddingMode: this.m_embeddingMode = (AspNetCore.ReportingServices.OnDemandReportRendering.Image.EmbeddingModes)reader.ReadEnum(); break; default: Global.Tracer.Assert(false); break; } } }
private static void ValidateBackgroundImage(AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo backgroundImageSource, AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo backgroundImageValue, AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo backgroundImageMIMEType, AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo backgroundEmbeddingMode, AspNetCore.ReportingServices.ReportIntermediateFormat.Style style, ObjectType objectType, string objectName, ErrorContext errorContext) { if (backgroundImageSource != null) { bool flag = true; Global.Tracer.Assert(AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Constant == backgroundImageSource.Type); AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType intValue = (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType)backgroundImageSource.IntValue; Global.Tracer.Assert(null != backgroundImageValue); if (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.Database == intValue && AspNetCore.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Constant == backgroundImageValue.Type) { errorContext.Register(ProcessingErrorCode.rsBinaryConstant, Severity.Error, objectType, objectName, "BackgroundImageValue"); flag = false; } if (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.Database == intValue && !PublishingValidator.ValidateMimeType(backgroundImageMIMEType, objectType, objectName, "BackgroundImageMIMEType", errorContext)) { flag = false; } if (flag) { style.AddAttribute("BackgroundImageSource", backgroundImageSource); style.AddAttribute("BackgroundImageValue", backgroundImageValue); if (backgroundEmbeddingMode != null) { style.AddAttribute("EmbeddingMode", backgroundEmbeddingMode); } if (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.Database == intValue) { style.AddAttribute("BackgroundImageMIMEType", backgroundImageMIMEType); } } } }
public void Initialize(InitializationContext context) { Global.Tracer.Assert(null != this.m_styleAttributes, "(null != m_styleAttributes)"); IDictionaryEnumerator dictionaryEnumerator = (IDictionaryEnumerator)(object)this.m_styleAttributes.GetEnumerator(); while (dictionaryEnumerator.MoveNext()) { string text = (string)dictionaryEnumerator.Key; AttributeInfo attributeInfo = (AttributeInfo)dictionaryEnumerator.Value; Global.Tracer.Assert(null != text, "(null != name)"); Global.Tracer.Assert(null != attributeInfo, "(null != attribute)"); if (attributeInfo.IsExpression) { string name = text; switch (text) { case "BorderColorLeft": case "BorderColorRight": case "BorderColorTop": case "BorderColorBottom": text = "BorderColor"; break; case "BorderStyleLeft": case "BorderStyleRight": case "BorderStyleTop": case "BorderStyleBottom": text = "BorderStyle"; break; case "BorderWidthLeft": case "BorderWidthRight": case "BorderWidthTop": case "BorderWidthBottom": text = "BorderWidth"; break; } Global.Tracer.Assert(null != this.m_expressionList, "(null != m_expressionList)"); ExpressionInfo expressionInfo = this.m_expressionList[attributeInfo.IntValue]; expressionInfo.Initialize(text, context); context.ExprHostBuilder.StyleAttribute(name, expressionInfo); } } AttributeInfo attributeInfo2 = default(AttributeInfo); this.m_styleAttributes.TryGetValue("BackgroundImageSource", out attributeInfo2); if (attributeInfo2 != null) { Global.Tracer.Assert(!attributeInfo2.IsExpression, "(!source.IsExpression)"); AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType intValue = (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType)attributeInfo2.IntValue; AttributeInfo attributeInfo3 = default(AttributeInfo); if (AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.Embedded == intValue && (!this.m_styleAttributes.TryGetValue("EmbeddingMode", out attributeInfo3) || attributeInfo3.IntValue != 1)) { AttributeInfo attributeInfo4 = this.m_styleAttributes["BackgroundImageValue"]; Global.Tracer.Assert(null != attributeInfo4, "(null != embeddedImageName)"); AspNetCore.ReportingServices.ReportPublishing.PublishingValidator.ValidateEmbeddedImageName(attributeInfo4, context.EmbeddedImages, context.ObjectType, context.ObjectName, "BackgroundImageValue", context.ErrorContext); } } context.CheckInternationalSettings(this.m_styleAttributes); }
private void Visit(AspNetCore.ReportingServices.OnDemandReportRendering.ReportItem item) { if (item != null && item.Instance != null) { bool generateDocMap = this.m_generateDocMap; if (this.ProcessVisibilityAndContinue(item.Visibility, item.Instance.Visibility, null)) { if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Line || item is AspNetCore.ReportingServices.OnDemandReportRendering.Chart || item is AspNetCore.ReportingServices.OnDemandReportRendering.GaugePanel || item is AspNetCore.ReportingServices.OnDemandReportRendering.Map) { this.GenerateSimpleReportItemDocumentMap(item); } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.TextBox) { this.GenerateSimpleReportItemDocumentMap(item); this.VisitStyle(item.Style); } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Image) { this.GenerateSimpleReportItemDocumentMap(item); AspNetCore.ReportingServices.OnDemandReportRendering.Image image = item as AspNetCore.ReportingServices.OnDemandReportRendering.Image; AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType source = image.Source; if (this.m_createSnapshot && (source == AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.External || source == AspNetCore.ReportingServices.OnDemandReportRendering.Image.SourceType.Database)) { AspNetCore.ReportingServices.OnDemandReportRendering.ImageInstance imageInstance = image.Instance as AspNetCore.ReportingServices.OnDemandReportRendering.ImageInstance; if (imageInstance != null) { byte[] imageDatum = imageInstance.ImageData; } } } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle) { this.VisitRectangle(item as AspNetCore.ReportingServices.OnDemandReportRendering.Rectangle); this.VisitStyle(item.Style); } else if (!(item is AspNetCore.ReportingServices.OnDemandReportRendering.CustomReportItem)) { bool flag = false; if (this.m_generateDocMap) { string documentMapLabel = item.Instance.DocumentMapLabel; if (documentMapLabel != null) { flag = true; this.WriteDocumentMapBeginContainer(documentMapLabel, item.Instance.UniqueName); } } if (item is AspNetCore.ReportingServices.OnDemandReportRendering.Tablix) { this.VisitTablix(item as AspNetCore.ReportingServices.OnDemandReportRendering.Tablix); this.VisitStyle(item.Style); } else if (item is AspNetCore.ReportingServices.OnDemandReportRendering.SubReport) { this.VisitSubReport(item as AspNetCore.ReportingServices.OnDemandReportRendering.SubReport); } else { Global.Tracer.Assert(false); } if (flag) { this.WriteDocumentMapEndContainer(); } } this.m_generateDocMap = generateDocMap; } } }