Esempio n. 1
0
        protected override string GenerateCodeInternal()
        {
            return($@"export enum {_enumType.Name} {{{CodeStr.Foreach(
                    System.Enum.GetValues(_enumType).Cast<object>(), enumValue => $@"
    {System.Enum.GetName(_enumType, enumValue)} = {Convert.ChangeType(enumValue, System.Enum.GetUnderlyingType(_enumType)).ToString()},")
                .TrimEnd(',')}
}}
");
        }
Esempio n. 2
0
        protected override string GenerateCodeInternal()
        {
            var properties = GetProperties(_dtoType).ToArray();

            return($@"{Imports(properties.Select(x => x.PropertyType).ToArray())}
export interface {_dtoType.Name} {{{CodeStr.Foreach(ConvertProperties(properties), prop => $@"
    {prop.Name}: {prop.TypescriptType};")}
}}
");
        }
Esempio n. 3
0
        protected override string GenerateCodeInternal()
        {
            var def = _httpRequestHandlerDefinition;
            var queryStringParameters = def.Parameters.Where(x => x.BindingType == BindingType.FromQuery).ToArray();
            var routeParameters       = def.Parameters.Where(x => x.BindingType == BindingType.FromRoute).ToArray();
            var bodyParameters        = def.Parameters.Where(x => x.BindingType == BindingType.FromBody).ToArray();

            var requestProperties  = GetProperties(def.Definition.RequestType);
            var responseProperties = GetProperties(def.Definition.ResponseType);

            var allProperties = requestProperties.Concat(responseProperties);

            var typescriptProperties = ConvertProperties(def.Parameters.Select(t => t.PropertyInfo)).ToArray();

            return($@"import {{ HttpRequest, IRequestDispatcher }} from '../common';
{Imports(allProperties.Select(x => x.PropertyType).ToArray())}
export class {def.Definition.RequestType.Name} {{{CodeStr.Foreach(typescriptProperties, prop => $@"
    public {prop.Name}: {prop.TypescriptType};")}
    constructor(init?: {{{CodeStr.Foreach(typescriptProperties, prop => 
                    $@"{prop.Name}?: {prop.TypescriptType}, ").TrimEnd(' ', ',')}}}) {{
        if(init) {{
{CodeStr.Foreach(typescriptProperties, prop => $@"
            this.{prop.Name} = init.{prop.Name};")}
        }}
    }}
    private __request = () => <HttpRequest<{def.Definition.ResponseType.Name}>>{{
        method: '{def.HttpMethod.ToString().ToLower()}',
        route: '{def.Route}'{CodeStr.Foreach(routeParameters, prop =>
                $".replace('{{{prop.PropertyName}}}', this.{CamelCase(prop.PropertyInfo.Name)}{CodeStr.If(prop.PropertyInfo.PropertyType != typeof(string), ".toString()")})")}{
        CodeStr.If((def.HttpMethod == HttpMethod.Patch || def.HttpMethod == HttpMethod.Delete || def.HttpMethod == HttpMethod.Post || def.HttpMethod == HttpMethod.Put) && bodyParameters.Any(), $@",
        body: {{{CodeStr.Foreach(bodyParameters, prop => $@"
            {CamelCase(prop.PropertyInfo.Name)}: this.{CamelCase(prop.PropertyInfo.Name)},").TrimEnd(',')}
        }}")},
        queryString: {{{CodeStr.Foreach(queryStringParameters, prop => $@"
            {CamelCase(prop.PropertyInfo.Name)}: this.{CamelCase(prop.PropertyInfo.Name)}{CodeStr.If(prop.PropertyInfo.PropertyType != typeof(string), ".toString()")},").TrimEnd(',')}
        }}
    }};
    public execute = (dispatcher: IRequestDispatcher) => dispatcher.execute(this.__request());
}}

export interface {def.Definition.ResponseType.Name} {{{CodeStr.Foreach(ConvertProperties(responseProperties), prop => $@"
    {prop.Name}: {prop.TypescriptType};")}
}}
");
        }
Esempio n. 4
0
 /// <summary>
 /// Get value from beginning position to current position
 /// </summary>
 /// <returns>String value</returns>
 public string GetStartToCurrent()
 {
     return(CodeStr.Substring(Start, (Position - Start)));
 }