public async Task <ActionResult <FavouriteTripDto> > LikeAsync([FromBody, Required] FavouriteTripDto favouriteTripDto) { if (!ModelState.IsValid) { throw new ArgumentException(nameof(favouriteTripDto)); } //todo mb replace logic to local storage var login = HttpContext.User.Identity.Name; var userAuth = await _authService.GetActiveUserByLoginAsNoTrackingAsync(login); if (userAuth == null || userAuth.IsBanned) { throw new ValidationException(_stringLocalizer["UserIsDeletedOrBanned"]); } if (userAuth.ForceRelogin) { throw new UnauthorizedException(string.Empty); } favouriteTripDto.UserId = userAuth.UserId; return(await _favouriteTripService.LikeAsync(favouriteTripDto)); }
public async Task <FavouriteTripDto> IsLikedTripAsync(FavouriteTripDto favouriteTripDto) { if (favouriteTripDto == null) { throw new ArgumentNullException(nameof(favouriteTripDto)); } if (favouriteTripDto.UserId <= 0) { throw new ArgumentOutOfRangeException(nameof(favouriteTripDto.UserId)); } if (favouriteTripDto.TripId <= 0) { throw new ArgumentOutOfRangeException(nameof(favouriteTripDto.TripId)); } var favouriteTrip = new FavouriteTrip { UserId = favouriteTripDto.UserId, TripId = favouriteTripDto.TripId }; var favouriteTripResponse = await _favouriteTripStorage.IsLikedTripAsync(favouriteTrip); if (favouriteTripResponse == null) { favouriteTripDto.IsFavourite = false; } else { favouriteTripDto.IsFavourite = favouriteTripResponse.IsFavourite; } return(favouriteTripDto); }
public async Task <FavouriteTripDto> LikeAsync(FavouriteTripDto favouriteTripDto) { if (favouriteTripDto == null) { throw new ArgumentNullException(nameof(favouriteTripDto)); } var favouriteTrip = new FavouriteTrip { UserId = favouriteTripDto.UserId, TripId = favouriteTripDto.TripId, IsFavourite = favouriteTripDto.IsFavourite }; var result = await _favouriteTripStorage.LikeAsync(favouriteTrip); favouriteTripDto.IsFavourite = result; return(favouriteTripDto); }
public async Task <ActionResult <FavouriteTripDto> > IsLikedTripAsync([FromBody, Required] FavouriteTripDto favouriteTripDto) { if (!ModelState.IsValid) { return(BadRequest()); } var login = HttpContext.User.Identity.Name; var userAuth = await _authService.GetActiveUserByLoginAsNoTrackingAsync(login); if (userAuth.ForceRelogin) { throw new UnauthorizedException(string.Empty); } favouriteTripDto.UserId = userAuth.UserId; return(await _favouriteTripService.IsLikedTripAsync(favouriteTripDto)); }