public async Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext.HttpContext.Request.ContentType.StartsWith(ContentType, StringComparison.OrdinalIgnoreCase) == true) { dynamic data = null; var response = new PostTest(); var body = bindingContext.HttpContext.Request.Body; var reader = new StreamReader(body); var text = await reader.ReadToEndAsync(); var contract = JsonConvert.DeserializeObject <object>(text); response.Data = contract; //var properties = typeof(object).GetProperties(); //foreach (var property in properties) //{ // var valueProvider = bindingContext.ValueProvider.GetValue(property.Name); // var valueProvider = contract.GetType().GetProperty(property.Name).GetValue(contract, null); // if (string.IsNullOrWhiteSpace(valueProvider.FirstValue) is false) // { // property.SetValue(contract, valueProvider.FirstValue); // } //TODO: Get params from header //TODO: Get params from claims //} var token = bindingContext.HttpContext.Request.Headers[HeaderNames.Authorization][0]; var document = bindingContext.HttpContext.Request.Headers["Document"][0]; response.Token = token; response.Document = document; bindingContext.Result = ModelBindingResult.Success(response); } }
public IActionResult PostMessage([FromBody] PostTest data) { string connectionString = "server=<YourDatabaseHost>; database=<YourDatabaseName>; username=<Database_UserName>; password=<Database_UserPassWord>; oldguids=true; SslMode=None"; MySqlConnection conn = new MySqlConnection(connectionString); string strSQL = @"INSERT INTO `messageboard2` (`MessageTime`, `Name`, `Content`) VALUES (@MessageTime, @Name, @Content)"; MySqlCommand cmd = new MySqlCommand(strSQL, conn); var date = DateTimeOffset.Now.AddHours(8).ToUnixTimeSeconds(); conn.Open(); cmd.Parameters.Add("@MessageTime", MySqlDbType.Int32).Value = date; cmd.Parameters.Add("@Name", MySqlDbType.VarChar).Value = data.name; cmd.Parameters.Add("@Content", MySqlDbType.VarChar).Value = data.content; cmd.ExecuteNonQuery(); conn.Close(); return(Content("OK")); }