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 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 static bool HasStringValidation(this DTOFieldModel model) { return(model.HasStereotype("String Validation")); }
public static StringValidation GetStringValidation(this DTOFieldModel model) { var stereotype = model.GetStereotype("String Validation"); return(stereotype != null ? new StringValidation(stereotype) : null); }
public virtual string PropertyAttributes(DTOModel dto, DTOFieldModel field) => null;
public override string PropertyAttributes(DTOModel dto, DTOFieldModel field) { return(@" [DataMember]"); }
public string PropertyAttributes(DTOFieldModel field) { return(GetDecorators().Aggregate(x => x.PropertyAttributes(Model, field))); }