private static ViewDefinition GetDefaultView( MshExpressionFactory expressionFactory, TypeInfoDataBase db, Collection <string> typeNames) { TypeMatch match = new TypeMatch(expressionFactory, db, typeNames); foreach (ViewDefinition viewDefinition in db.viewDefinitionsSection.viewDefinitionList) { if (viewDefinition != null) { if (DisplayDataQuery.IsOutOfBandView(viewDefinition)) { DisplayDataQuery.ActiveTracer.WriteLine("NOT MATCH OutOfBand {0} NAME: {1}", (object)ControlBase.GetControlShapeName(viewDefinition.mainControl), (object)viewDefinition.name); } else if (viewDefinition.appliesTo == null) { DisplayDataQuery.ActiveTracer.WriteLine("NOT MATCH {0} NAME: {1} No applicable types", (object)ControlBase.GetControlShapeName(viewDefinition.mainControl), (object)viewDefinition.name); } else { try { TypeMatch.SetTracer(DisplayDataQuery.ActiveTracer); if (match.PerfectMatch(new TypeMatchItem((object)viewDefinition, viewDefinition.appliesTo))) { DisplayDataQuery.TraceHelper(viewDefinition, true); return(viewDefinition); } } finally { TypeMatch.ResetTracer(); } DisplayDataQuery.TraceHelper(viewDefinition, false); } } } ViewDefinition viewDefinition1 = DisplayDataQuery.GetBestMatch(match); if (viewDefinition1 == null) { Collection <string> typeNames1 = Deserializer.MaskDeserializationPrefix(typeNames); if (typeNames1 != null) { viewDefinition1 = DisplayDataQuery.GetDefaultView(expressionFactory, db, typeNames1); } } return(viewDefinition1); }
internal static ViewDefinition GetOutOfBandView( MshExpressionFactory expressionFactory, TypeInfoDataBase db, Collection <string> typeNames) { TypeMatch typeMatch = new TypeMatch(expressionFactory, db, typeNames); foreach (ViewDefinition viewDefinition in db.viewDefinitionsSection.viewDefinitionList) { if (DisplayDataQuery.IsOutOfBandView(viewDefinition) && typeMatch.PerfectMatch(new TypeMatchItem((object)viewDefinition, viewDefinition.appliesTo))) { return(viewDefinition); } } if (!(typeMatch.BestMatch is ViewDefinition viewDefinition)) { Collection <string> typeNames1 = Deserializer.MaskDeserializationPrefix(typeNames); if (typeNames1 != null) { viewDefinition = DisplayDataQuery.GetOutOfBandView(expressionFactory, db, typeNames1); } } return(viewDefinition); }
private static ViewDefinition GetView( MshExpressionFactory expressionFactory, TypeInfoDataBase db, Type mainControlType, Collection <string> typeNames, string viewName) { TypeMatch match = new TypeMatch(expressionFactory, db, typeNames); foreach (ViewDefinition viewDefinition in db.viewDefinitionsSection.viewDefinitionList) { if (viewDefinition == null || mainControlType != viewDefinition.mainControl.GetType()) { DisplayDataQuery.ActiveTracer.WriteLine("NOT MATCH {0} NAME: {1}", (object)ControlBase.GetControlShapeName(viewDefinition.mainControl), viewDefinition != null ? (object)viewDefinition.name : (object)string.Empty); } else if (DisplayDataQuery.IsOutOfBandView(viewDefinition)) { DisplayDataQuery.ActiveTracer.WriteLine("NOT MATCH OutOfBand {0} NAME: {1}", (object)ControlBase.GetControlShapeName(viewDefinition.mainControl), (object)viewDefinition.name); } else if (viewDefinition.appliesTo == null) { DisplayDataQuery.ActiveTracer.WriteLine("NOT MATCH {0} NAME: {1} No applicable types", (object)ControlBase.GetControlShapeName(viewDefinition.mainControl), (object)viewDefinition.name); } else { if (viewName != null) { if (!string.Equals(viewDefinition.name, viewName, StringComparison.OrdinalIgnoreCase)) { DisplayDataQuery.ActiveTracer.WriteLine("NOT MATCH {0} NAME: {1}", (object)ControlBase.GetControlShapeName(viewDefinition.mainControl), (object)viewDefinition.name); continue; } } try { TypeMatch.SetTracer(DisplayDataQuery.ActiveTracer); if (match.PerfectMatch(new TypeMatchItem((object)viewDefinition, viewDefinition.appliesTo))) { DisplayDataQuery.TraceHelper(viewDefinition, true); return(viewDefinition); } } finally { TypeMatch.ResetTracer(); } DisplayDataQuery.TraceHelper(viewDefinition, false); } } ViewDefinition viewDefinition1 = DisplayDataQuery.GetBestMatch(match); if (viewDefinition1 == null) { Collection <string> typeNames1 = Deserializer.MaskDeserializationPrefix(typeNames); if (typeNames1 != null) { viewDefinition1 = DisplayDataQuery.GetView(expressionFactory, db, mainControlType, typeNames1, viewName); } } return(viewDefinition1); }