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);
        }