Exemplo n.º 1
0
        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);
        }
Exemplo n.º 4
0
        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}");
        }
Exemplo n.º 6
0
        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());
 }
Exemplo n.º 11
0
 public override IEnumerable <ClassModel> GetModels(IApplication application)
 {
     return(_metadataManager.Domain(application).GetClassModels()
            .Where(x => !x.IsAbstract || !application.Settings.GetEntityFrameworkCoreSettings().InheritanceStrategy().IsTablePerConcreteType()));
 }