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