internal static ActionInfoWithDynamicImageMapCollection GetImageMaps(IEnumerable <MapAreaInfo> mapAreaInfoList, ActionInfoWithDynamicImageMapCollection actions, ReportItem reportItem)
        {
            List <ActionInfoWithDynamicImageMap> list = new List <ActionInfoWithDynamicImageMap>();

            bool[] array = new bool[actions.Count];
            foreach (MapAreaInfo mapAreaInfo in mapAreaInfoList)
            {
                int num = AddMapArea(mapAreaInfo, actions, reportItem);
                if (num > -1 && !array[num])
                {
                    list.Add(actions[num]);
                    array[num] = true;
                }
                else if (!string.IsNullOrEmpty(mapAreaInfo.ToolTip))
                {
                    string href;
                    ActionInfoWithDynamicImageMap actionInfoWithDynamicImageMap = CreateActionInfoDynamic(reportItem, null, mapAreaInfo.ToolTip, out href);
                    if (actionInfoWithDynamicImageMap != null)
                    {
                        actionInfoWithDynamicImageMap.CreateImageMapAreaInstance(mapAreaInfo.MapAreaShape, mapAreaInfo.Coordinates, mapAreaInfo.ToolTip);
                        list.Add(actionInfoWithDynamicImageMap);
                    }
                }
            }
            actions.InternalList.Clear();
            actions.InternalList.AddRange(list);
            if (actions.Count == 0)
            {
                return(null);
            }
            return(actions);
        }
        internal static ActionInfoWithDynamicImageMap CreateActionInfoDynamic(ReportItem reportItem, ActionInfo actionInfo, string toolTip, out string href, bool applyExpression)
        {
            Action actionFromActionInfo = GetActionFromActionInfo(actionInfo);

            if (actionFromActionInfo == null)
            {
                href = null;
            }
            else
            {
                href = EvaluateHref(actionFromActionInfo, out bool isExpression);
                if (isExpression && !applyExpression)
                {
                    href = null;
                }
            }
            bool flag  = actionFromActionInfo == null || href == null;
            bool flag2 = string.IsNullOrEmpty(toolTip);

            if (flag && flag2)
            {
                return(null);
            }
            ActionInfoWithDynamicImageMap actionInfoWithDynamicImageMap;

            if (!flag)
            {
                actionInfoWithDynamicImageMap = new ActionInfoWithDynamicImageMap(reportItem.RenderingContext, reportItem, actionInfo.ReportScope, actionInfo.InstancePath, actionInfo.ROMActionOwner, chartConstructor: true);
                if (actionFromActionInfo.BookmarkLink != null)
                {
                    actionInfoWithDynamicImageMap.CreateBookmarkLinkAction().Instance.BookmarkLink = href;
                }
                else if (actionFromActionInfo.Hyperlink != null)
                {
                    actionInfoWithDynamicImageMap.CreateHyperlinkAction().Instance.HyperlinkText = href;
                }
                else if (actionFromActionInfo.Drillthrough != null)
                {
                    Action action = actionInfoWithDynamicImageMap.CreateDrillthroughAction();
                    action.Drillthrough.Instance.ReportName = href;
                    EvaluateActionParameters(actionFromActionInfo.Drillthrough, action.Drillthrough);
                    _ = action.Drillthrough.Instance.DrillthroughID;
                }
            }
            else
            {
                actionInfoWithDynamicImageMap = new ActionInfoWithDynamicImageMap(reportItem.RenderingContext, reportItem, reportItem.ReportScope, reportItem.ReportItemDef, null, chartConstructor: true);
            }
            return(actionInfoWithDynamicImageMap);
        }
        private static int AddMapArea(MapAreaInfo mapAreaInfo, ActionInfoWithDynamicImageMapCollection actions, ReportItem reportItem)
        {
            if (mapAreaInfo.Tag == null)
            {
                return(-1);
            }
            int num = (int)mapAreaInfo.Tag;
            ActionInfoWithDynamicImageMap actionInfoWithDynamicImageMap = actions.InternalList[num];

            if (actionInfoWithDynamicImageMap.Actions.Count > 0 || !string.IsNullOrEmpty(mapAreaInfo.ToolTip))
            {
                actionInfoWithDynamicImageMap.CreateImageMapAreaInstance(mapAreaInfo.MapAreaShape, mapAreaInfo.Coordinates, mapAreaInfo.ToolTip);
                return(num);
            }
            return(-1);
        }
        public IPersistable CreateRIFObject(Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType objectType, ref IntermediateFormatReader context)
        {
            IPersistable persistable;

            switch (objectType)
            {
            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.Null:
                return(null);

            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ImageInstance:
                persistable = (ImageInstance)m_reportItemInstance;
                break;

            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.StyleInstance:
                persistable = m_reportItemInstance.Style;
                break;

            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ActionInstance:
                Global.Tracer.Assert(m_currentActionInfo != null && m_currentActionInfo.Actions.Count > m_currentActionIndex, "Ensure m_currentActionInfo is setup properly");
                persistable = m_currentActionInfo.Actions[m_currentActionIndex].Instance;
                m_currentActionIndex++;
                break;

            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ParameterInstance:
                Global.Tracer.Assert(m_currentParameterCollection != null && m_currentParameterCollection.Count > m_currentParameterIndex, "Ensure m_currentParameterCollection is setup properly");
                persistable = m_currentParameterCollection[m_currentParameterIndex].Instance;
                m_currentParameterIndex++;
                break;

            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ActionInfoWithDynamicImageMap:
                persistable = new ActionInfoWithDynamicImageMap(m_reportItemInstance.RenderingContext, null, (ReportItem)m_reportItemInstance.ReportElementDef, (IROMActionOwner)m_reportItemInstance.ReportElementDef);
                break;

            case Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType.ImageMapAreaInstance:
                persistable = new ImageMapAreaInstance();
                break;

            default:
                return(ProcessingRIFObjectCreator.CreateRIFObject(objectType, ref context));
            }
            persistable.Deserialize(context);
            return(persistable);
        }