public async Task <IActionResult> RegisterAsync([FromBody] RegisterVehicle command) { try { if (ModelState.IsValid) { // insert vehicle Vehicle vehicle = command.MapToVehicle(); _dbContext.Vehicles.Add(vehicle); await _dbContext.SaveChangesAsync(); // send event var e = VehicleRegistered.FromCommand(command); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); //return result return(CreatedAtRoute("GetByLicenseNumber", new { licenseNumber = vehicle.LicenseNumber }, vehicle)); } return(BadRequest()); } catch (DbUpdateException) { ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."); return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public async Task <IActionResult> RegisterAsync([FromBody] RegisterVehicle command) { try { if (ModelState.IsValid) { // check invariants if (!Regex.IsMatch(command.LicenseNumber, NUMBER_PATTERN, RegexOptions.IgnoreCase)) { return(BadRequest($"The specified license-number '{command.LicenseNumber}' was not in the correct format.")); } // insert vehicle Vehicle vehicle = command.MapToVehicle(); _dbContext.Vehicles.Add(vehicle); await _dbContext.SaveChangesAsync(); // send event var e = VehicleRegistered.FromCommand(command); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); //return result return(CreatedAtRoute("GetByLicenseNumber", new { licenseNumber = vehicle.LicenseNumber }, vehicle)); } return(BadRequest()); } catch (DbUpdateException) { ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."); return(StatusCode(StatusCodes.Status500InternalServerError)); } }