public static Dictionary <Type, ModuleArtifact> CreateArtifacts(this ModuleChild moduleChild, Type moduleType, ModuleArtifactType moduleArtifactType) { var artifactTypes = moduleType.Assembly.GetTypes().Where(type => !type.IsAbstract).Where(type => moduleArtifactType.IsValidArtifactType(type)).ToArray(); var objectSpace = moduleChild.XPObjectSpace(); return(artifactTypes.ToList().ToDictionary(type => type, type => CreateArtifact(moduleChild, moduleArtifactType, objectSpace, type))); }
private static ModuleArtifact CreateArtifact(ModuleChild moduleChild, ModuleArtifactType moduleArtifactType,IObjectSpace objectSpace, Type type){ var moduleArtifact = objectSpace.CreateObject<ModuleArtifact>(); moduleArtifact.Name = type.Name; moduleArtifact.Type = moduleArtifactType; moduleArtifact.ModuleChilds.Add(moduleChild); return moduleArtifact; }
public static IList <ExtenderInterface> CreateExtenderInterfaces(this ModuleChild moduleChild, Type artifactType) { var modelInterfaceExtenders = GetModelInterfaceExtenders(artifactType); var objectSpace = moduleChild.XPObjectSpace(); var extenderInterfaces = new List <ExtenderInterface>(); foreach (var extendedInterface in modelInterfaceExtenders.GetExtendedInterfaces().Where(type => !type.Name.StartsWith("IModelModelAdaptor"))) { var interfaceExtenders = modelInterfaceExtenders.GetInterfaceExtenders(extendedInterface); foreach (var interfaceExtender in interfaceExtenders) { Type extender = interfaceExtender; var extenderInterface = objectSpace.GetObject <ExtenderInterface>(node => node.Name == extender.Name); if (objectSpace.IsNewObject(extenderInterface)) { extenderInterface.Name = interfaceExtender.Name; extenderInterface.ExtendedInterface = GetExtendedInterface(objectSpace, extendedInterface); } extenderInterface.ModuleChilds.Add(moduleChild); var modelNodeAttributes = CreateModelNodeAttributes(objectSpace, interfaceExtender); extenderInterface.Attributes.AddRange(modelNodeAttributes); extenderInterfaces.Add(extenderInterface); } } return(extenderInterfaces); }
private static ModuleArtifact CreateArtifact(ModuleChild moduleChild, ModuleArtifactType moduleArtifactType, IObjectSpace objectSpace, Type type) { var moduleArtifact = objectSpace.CreateObject <ModuleArtifact>(); moduleArtifact.Name = type.Name; moduleArtifact.Type = moduleArtifactType; moduleArtifact.ModuleChilds.Add(moduleChild); return(moduleArtifact); }
public static void CreateArtifacts(this ModuleChild moduleChild, Type moduleType) { moduleChild.CreateArtifacts(moduleType, ModuleArtifactType.ViewItem); moduleChild.CreateArtifacts(moduleType, ModuleArtifactType.ListEditor); moduleChild.CreateArtifacts(moduleType, ModuleArtifactType.Permission); var controllers = moduleChild.CreateArtifacts(moduleType, ModuleArtifactType.Controller); InterfaceBuilder.SkipAssemblyCleanup = true; foreach (var pair in controllers) { var extenderInterfaces = moduleChild.CreateExtenderInterfaces(pair.Key); pair.Value.Artifacts.AddRange(extenderInterfaces); moduleChild.CreateArtifacts(moduleType, ModuleArtifactType.Action); } InterfaceBuilder.SkipAssemblyCleanup = false; moduleChild.CreateArtifacts(moduleType, ModuleArtifactType.BusinessObject); }
private static string GroupedModuleName(ModuleChild moduleChild) { var groupedModuleName = Regex.Match(moduleChild.AssemblyName, "Xpand.ExpressApp.([^.]*)", RegexOptions.Singleline | RegexOptions.IgnoreCase).Groups[1].Value; return new[] { "", "Web", "Win" }.Contains(groupedModuleName) ? "Core" : groupedModuleName; }
private static string GroupedModuleName(ModuleChild moduleChild) { var groupedModuleName = Regex.Match(moduleChild.AssemblyName, "Xpand.ExpressApp.([^.]*)", RegexOptions.Singleline | RegexOptions.IgnoreCase).Groups[1].Value; return(new[] { "", "Web", "Win" }.Contains(groupedModuleName) ? "Core" : groupedModuleName); }