public static T ReadViewInLayer <T>(this IModelApplication modelApplication, T modelView, string newViewId) where T : IModelView { var modelViews = modelApplication.Application.Views ?? modelApplication.AddNode <IModelViews>(); if (modelViews[modelView.Id] != null) { throw new NotSupportedException($"{modelView.Id} already exists"); } IModelView newNode; switch (modelView) { case IModelDetailView _: newNode = modelViews.AddNode <IModelDetailView>(); break; case IModelListView _: newNode = modelViews.AddNode <IModelListView>(); break; case IModelDashboardView _: newNode = modelViews.AddNode <IModelDashboardView>(); break; default: throw new NotImplementedException(); } newNode.ReadFromModel(modelView); newNode.Id = newViewId; return((T)newNode); }
public static IModelClass GetModelClassNode(IModelApplication application, string className) { IModelClass result = null; if (!string.IsNullOrEmpty(className)) { if (application.BOModel == null) { application.AddNode <IModelBOModel>("BOModel"); } result = application.BOModel[className]; if (result == null) { result = application.BOModel.AddNode <IModelClass>(className); } } return(result); }