/// <summary> /// Obtiene la metadata de un modelo /// </summary> /// <param name="assembly">Assembly donde se encuentra el modelo connect</param> /// <param name="version"></param> /// <param name="versionStructure"></param> /// <returns></returns> public static ModelMetaData GetMdm(Assembly assembly, string version, VersionStructure versionStructure) { // obtenemos global filter para asignar si es globalfilter la entidad. var globalFilters = GlobalFilter.GetGlobalFilter(assembly); // obtiene la metadata de las entidades var entitiesFirstStep = GetFirstStepEntityCollection(assembly, globalFilters); // obtiene la documentación de las entidades. var mainDocumentation = GetMainDocumentation(assembly, entitiesFirstStep); // obtiene la documentación de los filtros. var filterProcess = GetFilterProcessDocs(assembly); // asigna documentación a las entidades. var entitiesWithDocumentation = entitiesFirstStep.Select(s => Docs.GetEntityWithDocumentation(s, mainDocumentation)).ToList(); // asigna los procesos. var entitiesWithProcess = entitiesWithDocumentation.Select(s => GetEntityWithProcess(assembly, globalFilters, s, filterProcess)).ToList(); // obtiene las descripciones de las enumeraciones en el assembly. var enumDescriptions = GetEnumDescriptions(assembly); // falta asignar los deletes a entities var md = new ModelMetaData { Version = version, VersionStructure = versionStructure, GlobalFilters = globalFilters, EnumDescriptions = enumDescriptions, DocFilters = filterProcess, MdmEntities = entitiesWithProcess.ToArray(), MainDocumentation = mainDocumentation, Menu = new GroupMenuViewer[] { } }; return(md); }