public static bool TryGetMetadata(this IContentMetadataManager contentMetadataManager, object model, out ContentMetadataProvider contentMetadataProvider) { if (model == null) { throw new ArgumentNullException(nameof(model)); } return(contentMetadataManager.TryGetMetadata(model.GetType(), out contentMetadataProvider)); }
public ContentManager(IContentStore <TEntry> store, IContentMetadataManager contentMetadataManager, IServiceProvider services) { this.contentMetadataManager = contentMetadataManager ?? throw new ArgumentNullException(nameof(contentMetadataManager)); this.store = store ?? throw new ArgumentNullException(nameof(store)); this.services = services ?? throw new ArgumentNullException(nameof(services)); modelMetadataProvider = contentMetadataManager.GetMetadata <TModel>(); }
public PageMetadataManager(IContentMetadataManager contentManager) { this.contentManager = contentManager ?? throw new ArgumentNullException(nameof(contentManager)); foreach (var contentMetadataProvider in contentManager.MetadataProviders) { TryRegisterPageType(contentMetadataProvider, out PageMetadataProvider pageMetadataProvider); } }
public static ContentMetadataProvider GetMetadataByModelData(this IContentMetadataManager contentMetadataManager, IDictionary <string, object> modelData) { if (modelData == null) { throw new ArgumentNullException(nameof(modelData)); } if (!modelData.TryGetValue(ContentMetadataProvider.ContentTypeNameDataKey, out object typeNameValue)) { return(null); } contentMetadataManager.TryGetMetadata((string)typeNameValue, out ContentMetadataProvider contentMetadata); return(contentMetadata); }
public static ContentExplorer Create(IContentMetadataManager metadataManager, object model) { if (metadataManager == null) { throw new ArgumentNullException(nameof(metadataManager)); } if (model == null) { throw new ArgumentNullException(nameof(model)); } var contentMetadata = metadataManager.GetMetadata(model.GetType()); return(new ContentExplorer(model, contentMetadata)); }
public static void ApplyInjections(this IContentMetadataManager contentMetadataManager, object model, IServiceProvider serviceProvider, bool injectInnerModels) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } if (!contentMetadataManager.TryGetMetadata(model, out ContentMetadataProvider contentMetadataProvider)) { throw new ArgumentException(); } contentMetadataProvider.ApplyInjections(model, serviceProvider, injectInnerModels); }
Task IAsyncLifetime.InitializeAsync() { var contentTypeResolver = new Infrastructure.AssemblyContentTypeLocator(new System.Reflection.Assembly[] { typeof(TestPageContent).Assembly }); var services = new ServiceCollection(); services.AddSingleton <IContentMetadataManager, ContentMetadataManager>(); services.AddSingleton <Infrastructure.IContentTypeLocator>(contentTypeResolver); serviceProvider = services.BuildServiceProvider(); serviceScope = serviceProvider.CreateScope(); metadataManager = serviceScope.ServiceProvider.GetRequiredService <IContentMetadataManager>(); var metadataProvider = metadataManager.GetMetadata <TestContent>(); if (!metadataProvider.TryGetField("Text", out field)) { throw new System.Exception(); } return(Task.CompletedTask); }
public async Task <IActionResult> ChangeModelTypeAsync([FromQuery] Guid editId, [FromQuery] string modelPath, [FromQuery] string modelType, [FromServices] IContentMetadataManager contentMetadataManager, [FromServices] Views.IViewLocator viewLocator) { if (modelType == null) { return(BadRequest()); } var editSession = await pageContentService.FindEditByIdAsync(editId); if (editSession == null) { return(BadRequest()); } var page = await pageService.FindPageByIdAsync(editSession.PageId); if (page == null) { return(BadRequest()); } if (modelPath == null) { modelPath = string.Empty; } var newModelType = contentMetadataManager.GetMetadata(modelType); var pageContent = await pageContentService.GetContentAsync(editSession); var pageContentExplorer = ContentExplorer.Create(contentMetadataManager, pageContent); var contentExplorer = pageContentExplorer.Navigate(modelPath); if (contentExplorer == null) { return(BadRequest()); } contentExplorer.Field.ChangeType(contentExplorer.Model, modelType); var newItem = newModelType.CreateModelInstance(); var view = viewLocator.FindView(newModelType.ModelType); if (view != null && view.DefaultModelData != null) { newItem = newModelType.ConvertDictionaryToContentModel(view.DefaultModelData); } return(Ok()); }
public JsonContentDataSerializerTests() { var contentTypeResolver = new Infrastructure.AssemblyContentTypeLocator(new System.Reflection.Assembly[] { typeof(TestPageContent).Assembly }); metadataManager = new ContentMetadataManager(contentTypeResolver); }
public ContentTypeListController(IContentMetadataManager contentMetadataManager) { this.contentMetadataManager = contentMetadataManager ?? throw new ArgumentNullException(nameof(contentMetadataManager)); }
public static ContentMetadataProvider GetMetadata <T>(this IContentMetadataManager contentMetadataManager) where T : class { return(contentMetadataManager.GetMetadata(typeof(T))); }
public static ContentExplorer Create(IContentMetadataManager metadataManager, object model, string modelPath) { var explorer = Create(metadataManager, model); return(explorer.Navigate(modelPath)); }