예제 #1
0
        /// <inheritdoc />
        public override async Task <TOutput> InvokeAsync <TInput, TOutput>(TInput input, FunctionOptionsBase options = null)
        {
            this.Log.LogInformation("C# HTTP trigger function processed a request.");

            var req     = input as HttpRequest;
            var request = (SampleRequestModel)null;

            var serialised = await new StreamReader(req.Body).ReadToEndAsync().ConfigureAwait(false);

            if (!string.IsNullOrWhiteSpace(serialised))
            {
                request = JsonConvert.DeserializeObject <SampleRequestModel>(serialised);
            }

            var name = req.Query["name"].ToString();

            var opt = options as GetSamplesFunctionOptions;

            var result = new SampleResponseModel()
            {
                Id      = request?.Id,
                Name    = string.IsNullOrWhiteSpace(name) ? "Sample" : name,
                Message = $"Hello {this._settings.Hello} from {opt.Key}"
            };
            var content = new ContentResult()
            {
                Content     = JsonConvert.SerializeObject(result),
                ContentType = "application/json",
                StatusCode  = (int)HttpStatusCode.OK
            };

            return((TOutput)(IActionResult)content);
        }
예제 #2
0
        public ActionResult ReturningObjectWithParameters(string echo)
        {
            var result = new SampleResponseModel()
            {
                CurrentTime = DateTime.Now.ToLongTimeString(),
                Message     = echo,
                Success     = true
            };

            return(Json(result));
        }
예제 #3
0
        public ActionResult ReturningObject()
        {
            var result = new SampleResponseModel()
            {
                CurrentTime = DateTime.Now.ToLongTimeString(),
                Message     = "Hello!",
                Success     = true
            };

            return(Json(result));
        }
        /// <inheritdoc />
        public override async Task <TOutput> InvokeAsync <TInput, TOutput>(TInput input, FunctionOptionsBase options = null)
        {
            this.Log.LogInformation("C# HTTP trigger function processed a request.");
#if NET461
            var req = input as HttpRequestMessage;
#elif NETSTANDARD2_0
            var req = input as HttpRequest;
#endif
            var request = (SampleRequestModel)null;

#if NET461
            var serialised = await req.Content.ReadAsStringAsync().ConfigureAwait(false);
#elif NETSTANDARD2_0
            var serialised = await new StreamReader(req.Body).ReadToEndAsync().ConfigureAwait(false);
#endif
            if (!string.IsNullOrWhiteSpace(serialised))
            {
                request = JsonConvert.DeserializeObject <SampleRequestModel>(serialised);
            }

#if NET461
            string name = req.GetQueryNameValuePairs()
                          .SingleOrDefault(p => p.Key.Equals("name", StringComparison.CurrentCultureIgnoreCase))
                          .Value;
#elif NETSTANDARD2_0
            string name = req.Query["name"];
#endif

            this._dependency.Name = name;

            this.Log.LogInformation($"input: {this._dependency.Name}");

            var result = new SampleResponseModel()
            {
                Id                                     = request == null?Guid.NewGuid() : Guid.Parse(request.Id),
                                           Name        = string.IsNullOrWhiteSpace(name) ? "Sample" : name,
                                           Description = "Ignored",
                                           Sub         = new SubSampleResponseModel()
                {
                    Value = int.MaxValue
                },
                Collection = { { "hello", "world" } },
                Items1     = { { int.MinValue } },
                Items2     = new[] { int.MinValue }.ToArray()
            };
#if NET461
            var content  = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json");
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = content
            };

            return((TOutput)Convert.ChangeType(response, typeof(TOutput)));
#elif NETSTANDARD2_0
            var content = new ContentResult()
            {
                Content     = JsonConvert.SerializeObject(result),
                ContentType = "application/json",
                StatusCode  = (int)HttpStatusCode.OK
            };

            return((TOutput)(IActionResult)content);
#endif
        }
예제 #5
0
 public ActionResult VoidMethodWithParameters(SampleResponseModel model)
 {
     return(null);
 }