public ApiController(IUserService service, IStoreService storeService, IRiderService riderService, IGeneralService generalService) { _userSrvice = service; _storeService = storeService; _riderService = riderService; _generalService = generalService; }
public RiderHandlerHostedService( IDeliveryService deliveryService, IRiderService riderService, ILogService logger) { this.deliveryService = deliveryService; this.riderService = riderService; this.logger = logger; }
private async Task HandleRiderRatingChangedEvent(RiderRatingChangedEvent riderRatingChanged) { using (var scope = _serviceScopeFactory.CreateScope()) { IRiderService riderService = scope.ServiceProvider.GetRequiredService <IRiderService>(); var updatedRider = new Rider { IdRider = riderRatingChanged.IdRider, AverageRating = riderRatingChanged.newAverageRating }; await riderService.UpdateRider(updatedRider); } }
private async Task AssignDeliveryToRider() { using (var scope = serviceScopeFactory.CreateScope()) { IDeliveryService deliveryService = scope.ServiceProvider.GetRequiredService <IDeliveryService>(); IRiderService riderService = scope.ServiceProvider.GetRequiredService <IRiderService>(); var deliveryToProcess = deliveryService.GetDeliveriesToAssign().FirstOrDefault(); if (deliveryToProcess != null) { logger.Log($"Processing delivery {deliveryToProcess.Id}", Microsoft.Extensions.Logging.LogLevel.Information, System.Net.HttpStatusCode.OK, nameof(RiderHandlerHostedService)); var availableRiders = await riderService.GetRiders(new DTO.RiderFilter() { Active = true }); if (availableRiders.Any()) { var rider = availableRiders .Where(r => r.StartingPoint != null) // TODO: stiamo usando solo il punto di pick up e non stiamo usando il range...migliorare l'algoritmo :) .OrderBy(r => r.StartingPoint.Distance(deliveryToProcess.PickUpPosition)) .First(); await deliveryService.UpdateDelivery(new DTO.Delivery() { Id = deliveryToProcess.Id, IdRider = rider.IdRider, TakeChargeDate = DateTime.UtcNow }); logger.Log($"Assigned rider {rider.IdRider} - \"{rider.RiderName}\" to delivery {deliveryToProcess.Id}", Microsoft.Extensions.Logging.LogLevel.Information, System.Net.HttpStatusCode.OK, nameof(RiderHandlerHostedService)); } else { logger.Log($"No available riders for delivery {deliveryToProcess.Id}", Microsoft.Extensions.Logging.LogLevel.Warning, System.Net.HttpStatusCode.OK, nameof(RiderHandlerHostedService)); } } } }
public RidersController(IRiderService riderService) { this.riderService = riderService; }
public RidersController(IConfiguration config, IRiderService riderService) { _config = config; _riderService = riderService; }
public RidersController(SCCDataContext context, IRiderService service) { _context = context; _service = service; }
public RiderController(CarpoolContext context, IRiderService iRiderService) { this.context = context; this.IRiderService = iRiderService; }
public FollowService(SCCDataContext context, IRiderService riderService) { _context = context; _riderService = riderService; }
public PersonController(IRiderService riderService, IDataService dataService) { _riderService = riderService; _dataService = dataService; }
public SignupService(SCCDataContext context, IRiderService riderService, IRideService rideService) { _context = context; _riderService = riderService; _rideService = rideService; }