public async Task <Transition> Handle(CreateTransitionCommand request, CancellationToken cancellationToken) { var locationFrom = await _locationRepository.GetEntity(request.FromLocationId); if (locationFrom == null) { throw new EntityNotFoundException <Location>(request.FromLocationId); } var locationTo = await _locationRepository.GetEntity(request.ToLocationId); if (locationTo == null) { throw new EntityNotFoundException <Location>(request.ToLocationId); } var transitionExist = await _transitionRepository.ExistTransitionBetween(locationFrom.Id, locationTo.Id); if (transitionExist) { throw new TransitionAlreadyExistsException(locationFrom.Id, locationTo.Id); } var transition = new Transition { From = locationFrom, To = locationTo }; await _transitionRepository.AddEntity(transition); return(transition); }
public async Task <Location> Handle(GetLocationQuery request, CancellationToken cancellationToken) { var location = await _locationRepository.GetEntity(request.LocationId); if (location == null) { throw new EntityNotFoundException <Location>(request.LocationId); } return(location); }
public async Task <Location> Handle(UpdateLocationCommand request, CancellationToken cancellationToken) { var location = await _locationRepository.GetEntity(request.LocationId); if (location == null) { throw new EntityNotFoundException <Location>(request.LocationId); } location.Name = request.Name; location.Description = request.Description; await _locationRepository.UpdateEntity(location); return(location); }