Esempio n. 1
0
        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
            });
        }
Esempio n. 2
0
        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));
        }