Exemple #1
0
        public static TypeScriptInterfaceDefinition RefactInterface(this TypeScriptClassDefinition classDefinition, ICodeNamingConvention namingConvention = null, params string[] exclusions)
        {
            if (namingConvention == null)
            {
                namingConvention = new TypeScriptNamingConvention();
            }

            var interfaceDefinition = new TypeScriptInterfaceDefinition
            {
                Namespaces     = classDefinition.Namespaces,
                AccessModifier = AccessModifier.Public,
                Name           = namingConvention.GetInterfaceName(classDefinition.Name)
            };

            foreach (var @event in classDefinition.Events.Where(item => item.AccessModifier == AccessModifier.Public && !exclusions.Contains(item.Name)))
            {
                interfaceDefinition.Events.Add(new EventDefinition(@event.Type, @event.Name));
            }

            foreach (var property in classDefinition.Properties.Where(item => item.AccessModifier == AccessModifier.Public && !exclusions.Contains(item.Name)))
            {
                interfaceDefinition.Properties.Add(new PropertyDefinition(property.Type, property.Name)
                {
                    IsAutomatic = property.IsAutomatic,
                    IsReadOnly  = property.IsReadOnly
                });
            }

            foreach (var method in classDefinition.Methods.Where(item => item.AccessModifier == AccessModifier.Public && !exclusions.Contains(item.Name)))
            {
                interfaceDefinition.Methods.Add(new MethodDefinition(method.Type, method.Name, method.Parameters.ToArray()));
            }

            return(interfaceDefinition);
        }
        public void TestGetClassName()
        {
            var namingConvention = new TypeScriptNamingConvention();

            var name = namingConvention.GetClassName("dbService");

            Assert.True(name == "DbService");
        }
        public void TestGetInterfaceName()
        {
            var namingConvention = new TypeScriptNamingConvention();

            var name = namingConvention.GetInterfaceName("repository");

            Assert.True(name == "IRepository");
        }
Exemple #4
0
        public static TypeScriptClassDefinition RefactClass(this object obj, string name = null, ICodeNamingConvention namingConvention = null, bool convertPropertiesToFields = true)
        {
            var sourceType = obj.GetType();

            var classDefinition = new TypeScriptClassDefinition
            {
                Name = string.IsNullOrEmpty(name) ? sourceType.Name : name
            };

            if (namingConvention == null)
            {
                namingConvention = new TypeScriptNamingConvention();
            }

            foreach (var property in sourceType.GetProperties().Where(item => item.CanRead))
            {
                var type = TypeScriptTypeResolver.Resolve(property.PropertyType.Name);

                var fieldName = string.Format("m_{0}", namingConvention.GetFieldName(property.Name));

                if (convertPropertiesToFields)
                {
                    classDefinition.Fields.Add(new FieldDefinition(AccessModifier.Public, type, namingConvention.GetPropertyName(property.Name)));
                }
                else
                {
                    classDefinition.Fields.Add(new FieldDefinition(AccessModifier.Private, type, fieldName));

                    classDefinition.Properties.Add(new PropertyDefinition(AccessModifier.Public, type, namingConvention.GetPropertyName(property.Name))
                    {
                        IsAutomatic = true
                    });
                }
            }

            return(classDefinition);
        }