public bool IsMatch() { var matchingEntities = _metadataManager.Domain(_application).GetClassModels().Where(x => new[] { $"add{x.Name.ToLower()}", $"addnew{x.Name.ToLower()}", $"create{x.Name.ToLower()}", $"createnew{x.Name.ToLower()}", }.Contains(_template.Model.Name.ToLower().RemoveSuffix("command"))).ToList(); if (matchingEntities.Count() == 1) { _foundEntity = matchingEntities.Single(); var repositoryInterface = _template.GetTypeName(EntityRepositoryInterfaceTemplate.TemplateId, _foundEntity, new TemplateDiscoveryOptions() { ThrowIfNotFound = false }); if (repositoryInterface == null) { return(false); } _repository = new RequiredService(type: repositoryInterface, name: repositoryInterface.Substring(1).ToCamelCase()); return(true); } return(false); }
private ClassModel GetDomainForService(ServiceModel service) { var serviceIdentifier = service.Name.RemoveSuffix("RestController", "Controller", "Service", "Manager").ToLower(); var entities = _metadataManager.Domain(Template.Project.Application).GetClassModels(); return(entities.SingleOrDefault(e => e.Name.Equals(serviceIdentifier, StringComparison.InvariantCultureIgnoreCase) || e.Name.Pluralize().Equals(serviceIdentifier, StringComparison.InvariantCultureIgnoreCase))); }
public bool IsMatch() { if (_template.Model.TypeReference.Element == null) { return(false); } if (_template.Model.Properties.Count() != 1) { return(false); } var matchingEntities = _metadataManager.Domain(_application).GetClassModels().Where(x => new[] { $"get{x.Name.ToLower()}", $"get{x.Name.ToLower()}byid", $"find{x.Name.ToLower()}", $"find{x.Name.ToLower()}byid", $"lookup{x.Name.ToLower()}", $"lookup{x.Name.ToLower()}byid", }.Contains(_template.Model.Name.ToLower().RemoveSuffix("query"))).ToList(); if (matchingEntities.Count() != 1) { return(false); } _foundEntity = matchingEntities.Single(); _dtoToReturn = _metadataManager.Services(_application).GetDTOModels().SingleOrDefault(x => x.Id == _template.Model.TypeReference.Element.Id && x.IsMapped && x.Mapping.ElementId == _foundEntity.Id); if (_dtoToReturn == null) { return(false); } _idProperty = _template.Model.Properties.FirstOrDefault(p => string.Equals(p.Name, "id", StringComparison.InvariantCultureIgnoreCase) || string.Equals(p.Name, $"{_foundEntity.Name}Id", StringComparison.InvariantCultureIgnoreCase)); if (_idProperty == null) { return(false); } var repositoryInterface = _template.GetTypeName(EntityRepositoryInterfaceTemplate.TemplateId, _foundEntity, new TemplateDiscoveryOptions() { ThrowIfNotFound = false }); if (repositoryInterface == null) { return(false); } _repository = new RequiredService(type: repositoryInterface, name: repositoryInterface.Substring(1).ToCamelCase()); return(true); }
public override IEnumerable <ClassModel> GetModels(Engine.IApplication application) { var allModels = _metadataManager.Domain(application).GetClassModels(); var filteredModels = allModels.Where(p => _stereotypeNames.Any(p.HasStereotype)); if (!filteredModels.Any()) { return(allModels); } return(filteredModels); }
private string GetBaseTypeInterface() { var typeId = Model.GetStereotypeProperty <string>("Base Type", "Type"); if (typeId == null) { return(null); } // GCB - There is definitely a better way to handle this now (V3.0) var type = _metadataManager.Domain(OutputTarget.Application).GetTypeDefinitionModels().FirstOrDefault(x => x.Id == typeId); if (type != null) { return($"I{type.Name}"); } throw new Exception($"Could not find Base Type for class {Model.Name}"); }
public bool IsMatch() { if (_template.Model.TypeReference.Element == null || !_template.Model.TypeReference.IsCollection) { return(false); } var matchingEntities = _metadataManager.Domain(_application).GetClassModels().Where(x => new[] { $"get{x.Name.ToPluralName().ToLower()}", $"getall{x.Name.ToPluralName().ToLower()}", $"find{x.Name.ToPluralName().ToLower()}", $"findall{x.Name.ToPluralName().ToLower()}", $"lookup{x.Name.ToPluralName().ToLower()}", $"lookupall{x.Name.ToPluralName().ToLower()}", }.Contains(_template.Model.Name.ToLower().RemoveSuffix("query"))).ToList(); if (matchingEntities.Count() != 1) { return(false); } _foundEntity = matchingEntities.Single(); _dtoToReturn = _metadataManager.Services(_application).GetDTOModels().SingleOrDefault(x => x.Id == _template.Model.TypeReference.Element.Id && x.IsMapped && x.Mapping.ElementId == _foundEntity.Id); if (_dtoToReturn == null) { return(false); } var repositoryInterface = _template.GetTypeName(EntityRepositoryInterfaceTemplate.TemplateId, _foundEntity, new TemplateDiscoveryOptions() { ThrowIfNotFound = false }); if (repositoryInterface == null) { return(false); } _repository = new RequiredService(type: repositoryInterface, name: repositoryInterface.Substring(1).ToCamelCase()); return(true); }
public bool IsMatch() { if (_template.Model.Properties.Count() != 1) { return(false); } var matchingEntities = _metadataManager.Domain(_application).GetClassModels().Where(x => new[] { $"delete{x.Name.ToLower()}", $"remove{x.Name.ToLower()}", }.Contains(_template.Model.Name.ToLower().RemoveSuffix("command"))).ToList(); if (matchingEntities.Count() != 1) { return(false); } _foundEntity = matchingEntities.Single(); _idProperty = _template.Model.Properties.FirstOrDefault(p => string.Equals(p.Name, "id", StringComparison.InvariantCultureIgnoreCase) || string.Equals(p.Name, $"{_foundEntity.Name}Id", StringComparison.InvariantCultureIgnoreCase)); if (_idProperty == null) { return(false); } var repositoryInterface = _template.GetTypeName(EntityRepositoryInterfaceTemplate.TemplateId, _foundEntity, new TemplateDiscoveryOptions() { ThrowIfNotFound = false }); if (repositoryInterface == null) { return(false); } _repository = new RequiredService(type: repositoryInterface, name: repositoryInterface.Substring(1).ToCamelCase()); return(true); }
public override IEnumerable <ClassModel> GetModels(Engine.IApplication application) { return(_metadataManager.Domain(application).GetClassModels().ToList()); }
public override IEnumerable <EnumModel> GetModels(IApplication application) { return(_metadataManager.Domain(application).GetEnumModels()); }
public override IList <ClassModel> GetModels(IApplication application) { return(_metadataManager.Domain(application).GetClassModels().ToList()); }
public override IEnumerable <ClassModel> GetModels(IApplication application) { return(_metadataManager.Domain(application).GetClassModels() .Where(x => !x.IsAbstract || !application.Settings.GetEntityFrameworkCoreSettings().InheritanceStrategy().IsTablePerConcreteType())); }