private void CreateTypescriptModelClass(TypescriptModelClassAbstract entityType) { var props = entityType.Properties.Select(prop => _propertyTemplate.Clone() .ToString() .Replace("$propertyName$", prop.Name) .Replace("$propertyType$", DeduplicateNamespace(prop.TypescriptType))); var refs = entityType.NavigationProperties.Select(nav => _propertyTemplate.Clone() .ToString() .Replace("$propertyName$", nav.Name) .Replace("$propertyType$", nav.Type.Split('.').Last() + (nav.IsCollection ? "[]" : "")) ); var template = _entityTemplate.Clone().ToString() .Replace("$properties$", string.Join("", props)) .Replace("$navigationProperties$", string.Join("", refs)); DoRender(entityType, template); // Sometimes ComplexTypes have non-navigation references to other complex types. // Make sure we simplify the namespace. string DeduplicateNamespace(string type) { if (type.StartsWith(entityType.NameSpace)) { return(type.Split('.').Last()); } return(type); } }
private void CreateTypescriptModelClass(TypescriptModelClassAbstract entityType) { var props = entityType.Properties.Select(prop => _propertyTemplate.Clone() .ToString() .Replace("$propertyName$", prop.Name) .Replace("$propertyType$", prop.TypescriptType)); var refs = entityType.NavigationProperties.Select(nav => _propertyTemplate.Clone() .ToString() .Replace("$propertyName$", nav.Name) .Replace("$propertyType$", nav.Type.Split('.').Last() + (nav.IsCollection ? "[]" : "")) ); var template = _entityTemplate.Clone().ToString() .Replace("$properties$", string.Join("", props)) .Replace("$navigationProperties$", string.Join("", refs)); DoRender(entityType, template); }