public TerrainEffectInterpreter() { // Terrain ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainClearValues, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainClearValues, i, EffectParameterHint.PerInstance)); // TerrainTile ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileOrigin, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileOrigin, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileSize, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileSize, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileHeightTexture, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileHeightTexture, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileHeightTextureSize, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileHeightTextureSize, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileNormalTexture, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileNormalTexture, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileNormalTextureSize, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileNormalTextureSize, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileHoleTexture, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileHoleTexture, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainTileHoleTextureSize, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainTileHoleTextureSize, i, EffectParameterHint.PerInstance)); // TerrainNode ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainHoleThreshold, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainHoleThreshold, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmap, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmap, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmapCellSize, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmapCellSize, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmapCellsPerLevel, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmapCellsPerLevel, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmapNumberOfLevels, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmapNumberOfLevels, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmapNumberOfColumns, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmapNumberOfColumns, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmapLevelBias, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmapLevelBias, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainBaseClipmapOrigins, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainBaseClipmapOrigins, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmap, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmap, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapCellSizes, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapCellSizes, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapCellsPerLevel, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapCellsPerLevel, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapNumberOfLevels, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapNumberOfLevels, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapNumberOfColumns, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapNumberOfColumns, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapLevelBias, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapLevelBias, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapOrigins, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapOrigins, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailClipmapOffsets, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailClipmapOffsets, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainDetailFadeRange, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainDetailFadeRange, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(TerrainEffectParameterSemantics.TerrainEnableAnisotropicFiltering, (p, i) => new EffectParameterDescription(p, TerrainEffectParameterSemantics.TerrainEnableAnisotropicFiltering, i, EffectParameterHint.PerInstance)); }
private Core() { // TODO.............................. FIX THIS //if( ProductFilesApp.Enabled) //{ // Apps.Add(m_ProductFilesApp); //} try { Defaults DefaultsFile; XmlSerializer Serialiser = new XmlSerializer(typeof(Defaults)); using (FileStream Stream = new FileStream(DefaultsFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { DefaultsFile = (Defaults)Serialiser.Deserialize(Stream); } DefaultsFile.Parameters.ForEach(p => ParameterDescriptions.Add(p.Id, p)); } catch (Exception) { } LoadDEKResources(); }
protected override void RenderImplementation() { string httpMethodName = HttpMethod.ToString().ToLower(); //Method is always uppercase. //deal with parameters var parameters = ParameterDescriptions.Select(d => new CodeParameterDeclarationExpression(TypeMapper.MapCodeTypeReferenceToTsText(d.ParameterTypeReference), d.Name)) .ToList(); var returnTypeText = TypeMapper.MapCodeTypeReferenceToTsText(ReturnTypeReference); if (returnTypeText == "any" || String.IsNullOrEmpty(returnTypeText) || returnTypeText == "response") { returnTypeText = "void"; } var callbackTypeText = String.Format("(data : {0}) => any", returnTypeText); Debug.WriteLine("callback: " + callbackTypeText); var callbackTypeReference = new CodeSnipetTypeReference(callbackTypeText); parameters.Add(new CodeParameterDeclarationExpression(callbackTypeReference, "callback")); Method.Parameters.AddRange(parameters.ToArray()); if (RequestBodyCodeTypeReference != null) { CodeParameterDeclarationExpression p = new CodeParameterDeclarationExpression(RequestBodyCodeTypeReference, "requestBody"); Method.Parameters.Add(p); } if (settings.HandleHttpRequestHeaders) { Method.Parameters.Add(new CodeParameterDeclarationExpression( "() => {[header: string]: string}", "headersHandler?")); } var jsUriQuery = UriQueryHelper.CreateUriQueryForTs(RelativePath, ParameterDescriptions); string uriText = jsUriQuery == null ? $"this.baseUri + '{RelativePath}'" : RemoveTrialEmptyString($"this.baseUri + '{jsUriQuery}'"); string headerHandlerCall = settings.HandleHttpRequestHeaders ? ", headersHandler" : String.Empty; if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"this.httpClient.{httpMethodName}({uriText}, callback, this.error, this.statusCode{headerHandlerCall});")); } else if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (RequestBodyCodeTypeReference == null) // no body { Method.Statements.Add(new CodeSnippetStatement($"this.httpClient.{httpMethodName}({uriText}, null, callback, this.error, this.statusCode, '{contentType}'{headerHandlerCall});")); } else { Method.Statements.Add(new CodeSnippetStatement($"this.httpClient.{httpMethodName}({uriText}, requestBody, callback, this.error, this.statusCode, '{contentType}'{headerHandlerCall});")); } } else { Debug.Assert(false, $"How come with {httpMethodName}?"); } }
public DefaultEffectInterpreter() { // Animation ParameterDescriptions.Add(DefaultEffectParameterSemantics.MorphWeight, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.MorphWeight, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.Bones, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Bones, i, EffectParameterHint.PerInstance)); // Material ParameterDescriptions.Add(DefaultEffectParameterSemantics.DiffuseColor, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.DiffuseColor, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.DiffuseTexture, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.DiffuseTexture, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.SpecularColor, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.SpecularColor, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.SpecularTexture, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.SpecularTexture, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.SpecularPower, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.SpecularPower, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.EmissiveColor, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.EmissiveColor, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.EmissiveTexture, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.EmissiveTexture, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.Opacity, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Opacity, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.Alpha, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Alpha, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.BlendMode, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.BlendMode, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.ReferenceAlpha, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.ReferenceAlpha, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.NormalTexture, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.NormalTexture, i, EffectParameterHint.Material)); //ParameterDescriptions.Add(DefaultEffectParameterSemantics.Height, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Height, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.FresnelPower, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.FresnelPower, i, EffectParameterHint.Material)); //ParameterDescriptions.Add(DefaultEffectParameterSemantics.Refraction, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Refraction, i, EffectParameterHint.Material)); //ParameterDescriptions.Add(DefaultEffectParameterSemantics.TextureMatrix, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.TextureMatrix, i, EffectParameterHint.Material)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.InstanceColor, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.InstanceColor, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.InstanceAlpha, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.InstanceAlpha, i, EffectParameterHint.PerInstance)); // Render Properties ParameterDescriptions.Add(DefaultEffectParameterSemantics.PassIndex, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.PassIndex, i, EffectParameterHint.PerPass)); //ParameterDescriptions.Add(DefaultEffectParameterSemantics.RenderTargetSize, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.RenderTargetSize, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.SourceTexture, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.SourceTexture, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.ViewportSize, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.ViewportSize, i, EffectParameterHint.Global)); // Simulation ParameterDescriptions.Add(DefaultEffectParameterSemantics.Time, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Time, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.LastTime, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.LastTime, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.ElapsedTime, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.ElapsedTime, i, EffectParameterHint.Global)); // Deferred Rendering ParameterDescriptions.Add(DefaultEffectParameterSemantics.GBuffer, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.GBuffer, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.LightBuffer, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.LightBuffer, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.NormalsFittingTexture, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.NormalsFittingTexture, i, EffectParameterHint.Global)); // Misc //ParameterDescriptions.Add(DefaultEffectParameterSemantics.RandomValue, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.RandomValue, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.DitherMap, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.DitherMap, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.JitterMap, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.JitterMap, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.JitterMapSize, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.JitterMapSize, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.NoiseMap, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.NoiseMap, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.Debug, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.Debug, i, EffectParameterHint.Global)); ParameterDescriptions.Add(DefaultEffectParameterSemantics.NaN, (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.NaN, i, EffectParameterHint.Global)); }
private void AddParameterCommandExecute([CanBeNull] object obj) { var castedParameter = obj as ActionParameterViewModelBase; if (castedParameter != null) { var originalIndex = Parameters.IndexOf(castedParameter); AddParameter(ParameterDescriptions.First(), originalIndex + 1); } else { AddParameter(ParameterDescriptions.First(), Parameters.Count); } }
public FunctionApiDescription( MethodInfo methodInfo, string name, IList <ApiParameterDescription> parameters, string verb, string route, IList <ApiResponseType> responseTypes) { ActionDescriptor = new ControllerActionDescriptor { MethodInfo = methodInfo, ControllerName = name, DisplayName = name, ControllerTypeInfo = methodInfo?.DeclaringType?.GetTypeInfo() ?? throw new ArgumentNullException(nameof(methodInfo)), Parameters = parameters .Where(x => x.ParameterDescriptor != null) .Select(x => x.ParameterDescriptor).ToList(), RouteValues = new Dictionary <string, string> { { "controller", name }, { "action", name } }, ActionConstraints = new List <IActionConstraintMetadata> { new HttpMethodActionConstraint(new[] { verb }) } }; RelativePath = route; HttpMethod = verb?.ToUpperInvariant(); if (responseTypes != null) { foreach (var responseType in responseTypes) { SupportedResponseTypes.Add(responseType); } } if (parameters != null) { foreach (var parameter in parameters) { ParameterDescriptions.Add(parameter); } } } }
public ApiMethodModel(ApiDescription apiDescription) { Method = apiDescription.HttpMethod.Method; MethodName = (apiDescription.ActionDescriptor as ReflectedHttpActionDescriptor)?.MethodInfo.Name; int urlLenth = apiDescription.RelativePath.IndexOf('?') == -1 ? apiDescription.RelativePath.Length : apiDescription.RelativePath.IndexOf('?'); Url = apiDescription.RelativePath.Substring(0, urlLenth); //отсекли параметры ControllerName = apiDescription.ActionDescriptor.ControllerDescriptor.ControllerName; ActionName = apiDescription.ActionDescriptor.ActionName; ParameterDescriptions = apiDescription.ParameterDescriptions; var parList = new List <string>(); foreach (var parameter in ParameterDescriptions.Where(p => p.Source == ApiParameterSource.FromUri)) { parList.Add($"{parameter.Name}: {parameter.Name}"); } if (parList.Any()) { Params = "{" + $"{string.Join(",", parList)}" + "}"; } ParametersString = string.Join(", ", ParameterDescriptions.Select(p => p.Name)); var nonUriParam = ParameterDescriptions.FirstOrDefault(p => p.Source != ApiParameterSource.FromUri); if (nonUriParam != null) { //Определяем тип параметра, и если это DataSourceRequest, то используем функцию dsRead(url, options, filter) if (typeof(IDataSourceRequest).IsAssignableFrom(nonUriParam.ParameterDescriptor.ParameterType)) { FunctionType = FunctionType.DsRead; } //Если тип возвращаемого параметра IHttpResponseFile, то загрузка файла методом core.dsDownload if (typeof(IHttpResponseFile).IsAssignableFrom(apiDescription.ResponseDescription.DeclaredType)) { FunctionType = FunctionType.DsDownload; } NonUriParam = nonUriParam.Name; } }
public StockEffectInterpreter() { ParameterDescriptions.Add("Texture", (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.DiffuseTexture, 0, EffectParameterHint.Material)); // Texture2 is explicitly handled below. //ParameterDescriptions.Add("Texture2", (p, i) => new EffectParameterDescription(p, "Texture2", 0, EffectParameterHint.Material)); ParameterDescriptions.Add("DiffuseColor", (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.DiffuseColor, 0, EffectParameterHint.Material)); ParameterDescriptions.Add("EmissiveColor", (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.EmissiveColor, 0, EffectParameterHint.Material)); ParameterDescriptions.Add("SpecularColor", (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.SpecularColor, 0, EffectParameterHint.Material)); ParameterDescriptions.Add("SpecularPower", (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.SpecularPower, 0, EffectParameterHint.Material)); ParameterDescriptions.Add("FresnelFactor", (p, i) => new EffectParameterDescription(p, DefaultEffectParameterSemantics.FresnelPower, 0, EffectParameterHint.Material)); ParameterDescriptions.Add("EnvironmentMap", (p, i) => new EffectParameterDescription(p, "XnaEnvironmentMap", i, EffectParameterHint.Material)); ParameterDescriptions.Add("EnvironmentMapAmount", (p, i) => new EffectParameterDescription(p, "XnaEnvironmentMapAmount", 0, EffectParameterHint.Material)); ParameterDescriptions.Add("EnvironmentMapSpecular", (p, i) => new EffectParameterDescription(p, "XnaEnvironmentMapSpecular", 0, EffectParameterHint.Material)); ParameterDescriptions.Add("DirLight0Direction", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDirection, 0, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight0DiffuseColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDiffuse, 0, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight0SpecularColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightSpecular, 0, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight1Direction", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDirection, 1, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight1DiffuseColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDiffuse, 1, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight1SpecularColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightSpecular, 1, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight2Direction", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDirection, 2, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight2DiffuseColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDiffuse, 2, EffectParameterHint.Global)); ParameterDescriptions.Add("DirLight2SpecularColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightSpecular, 2, EffectParameterHint.Global)); ParameterDescriptions.Add("EyePosition", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.CameraPosition, 0, EffectParameterHint.Global)); ParameterDescriptions.Add("AlphaTest", (p, i) => new EffectParameterDescription(p, "XnaAlphaTest", 0, EffectParameterHint.Material)); ParameterDescriptions.Add("FogColor", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.FogColor, 0, EffectParameterHint.Global)); ParameterDescriptions.Add("FogVector", (p, i) => new EffectParameterDescription(p, "XnaFogVector", 0, EffectParameterHint.Local)); // Local not global because XNA adds the world matrix to this parameter... ParameterDescriptions.Add("WorldViewProj", (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewProjection, 0, EffectParameterHint.PerInstance)); // The ShaderIndex is a local parameter: It depends on material settings and local lights. ParameterDescriptions.Add("ShaderIndex", (p, i) => new EffectParameterDescription(p, "XnaShaderIndex", 0, EffectParameterHint.PerInstance)); }
protected override void RenderImplementation() { string httpMethodName = HttpMethod.ToString().ToLower(); //Method is always uppercase. //deal with parameters CodeParameterDeclarationExpression[] parameters = ParameterDescriptions.Select(d => new CodeParameterDeclarationExpression(TypeMapper.MapCodeTypeReferenceToTsText(d.ParameterTypeReference), d.Name)) .ToArray(); Method.Parameters.AddRange(parameters); if (RequestBodyCodeTypeReference != null) { CodeParameterDeclarationExpression p = new CodeParameterDeclarationExpression(RequestBodyCodeTypeReference, "requestBody"); Method.Parameters.Add(p); } if (settings.HandleHttpRequestHeaders) { Method.Parameters.Add(new CodeParameterDeclarationExpression( "() => {[header: string]: string}", "headersHandler?")); } string jsUriQuery = UriQueryHelper.CreateUriQueryForTs(RelativePath, ParameterDescriptions); string uriText = jsUriQuery == null ? $"this.baseUri + '{RelativePath}'" : RemoveTrialEmptyString($"this.baseUri + '{jsUriQuery}'"); if (ReturnTypeReference != null && ReturnTypeReference.BaseType == "System.String" && ReturnTypeReference.ArrayElementType == null) //stringAsString is for .NET Core Web API { if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, {OptionsForString}).then(d => d.data);")); //todo: type cast is not really needed. return; } if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, null, {OptionsForString}).then(d => d.data);")); } else { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, JSON.stringify(requestBody), {ContentOptionsForString}).then(d => d.data);")); } return; } } else if (returnTypeText == AxiosHttpStringResponse) //translated from response to this { if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, {OptionsForResponse});")); return; } if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, null, {OptionsForResponse});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, JSON.stringify(requestBody), {ContentOptionsForResponse});")); } return; } } else if (returnTypeText == AxiosHttpResponse) // client should care about only status { if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, {Options});")); return; } if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, null, {Options});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, JSON.stringify(requestBody), {ContentOptionsForString});")); } return; } } else { string returnTypeCast = returnTypeText == null ? String.Empty : $"<{returnTypeText}>"; if (httpMethodName == "get" || httpMethodName == "delete") { if (returnTypeText == null) { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, {OptionsForResponse});")); //only http response needed } else { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}{returnTypeCast}({uriText}, {Options}).then(d => d.data);")); } } else if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (returnTypeText == null) //http response { if (RequestBodyCodeTypeReference == null) //no content body { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, null, {OptionsForResponse});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}({uriText}, JSON.stringify(requestBody), {ContentOptionsForResponse});")); } } else // type is returned { if (RequestBodyCodeTypeReference == null) // no body { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}{returnTypeCast}({uriText}, null, {Options}).then(d => d.data);")); } else { Method.Statements.Add(new CodeSnippetStatement($"return Axios.{httpMethodName}{returnTypeCast}({uriText}, JSON.stringify(requestBody), {OptionsWithContent}).then(d => d.data);")); } } } else { Debug.Assert(false, $"How come with {httpMethodName}?"); } } }
public SceneEffectInterpreter() { // Bounding Shapes //ParameterDescriptions.Add(SceneEffectParameterSemantics.BoundingBoxMax, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.BoundingBoxMax, i, EffectParameterHint.PerInstance)); //ParameterDescriptions.Add(SceneEffectParameterSemantics.BoundingBoxMin, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.BoundingBoxMin, i, EffectParameterHint.PerInstance)); //ParameterDescriptions.Add(SceneEffectParameterSemantics.BoundingBoxSize, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.BoundingBoxSize, i, EffectParameterHint.PerInstance)); //ParameterDescriptions.Add(SceneEffectParameterSemantics.BoundingCenter, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.BoundingCenter, i, EffectParameterHint.PerInstance)); //ParameterDescriptions.Add(SceneEffectParameterSemantics.BoundingSphereRadius, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.BoundingSphereRadius, i, EffectParameterHint.PerInstance)); // Camera ParameterDescriptions.Add(SceneEffectParameterSemantics.CameraDirection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.CameraDirection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.CameraPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.CameraPosition, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastCameraDirection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastCameraDirection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastCameraPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastCameraPosition, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.CameraNear, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.CameraNear, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.CameraFar, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.CameraFar, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LodCameraPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LodCameraPosition, i, EffectParameterHint.Global)); // Lights ParameterDescriptions.Add(SceneEffectParameterSemantics.AmbientLight, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.AmbientLight, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.AmbientLightAttenuation, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.AmbientLightAttenuation, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.AmbientLightUp, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.AmbientLightUp, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightDiffuse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDiffuse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightSpecular, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightSpecular, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightDirection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightDirection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightTexture, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightTexture, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightTextureOffset, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightTextureOffset, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightTextureScale, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightTextureScale, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightTextureMatrix, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightTextureMatrix, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowMap, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowMap, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowParameters, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowParameters, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowNumberOfCascades, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowNumberOfCascades, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowCascadeDistances, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowCascadeDistances, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowViewProjections, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowViewProjections, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowDepthBias, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowDepthBias, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowNormalOffset, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowNormalOffset, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowDepthBiasScale, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowDepthBiasScale, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowDepthBiasOffset, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowDepthBiasOffset, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowMapSize, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowMapSize, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowFilterRadius, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowFilterRadius, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowJitterResolution, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowJitterResolution, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowFadeOutRange, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowFadeOutRange, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowFadeOutDistance, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowFadeOutDistance, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowMaxDistance, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowMaxDistance, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DirectionalLightShadowFog, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DirectionalLightShadowFog, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightDiffuse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightDiffuse, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightSpecular, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightSpecular, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightPosition, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightRange, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightRange, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightAttenuation, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightAttenuation, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightTexture, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightTexture, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.PointLightTextureMatrix, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.PointLightTextureMatrix, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightDiffuse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightDiffuse, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightSpecular, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightSpecular, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightPosition, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightDirection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightDirection, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightRange, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightRange, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightFalloffAngle, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightFalloffAngle, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightCutoffAngle, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightCutoffAngle, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightAttenuation, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightAttenuation, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightTexture, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightTexture, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.SpotlightTextureMatrix, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SpotlightTextureMatrix, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightDiffuse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightDiffuse, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightSpecular, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightSpecular, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightPosition, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightDirection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightDirection, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightRange, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightRange, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightAttenuation, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightAttenuation, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightTexture, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightTexture, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightViewProjection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightViewProjection, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectorLightTextureMatrix, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectorLightTextureMatrix, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.EnvironmentMap, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.EnvironmentMap, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.EnvironmentMapSize, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.EnvironmentMapSize, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.EnvironmentMapDiffuse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.EnvironmentMapDiffuse, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.EnvironmentMapSpecular, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.EnvironmentMapSpecular, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.EnvironmentMapRgbmMax, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.EnvironmentMapRgbmMax, i, EffectParameterHint.Local)); ParameterDescriptions.Add(SceneEffectParameterSemantics.EnvironmentMapMatrix, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.EnvironmentMapMatrix, i, EffectParameterHint.Local)); // Obsolete ParameterDescriptions.Add(SceneEffectParameterSemantics.ShadowNear, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ShadowNear, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ShadowFar, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ShadowFar, i, EffectParameterHint.Global)); // Environment, Fog ParameterDescriptions.Add(SceneEffectParameterSemantics.FogColor, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.FogColor, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.FogStart, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.FogStart, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.FogEnd, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.FogEnd, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.FogDensity, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.FogDensity, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.FogParameters, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.FogParameters, i, EffectParameterHint.Global)); // Decals ParameterDescriptions.Add(SceneEffectParameterSemantics.DecalAlpha, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DecalAlpha, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DecalNormalThreshold, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DecalNormalThreshold, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DecalOptions, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DecalOptions, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.DecalOrientation, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.DecalOrientation, i, EffectParameterHint.PerInstance)); // World, View, Projection ParameterDescriptions.Add(SceneEffectParameterSemantics.Position, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.Position, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.World, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.World, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldInverse, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldInverseTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.View, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.View, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewInverse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewInverseTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.Projection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.Projection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectionInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectionInverse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectionTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectionTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ProjectionInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ProjectionInverseTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldView, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldView, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewInverse, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewInverseTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewProjection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewProjection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewProjectionInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewProjectionInverse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewProjectionTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewProjectionTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.ViewProjectionInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.ViewProjectionInverseTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewProjection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewProjection, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewProjectionInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewProjectionInverse, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewProjectionTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewProjectionTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.WorldViewProjectionInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.WorldViewProjectionInverseTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.UnscaledWorld, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.UnscaledWorld, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.UnscaledWorldView, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.UnscaledWorldView, i, EffectParameterHint.PerInstance)); // Last World, View, Projection ParameterDescriptions.Add(SceneEffectParameterSemantics.LastPosition, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastPosition, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorld, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorld, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldInverse, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldInverseTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastView, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastView, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewInverse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewInverseTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastProjection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastProjection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastProjectionInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastProjectionInverse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastProjectionTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastProjectionTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastProjectionInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastProjectionInverseTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldView, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldView, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewInverse, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewInverseTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewProjection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewProjection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewProjectionInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewProjectionInverse, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewProjectionTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewProjectionTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastViewProjectionInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastViewProjectionInverseTranspose, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewProjection, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewProjection, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewProjectionInverse, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewProjectionInverse, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewProjectionTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewProjectionTranspose, i, EffectParameterHint.PerInstance)); ParameterDescriptions.Add(SceneEffectParameterSemantics.LastWorldViewProjectionInverseTranspose, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.LastWorldViewProjectionInverseTranspose, i, EffectParameterHint.PerInstance)); // Special ParameterDescriptions.Add(SceneEffectParameterSemantics.SceneNodeType, (p, i) => new EffectParameterDescription(p, SceneEffectParameterSemantics.SceneNodeType, i, EffectParameterHint.PerInstance)); }
protected override void RenderImplementation() { var httpMethodName = HttpMethod.ToString().ToLower(); //Method is always uppercase. //deal with parameters var parameters = ParameterDescriptions.Select(d => new CodeParameterDeclarationExpression(Poco2TsGen.TranslateToClientTypeReference(d.ParameterDescriptor.ParameterType), d.Name)) .ToArray(); //parameters.Add(new CodeParameterDeclarationExpression(callbackTypeReference, "callback")); Method.Parameters.AddRange(parameters); if (RequestBodyCodeTypeReference != null) { var p = new CodeParameterDeclarationExpression(RequestBodyCodeTypeReference, "requestBody"); Method.Parameters.Add(p); } var jsUriQuery = UriQueryHelper.CreateUriQueryForTs(RelativePath, ParameterDescriptions); var uriText = jsUriQuery == null ? $"this.baseUri + '{RelativePath}'" : RemoveTrialEmptyString($"this.baseUri + '{jsUriQuery}'"); // var mapFunction = returnTypeText == NG2HttpResponse ? String.Empty : ".map(response=> response.json())"; if (ReturnTypeReference != null && ReturnTypeReference.BaseType == "System.String" && ReturnTypeReference.ArrayElementType == null) //stringAsString is for .NET Core Web API { if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, {{ responseType: 'text' }});")); return; } if (httpMethodName == "post" || httpMethodName == "put") { if (String.IsNullOrEmpty(contentType)) { contentType = "application/json;charset=UTF-8"; } if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, null, {{headers: {{ 'Content-Type': '{contentType}' }}, responseType: 'text' }});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, JSON.stringify(requestBody), {{ headers: {{ 'Content-Type': '{contentType}' }}, responseType: 'text' }});")); } return; } } else if (returnTypeText == NG2HttpBlobResponse) //translated from blobresponse to this { const string optionForStream = "{ observe: 'response', responseType: 'blob' }"; if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, {optionForStream});")); return; } if (httpMethodName == "post" || httpMethodName == "put") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, null, {optionForStream});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, JSON.stringify(requestBody), {optionForStream});")); } return; } } else if (returnTypeText == NG2HttpStringResponse) //translated from response to this { const string optionForActionResult = "{ observe: 'response', responseType: 'text' }"; if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, {optionForActionResult});")); return; } if (httpMethodName == "post" || httpMethodName == "put") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, null, {optionForActionResult});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}({uriText}, JSON.stringify(requestBody), {{ headers: {{ 'Content-Type': '{contentType}' }}, observe: 'response', responseType: 'text' }});")); } return; } } else { var typeCast = returnTypeText == null ? "<Response>" : $"<{returnTypeText}>"; if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}{typeCast}({uriText});")); return; } if (httpMethodName == "post" || httpMethodName == "put") { if (String.IsNullOrEmpty(contentType)) { contentType = "application/json;charset=UTF-8"; } if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}{typeCast}({uriText}, null, {{ headers: {{ 'Content-Type': '{contentType}' }} }});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return this.http.{httpMethodName}{typeCast}({uriText}, JSON.stringify(requestBody), {{ headers: {{ 'Content-Type': '{contentType}' }} }});")); } return; } } Debug.Assert(false, "How come?"); }
public SkyEffectInterpreter() { ParameterDescriptions.Add(SkyEffectParameterSemantics.SunDirection, (p, i) => new EffectParameterDescription(p, SkyEffectParameterSemantics.SunDirection, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SkyEffectParameterSemantics.SunLight, (p, i) => new EffectParameterDescription(p, SkyEffectParameterSemantics.SunLight, i, EffectParameterHint.Global)); ParameterDescriptions.Add(SkyEffectParameterSemantics.SkyLight, (p, i) => new EffectParameterDescription(p, SkyEffectParameterSemantics.SkyLight, i, EffectParameterHint.Global)); }
protected override void RenderImplementation() { var httpMethodName = HttpMethod.ToString().ToLower(); string contentOptionsWithHeadersHandlerForString = $"{{ method: '{httpMethodName}', headers: headersHandler ? Object.assign(headersHandler(), {{ 'Content-Type': '{contentType}' }}): {{ 'Content-Type': '{contentType}' }}, body: JSON.stringify(requestBody) }}"; var ContentOptionsForString = settings.HandleHttpRequestHeaders ? contentOptionsWithHeadersHandlerForString : $"{{ method: '{httpMethodName}', headers: {{ 'Content-Type': '{contentType}' }}, body: JSON.stringify(requestBody) }}"; string contentOptionsWithHeadersHandlerForResponse = $"{{ method: '{httpMethodName}', headers: headersHandler ? Object.assign(headersHandler(), {{ 'Content-Type': '{contentType}' }}): {{ 'Content-Type': '{contentType}' }}, body: JSON.stringify(requestBody) }}"; var ContentOptionsForResponse = settings.HandleHttpRequestHeaders ? contentOptionsWithHeadersHandlerForResponse : $"{{ method: '{httpMethodName}', headers: {{ 'Content-Type': '{contentType}' }}, body: JSON.stringify(requestBody) }}"; string optionsWithHeadersHandlerAndContent = $"{{ method: '{httpMethodName}', headers: headersHandler ? Object.assign(headersHandler(), {{ 'Content-Type': '{contentType}' }}): {{ 'Content-Type': '{contentType}' }}, body: JSON.stringify(requestBody) }}"; var OptionsWithContent = settings.HandleHttpRequestHeaders ? optionsWithHeadersHandlerAndContent : $"{{ method: '{httpMethodName}', headers: {{ 'Content-Type': '{contentType}' }}, body: JSON.stringify(requestBody) }}"; string optionsWithHeadersHandlerForString = $"{{ method: '{httpMethodName}', headers: headersHandler ? headersHandler() : undefined }}"; var OptionsForString = settings.HandleHttpRequestHeaders ? optionsWithHeadersHandlerForString : $"{{ method: '{httpMethodName}' }}"; string optionsWithHeadersHandlerForResponse = $"{{ method: '{httpMethodName}', headers: headersHandler ? headersHandler() : undefined }}"; var OptionsForResponse = settings.HandleHttpRequestHeaders ? optionsWithHeadersHandlerForResponse : $"{{ method: '{httpMethodName}' }}"; string optionsWithHeadersHandler = $"{{ method: '{httpMethodName}', headers: headersHandler ? headersHandler() : undefined }}"; var Options = settings.HandleHttpRequestHeaders ? optionsWithHeadersHandler : $"{{ method: '{httpMethodName}' }}"; CodeParameterDeclarationExpression[] parameters = ParameterDescriptions.Select(d => new CodeParameterDeclarationExpression(TypeMapper.MapCodeTypeReferenceToTsText(d.ParameterTypeReference), d.Name)) .ToArray(); Method.Parameters.AddRange(parameters); if (RequestBodyCodeTypeReference != null) { CodeParameterDeclarationExpression p = new CodeParameterDeclarationExpression(RequestBodyCodeTypeReference, "requestBody"); Method.Parameters.Add(p); } if (settings.HandleHttpRequestHeaders) { Method.Parameters.Add(new CodeParameterDeclarationExpression( "() => {[header: string]: string}", "headersHandler?")); } string jsUriQuery = UriQueryHelper.CreateUriQueryForTs(RelativePath, ParameterDescriptions); string uriText = jsUriQuery == null ? $"this.baseUri + '{RelativePath}'" : RemoveTrialEmptyString($"this.baseUri + '{jsUriQuery}'"); if (ReturnTypeReference != null && ReturnTypeReference.BaseType == "System.String" && ReturnTypeReference.ArrayElementType == null) //stringAsString is for .NET Core Web API { if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsForString}).then(d => d.text());")); //todo: type cast is not really needed. return; } if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsForString}).then(d => d.text());")); } else { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {ContentOptionsForString}).then(d => d.text());")); } return; } } //else if (returnTypeText == FetchHttpStringResponse)//translated from response to this //{ // if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") // { // Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsForResponse}).then(d => d.text());")); // return; // } // if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") // { // if (RequestBodyCodeTypeReference == null) // { // Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, null, {OptionsForResponse}).then(d => d.text());")); // } // else // { // Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, JSON.stringify(requestBody), {ContentOptionsForResponse});")); // } // return; // } //} else if (returnTypeText == FetchHttpResponse) // client should care about only status { if (httpMethodName == "get" || httpMethodName == "delete") { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {Options});")); return; } if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (RequestBodyCodeTypeReference == null) { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {Options});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsWithContent});")); } return; } } else { string returnTypeCast = returnTypeText == null ? String.Empty : $"<{returnTypeText}>"; if (httpMethodName == "get" || httpMethodName == "delete") { if (returnTypeText == null) { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsForResponse});")); //only http response needed } else { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {Options}).then(d => d.json());")); } } else if (httpMethodName == "post" || httpMethodName == "put" || httpMethodName == "patch") { if (returnTypeText == null) //http response { if (RequestBodyCodeTypeReference == null) //no content body { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsForResponse});")); } else { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {ContentOptionsForResponse});")); } } else // type is returned { if (RequestBodyCodeTypeReference == null) // no body { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {Options}).then(d => d.json());")); } else { Method.Statements.Add(new CodeSnippetStatement($"return fetch({uriText}, {OptionsWithContent}).then(d => d.json());")); } } } else { Debug.Assert(false, $"How come with {httpMethodName}?"); } } }