private static void ParsePropertySymbols(ParseResult disco, ISymbol classSymbol, ISymbol symbol) { foreach (var attrData in symbol.GetAttributes()) { var attrClassSymbol = attrData.AttributeClass; // handle errors if (attrClassSymbol is IErrorTypeSymbol) { continue; } if (attrData.AttributeConstructor == null) { continue; } var attrClassName = SymbolDisplay.ToDisplayString(attrClassSymbol); // ReSharper disable once SwitchStatementMissingSomeCases switch (attrClassName) { case "Umbraco.ModelsBuilder.ImplementPropertyTypeAttribute": var propertyAliasToIgnore = (string)attrData.ConstructorArguments[0].Value; disco.SetIgnoredProperty(classSymbol.Name /*SymbolDisplay.ToDisplayString(classSymbol)*/, propertyAliasToIgnore); break; } } }
private static void ParseClassSymbols(ParseResult disco, ISymbol symbol) { foreach (var attrData in symbol.GetAttributes()) { var attrClassSymbol = attrData.AttributeClass; // handle errors if (attrClassSymbol is IErrorTypeSymbol) { continue; } if (attrData.AttributeConstructor == null) { continue; } var attrClassName = SymbolDisplay.ToDisplayString(attrClassSymbol); switch (attrClassName) { case "Umbraco.ModelsBuilder.IgnorePropertyTypeAttribute": var propertyAliasToIgnore = (string)attrData.ConstructorArguments[0].Value; disco.SetIgnoredProperty(symbol.Name /*SymbolDisplay.ToDisplayString(symbol)*/, propertyAliasToIgnore); break; case "Umbraco.ModelsBuilder.RenamePropertyTypeAttribute": var propertyAliasToRename = (string)attrData.ConstructorArguments[0].Value; var propertyRenamed = (string)attrData.ConstructorArguments[1].Value; disco.SetRenamedProperty(symbol.Name /*SymbolDisplay.ToDisplayString(symbol)*/, propertyAliasToRename, propertyRenamed); break; // that one causes all sorts of issues with references to Umbraco.Core in Roslyn //case "Umbraco.Core.Models.PublishedContent.PublishedContentModelAttribute": // var contentAliasToRename = (string)attrData.ConstructorArguments[0].Value; // disco.SetRenamedContent(contentAliasToRename, symbol.Name /*SymbolDisplay.ToDisplayString(symbol)*/); // break; case "Umbraco.ModelsBuilder.ImplementContentTypeAttribute": var contentAliasToRename = (string)attrData.ConstructorArguments[0].Value; disco.SetRenamedContent(contentAliasToRename, symbol.Name, true /*SymbolDisplay.ToDisplayString(symbol)*/); break; } } }
private static void ParsePropertySymbols(ParseResult disco, ISymbol classSymbol, ISymbol symbol) { foreach (var attrData in symbol.GetAttributes()) { var attrClassSymbol = attrData.AttributeClass; // handle errors if (attrClassSymbol is IErrorTypeSymbol) continue; if (attrData.AttributeConstructor == null) continue; var attrClassName = SymbolDisplay.ToDisplayString(attrClassSymbol); switch (attrClassName) { case "Umbraco.ModelsBuilder.ImplementPropertyTypeAttribute": var propertyAliasToIgnore = (string)attrData.ConstructorArguments[0].Value; disco.SetIgnoredProperty(classSymbol.Name /*SymbolDisplay.ToDisplayString(classSymbol)*/, propertyAliasToIgnore); break; } } }
private static void ParseClassSymbols(ParseResult disco, ISymbol symbol) { foreach (var attrData in symbol.GetAttributes()) { var attrClassSymbol = attrData.AttributeClass; // handle errors if (attrClassSymbol is IErrorTypeSymbol) continue; if (attrData.AttributeConstructor == null) continue; var attrClassName = SymbolDisplay.ToDisplayString(attrClassSymbol); switch (attrClassName) { case "Umbraco.ModelsBuilder.IgnorePropertyTypeAttribute": var propertyAliasToIgnore = (string)attrData.ConstructorArguments[0].Value; disco.SetIgnoredProperty(symbol.Name /*SymbolDisplay.ToDisplayString(symbol)*/, propertyAliasToIgnore); break; case "Umbraco.ModelsBuilder.RenamePropertyTypeAttribute": var propertyAliasToRename = (string)attrData.ConstructorArguments[0].Value; var propertyRenamed = (string)attrData.ConstructorArguments[1].Value; disco.SetRenamedProperty(symbol.Name /*SymbolDisplay.ToDisplayString(symbol)*/, propertyAliasToRename, propertyRenamed); break; // that one causes all sorts of issues with references to Umbraco.Core in Roslyn //case "Umbraco.Core.Models.PublishedContent.PublishedContentModelAttribute": // var contentAliasToRename = (string)attrData.ConstructorArguments[0].Value; // disco.SetRenamedContent(contentAliasToRename, symbol.Name /*SymbolDisplay.ToDisplayString(symbol)*/); // break; case "Umbraco.ModelsBuilder.ImplementContentTypeAttribute": var contentAliasToRename = (string)attrData.ConstructorArguments[0].Value; disco.SetRenamedContent(contentAliasToRename, symbol.Name, true /*SymbolDisplay.ToDisplayString(symbol)*/); break; } } }