public async Task <IActionResult> CreateFueling( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function 'CreateFueling' processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); log.LogInformation("requestBody:" + requestBody); FuelingModel fueling = FuelingModelFactory.CreateFuelingModel(data); if (!fueling.DataIsValid) { var result = new ObjectResult(fueling.InvalidReason); //according to https://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm //if data is formattede correct but not valid a 422 is the correct answer result.StatusCode = StatusCodes.Status422UnprocessableEntity; return(result); } await _context.Fuelings.AddAsync(fueling); await _context.SaveChangesAsync(); string responseMessage = "Fueling - milages:" + fueling.Milages + " - amount:" + fueling.FuelAmount + " - date:" + fueling.FuelingDate + " created"; return(new OkObjectResult(responseMessage)); }
public async Task <IActionResult> UpdateFueling( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function 'UpdateFueling' processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); if (String.IsNullOrEmpty(requestBody)) { var result = new ObjectResult("Empty requestbody recieved"); //according to https://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm //if data is formattede correct but not valid a 422 is the correct answer result.StatusCode = StatusCodes.Status404NotFound; return(result); } //UserModel user = UserModelFactory.UpdateUserModel(data); int id = (int)data.id; var fueling = _context.Fuelings.First(c => c.Id == id); if (fueling == null) { fueling = new FuelingModel() { Id = id }; _context.Fuelings.Attach(fueling); } else { FuelingModelFactory.UpdateUserModel(data, ref fueling); } _context.Fuelings.Update(fueling); await _context.SaveChangesAsync(); string responseMessage = "Fueling updated"; return(new OkObjectResult(responseMessage)); }