Esempio n. 1
0
        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);
        }