internal override bool TryParse(ResolutionResult resolutionResult, out AddinResolution result) { result = new NewOrUpdatedAddinResolution(); bool enabled; AddinHeaderResolution addinHeader; if (!AddinHeader.TryParse(resolutionResult, result, out enabled, out addinHeader)) { return(false); } List <ExtensionPointResolution> extensionPoints = null; List <ExtensionBuilderResolutionGroup> extensionBuilderGroups = null; if (ExtensionSchema != null && !ExtensionSchema.TryParse(resolutionResult, result, out extensionPoints, out extensionBuilderGroups)) { return(false); } List <ExtensionResolutionGroup> extensionGroups = null; if (Extensions != null && !Extensions.TryParse(resolutionResult, result, out extensionGroups)) { return(false); } AddinActivatorResolution addinActivator = null; if (AddinActivator != null && !AddinActivator.TryParse(resolutionResult, result, out addinActivator)) { return(false); } result.Enabled = enabled; result.AddinHeader = addinHeader; result.ManifestFile = ManifestFile; result.ExtensionBuilderGroups = extensionBuilderGroups; result.ExtensionPoints = extensionPoints; result.ExtensionGroups = extensionGroups; result.AddinActivator = addinActivator; if (AssemblyFiles != null) { result.Assemblies = new List <AssemblyResolution>(AssemblyFiles.Count); foreach (var assemblyFile in AssemblyFiles) { result.Assemblies.Add(AssemblyResolution.CreateAddinAssembly(result, assemblyFile)); } } if (DataFiles != null) { result.DataFiles = new List <DataFileResolution>(DataFiles.Count); foreach (var dataFile in DataFiles) { result.DataFiles.Add(dataFile); } } return(true); }
internal override bool Introspect(INameConvention nameConvention, ResolutionResult resolutionResult) { var result = true; if (AddinHeader == null) { resolutionResult.AddError( string.Format("The addin located at [{0}] does not define any addin properties (name, guid, etc) in the Addin node of manifest file, which is required!", ManifestFile.Directory)); result = false; } else { result &= AddinHeader.Introspect(ManifestFile.Directory, resolutionResult); } if (!result) { return(false); } if (AddinActivator != null) { result &= AddinActivator.Introspect(resolutionResult); } if (ExtensionSchema == null && Extensions == null) { resolutionResult.AddError(string.Format( "A valid addin manifest file must contain either an extension schema node, or an extension node, or both, while the addin [{0}] located at [{1}] does not provide any of them!", AddinHeader.Name, ManifestFile.Directory)); result = false; } if (ExtensionSchema != null) { result &= ExtensionSchema.Introspect(nameConvention, resolutionResult); } if (Extensions != null) { result &= Extensions.Introspect(resolutionResult); } return(result); }
public async Task <UserAttributeModel> GetUserAttribute() { try { var client = GraphClientUtility.GetGraphServiceClient(); if (client == null) { _logger.LogError("UserAttributeService-GetUserAttribute: Unable to create proxy for the Azure AD B2C graph client"); return(null); } _logger.LogInfo("UserAttributeService-GetUserAttribute: [Started] to fetch user attribute in Azure AD B2C"); var extensionName = GraphClientUtility.ExtensionName; var schemaExtensions = await client.SchemaExtensions.Request().GetAsync(); var userAttributeModel = new UserAttributeModel(); var extensionSchemas = new List <ExtensionSchema>(); while (schemaExtensions.NextPageRequest != null) { foreach (SchemaExtension extension in schemaExtensions.CurrentPage) { try { if (extension.Id.Contains(extensionName)) { userAttributeModel.Id = extension.Id; foreach (var item in extension.Properties) { try { ExtensionSchema extensionSchema = new ExtensionSchema(); extensionSchema.Name = item.Name; extensionSchema.DataType = item.Type; extensionSchemas.Add(extensionSchema); } catch (Exception ex) { _logger.LogError($"ExtensionController-GetExtensions: fail to add extension [name:{item.Name}] to collection "); _logger.LogError(ex); } } userAttributeModel.ExtensionSchemas = extensionSchemas; } } catch (Exception ex) { _logger.LogError($"ExtensionController-GetExtensions: fail to add extension [name:{extension.Id}] to collection "); _logger.LogError(ex); } } schemaExtensions = await schemaExtensions.NextPageRequest.GetAsync(); } return(userAttributeModel); } catch (Exception ex) { _logger.LogError("ExtensionController-GetExtensions: Exception occured...."); _logger.LogError(ex); } return(null); }