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));
            }
Exemplo n.º 3
0
            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!!!"));
            }