public async Task Delete(Bike bike)
        {
            Station?station = null;

            if (bike.StationId != null)
            {
                station = await _stationRepository.Get(bike.CommunityId, bike.StationId);
            }

            Lock? @lock = null;

            if (bike.HasLock)
            {
                @lock = await _lockRepository.Get(bike.CommunityId, bike.LockId !);
            }

            await _context.RunTransactionAsync(transaction =>
            {
                if (station != null)
                {
                    _stationRepository.Update(station, nameof(Station.NumberOfBikes), FieldValue.Increment(-1), transaction);
                }
                if (@lock != null)
                {
                    _lockRepository.Delete(@lock, transaction);
                }

                _bikeRepository.Delete(bike, transaction);
            });
        }
Exemple #2
0
        public void RemoveBike(Guid id, Status status)
        {
            var bike = _bikeRepository.GetById(id);

            bike.CurrentStatusId = (int)status;
            _bikeRepository.Delete(bike);

            CreateHistoryItemForBike(id, status);
        }
        public IActionResult DeleteBike(int id)
        {
            Bike bike = _bikeRepository.GetBy(id);

            if (bike == null)
            {
                return(NotFound());
            }
            _bikeRepository.Delete(bike);
            _bikeRepository.SaveChanges();
            return(NoContent());
        }
Exemple #4
0
        public async Task <IActionResult> DeletePhoto(int bikeId, int id)
        {
            var bike = await _bikeRepo.GetBike(bikeId);

            if (!bike.Photos.Any(p => p.Id == id))
            {
                return(Unauthorized());
            }

            var photoFromRepo = await _bikeRepo.GetPhoto(id);

            if (photoFromRepo.IsMain)
            {
                return(BadRequest("You cannot delete your main photo"));
            }

            if (photoFromRepo.PublicId != null)
            {
                var deleteParams = new DeletionParams(photoFromRepo.PublicId);

                var result = _cloudinary.Destroy(deleteParams);

                if (result.Result == "ok")
                {
                    _bikeRepo.Delete(photoFromRepo);
                }
            }

            if (photoFromRepo.PublicId == null)
            {
                _bikeRepo.Delete(photoFromRepo);
            }

            if (await _bikeRepo.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed to delete the photo"));
        }
Exemple #5
0
        public async Task <IActionResult> DeleteBike(int id)
        {
            var bike = await _bikeRepo.GetBike(id);

            _bikeRepo.Delete(bike);

            if (!await _bikeRepo.SaveAll())
            {
                return(BadRequest("That didn't work"));
            }

            return(StatusCode(201));
        }
Exemple #6
0
 public IActionResult Delete(Bike b)
 {
     _repository.Delete(b.Id);
     return RedirectToAction("Index");
 }