public async Task <Result <int> > Handle(UpdateCarpoolCommand command, CancellationToken cancellationToken) { var userName = _authenticatedUser.Username; var user = await _userManager.FindByNameAsync(userName); var rolesList = await _userManager.GetRolesAsync(user).ConfigureAwait(false); var item = await _repository.GetByIdAsync(command.Id); if (item == null || !(rolesList.Contains("Admin") || rolesList.Contains("SuperAdmin") || userName == item.UserName)) { return(Result <int> .Fail($"Lỗi!")); } else { var placeArrival = item.PlaceArrival; placeArrival.PlaceName = command.ArrivalPlaceName ?? placeArrival.PlaceName; placeArrival.ProvinceId = command.ArrivalProvinceId ?? placeArrival.ProvinceId; placeArrival.DistrictId = command.ArrivalDistrictId ?? placeArrival.DistrictId; placeArrival.Latitude = command.ArrivalLatitude ?? placeArrival.Latitude; placeArrival.Longitude = command.ArrivalLongitude ?? placeArrival.Longitude; var placeDeparture = item.PlaceDeparture; placeDeparture.PlaceName = command.ArrivalPlaceName ?? placeDeparture.PlaceName; placeDeparture.ProvinceId = command.ArrivalProvinceId ?? placeDeparture.ProvinceId; placeDeparture.DistrictId = command.ArrivalDistrictId ?? placeDeparture.DistrictId; placeDeparture.Latitude = command.ArrivalLatitude ?? placeDeparture.Latitude; placeDeparture.Longitude = command.ArrivalLongitude ?? placeDeparture.Longitude; item.Name = command.Name ?? item.Name; item.Description = command.Description ?? item.Description; item.PhoneNumber = command.PhoneNumber ?? item.PhoneNumber; item.DepartureDate = command.DepartureDate ?? item.DepartureDate; item.DepartureTime = command.DepartureTime ?? item.DepartureTime; item.VehicleTypeId = command.VehicleTypeId ?? item.VehicleTypeId; item.Role = command.Role ?? item.Role; item.Price = command.Price ?? item.Price; item.SeatCount = command.SeatCount ?? item.SeatCount; item.Status = command.Status ?? item.Status; await _repository.UpdateAsync(item); await _unitOfWork.Commit(cancellationToken); return(Result <int> .Success(item.Id)); } }
public async Task <Result <CarpoolResponse> > Handle(GetCarpoolByIdQuery query, CancellationToken cancellationToken) { var item = await _repository.GetByIdAsync(query.Id); var mappedCategory = _mapper.Map <CarpoolResponse>(item); mappedCategory.PlaceArrival = await _placeRepository.GetByIdAsync((int)mappedCategory.PlaceArrivalId); mappedCategory.PlaceDeparture = await _placeRepository.GetByIdAsync((int)mappedCategory.PlaceDepartureId); return(Result <CarpoolResponse> .Success(mappedCategory)); }
public async Task <Result <int> > Handle(DeleteCarpoolCommand command, CancellationToken cancellationToken) { var userName = _authenticatedUser.Username; var user = await _userManager.FindByNameAsync(userName); var rolesList = await _userManager.GetRolesAsync(user).ConfigureAwait(false); var item = await _repository.GetByIdAsync(command.Id); if (item != null && (rolesList.Contains("Admin") || rolesList.Contains("SuperAdmin") || userName == item.UserName)) { await _repository.DeleteAsync(item); await _unitOfWork.Commit(cancellationToken); return(Result <int> .Success(item.Id)); } return(Result <int> .Fail("Lỗi!!!")); }