public async Task <Result <SafeLocationResponseModel> > Handle(UpdateSafeLocation request, CancellationToken cancellationToken) { var isValid = await _validator.IsValidAsync(request); if (!isValid) { return(Result.Failure <SafeLocationResponseModel>("Validation failed")); } var safeLocation = await _context .GroupsSafeLocations .Include(gsl => gsl.Group) .FirstAsync(gsl => gsl.Id == request.SafeLocationId, cancellationToken); safeLocation.Latitude = request.SafeLocation.Latitude; safeLocation.Longitude = request.SafeLocation.Longitude; safeLocation.Name = request.SafeLocation.Name; await _context.SaveChangesAsync(cancellationToken); return(new SafeLocationResponseModel { Latitude = safeLocation.Latitude, Longitude = safeLocation.Longitude, Name = safeLocation.Name, Id = safeLocation.Id, GroupId = safeLocation.Group.Id }); }
public async Task <ActionResult <SafeLocationModel> > UpdateSafeLocationAsync([FromRoute] Guid locationId, [FromBody] SafeLocationRequest safeLocation) { var sub = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value; var query = new UpdateSafeLocation(sub, locationId, safeLocation); var result = await _mediator.Send(query); if (result.IsFailure) { return(BadRequest()); } return(Ok(result.Value)); }