public async Task <ICommandResult <Car> > Handle(UpdateCarCommand command, CancellationToken cancellationToken) { int carId = command.Id; Car car = await _carRepository.GetAsync(carId, cancellationToken); if (car == null) { return(new CommandResult <Car>(CommandStatus.NotFound, null)); } CarSm carSm = _carToCarSmMapper.Map(car); command.Patch.ApplyTo(carSm); CarSmValidator validator = new CarSmValidator(); ValidationResult validationResult = validator.Validate(carSm); if (!validationResult.IsValid) { return(new CommandResult <Car>(CommandStatus.ModelInvalid, null, validationResult.Errors.Select(e => e.ErrorMessage).ToArray())); } _carSmToCarMapper.Map(carSm, car); await _carRepository.UpdateAsync(car, cancellationToken); return(new CommandResult <Car>(CommandStatus.Ok, car)); }
public async Task <IActionResult> ExecuteAsync( int carId, JsonPatchDocument <CarSm> patch, CancellationToken cancellationToken) { Car car = await _carRepository.GetAsync(carId, cancellationToken); if (car == null) { return(new NotFoundResult()); } CarSm saveCar = _carToCarSmMapper.Map(car); ModelStateDictionary modelState = _actionContextAccessor.ActionContext.ModelState; patch.ApplyTo(saveCar, modelState); _objectModelValidator.Validate(_actionContextAccessor.ActionContext, null, null, saveCar); if (!modelState.IsValid) { return(new BadRequestObjectResult(modelState)); } _carSmToCarMapper.Map(saveCar, car); await _carRepository.UpdateAsync(car, cancellationToken); CarVm carViewModel = _carToCarVmMapper.Map(car); return(new OkObjectResult(carViewModel)); }
public Task <IActionResult> PostAsync( [FromServices] IPostCarCommand command, [FromBody] CarSm car, CancellationToken cancellationToken) { return(command.ExecuteAsync(car, cancellationToken)); }
public Task <IActionResult> PostAsync( [FromServices] IPostCarAh handler, [FromBody] CarSm car, CancellationToken cancellationToken) { return(handler.ExecuteAsync(car, cancellationToken)); }
public async Task <ICommandResult <Car> > Handle(CreateCarCommand command, CancellationToken cancellationToken) { CarSm carSm = command.CarSm; Car car = _carSmToCarMapper.Map(carSm); car = await _carRepository.AddAsync(car, cancellationToken); return(new CommandResult <Car>(CommandStatus.Ok, car)); }
public async Task <IActionResult> ExecuteAsync(CarSm carSm, CancellationToken cancellationToken) { Car car = _carSmToCarMapper.Map(carSm); car = await _carRepository.AddAsync(car, cancellationToken); CarVm carViewModel = _carToCarVmMapper.Map(car); return(new CreatedAtRouteResult(RouteNames.GetCar, new { carId = carViewModel.CarId }, carViewModel)); }
public void Apply(OpenApiSchema model, SchemaFilterContext context) { CarSm carSm = new CarSm() { Cylinders = 4, Brand = "Toyota", Model = "Hilux" }; JsonSerializerOptions options = new JsonSerializerOptions { WriteIndented = true }; model.Default = new OpenApiString(JsonSerializer.Serialize(carSm, options)); model.Example = new OpenApiString(JsonSerializer.Serialize(carSm, options)); }
public async Task <IActionResult> ExecuteAsync(int carId, CarSm saveCar, CancellationToken cancellationToken) { Car car = await _carRepository.GetAsync(carId, cancellationToken); if (car == null) { return(new NotFoundResult()); } _carSmToCarMapper.Map(saveCar, car); car = await _carRepository.UpdateAsync(car, cancellationToken); CarVm carViewModel = _carToCarVmMapper.Map(car); return(new OkObjectResult(carViewModel)); }
public async Task <ICommandResult <Car> > Handle(ReplaceCarCommand command, CancellationToken cancellationToken) { int carId = command.Id; CarSm carSm = command.SaveModel; Car car = await _carRepository.GetAsync(carId, cancellationToken); if (car == null) { return(new CommandResult <Car>(CommandStatus.NotFound, null)); } _carSmToCarMapper.Map(carSm, car); car = await _carRepository.UpdateAsync(car, cancellationToken); return(new CommandResult <Car>(CommandStatus.Ok, car)); }
public async Task <IActionResult> ExecuteAsync(int carId, CarSm carSm, CancellationToken cancellationToken) { ICommandResult <Car> result = await _mediator .Send(new ReplaceCarCommand(carId, carSm), cancellationToken); switch (result.Status) { case CommandStatus.Unknown: default: throw new ArgumentOutOfRangeException(nameof(result.Status), result.Status, null); case CommandStatus.NotFound: return(new NotFoundResult()); case CommandStatus.Ok: CarVm carVm = _carVmMapper.Map(result.Data); return(new OkObjectResult(carVm)); } }
public async Task <IActionResult> ExecuteAsync(CarSm carSm, CancellationToken cancellationToken) { ICommandResult <Car> result = await _mediator .Send(new CreateCarCommand(carSm), cancellationToken); switch (result.Status) { case CommandStatus.Unknown: default: throw new ArgumentOutOfRangeException(nameof(result.Status), result.Status, null); case CommandStatus.Ok: CarVm carVm = _carVmMapper.Map(result.Data); _actionCtx.ActionContext.HttpContext .Response.Headers.Add(HeaderNames.LastModified, carVm.Modified.ToString("R", CultureInfo.InvariantCulture)); return(new CreatedAtRouteResult(RouteNames.GetCar, new { carId = carVm.CarId }, carVm)); } }
public ReplaceCarCommand(int id, CarSm saveModel) { Id = id; SaveModel = saveModel; }
public CreateCarCommand(CarSm sm) { CarSm = sm; }