public async Task <IActionResult> CreateVehicle( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function 'CreateVehicle' processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); log.LogInformation("requestBody:" + requestBody); VehicleModel vehicle = VehicleModelFactory.CreateVehicleModel(data); if (!vehicle.DataIsValid) { var result = new ObjectResult(vehicle.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.Vehicles.AddAsync(vehicle); await _context.SaveChangesAsync(); string responseMessage = "Vehicle:" + vehicle.VehicleModelName + " (" + vehicle.LicensePlate + ") created"; return(new OkObjectResult(responseMessage)); }
public async Task <IActionResult> UpdateVehicle( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function 'UpdateVehicle' 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 vehicle = _context.Vehicles.First(c => c.Id == id); if (vehicle == null) { vehicle = new VehicleModel() { Id = id }; _context.Vehicles.Attach(vehicle); } else { VehicleModelFactory.UpdateUserModel(data, ref vehicle); } _context.Vehicles.Update(vehicle); await _context.SaveChangesAsync(); string responseMessage = "Vehicle updated"; return(new OkObjectResult(responseMessage)); }