public async Task <IActionResult> Post([FromBody] AddBikeCommand command) { return((await _mediator.Send(command)).Match <IActionResult>( s => Ok(s), f => { if (f is BadRequestException) { return BadRequest(f.Message); } return StatusCode(StatusCodes.Status500InternalServerError); })); }
public async Task <Result <BikeResponse> > AddBikeAsync(AddBikeCommand request) { // validation if bike is being added to the specific HomeBase ... if (request.HomeBaseId is not null) { if (!_homeBaseService.CheckIfExistsAsync(request.HomeBaseId)) { return(new Result <BikeResponse>(new BadRequestException(Error.HomeBaseNotFound))); } if (!await _homeBaseService.CheckIfFreeSlotsAsync(request.HomeBaseId)) { return(new Result <BikeResponse>(new BadRequestException(Error.HomeBaseFull))); } } return(await _bikeRepository.AddBikeAsync(request)); }
public async Task <Result <BikeResponse> > Handle(AddBikeCommand request, CancellationToken cancellationToken) { var result = await _bikeService.AddBikeAsync(request); result.IfSucc(s => { var message = new BikeEventMessage() { MessageType = s.GetType().Name, Method = ApiMethod.POST.ToString(), Message = s }; _client.PublishEvent(message); }); return(result); }
public async Task <Result <BikeResponse> > AddBikeAsync(AddBikeCommand request) { var bikeToAdd = _mapper.Map <Bike>(request); _dbContext.Bikes.Add(bikeToAdd); try { await _dbContext.SaveChangesAsync(); } catch (Exception e) { Console.WriteLine(e); return(new Result <BikeResponse>(new InternalErrorException(Error.ErrorWhileProcessingOperation))); } return(new Result <BikeResponse>(_mapper.Map <BikeResponse>(bikeToAdd))); }