public void MatchPackages() { var packages = _packagesService.GetAllPackagesToBeSend(); if (!packages.Any()) { return; } var drivers = _usersService.GetAllDrivers().ToList(); _packagesService.ClearDriversPackagesList(drivers); foreach (var package in packages) { var closestDriver = ChooseDriver(package, drivers); if (closestDriver != null) { _packagesService.UpdateStatus(package.Id, closestDriver.Id, Status.Sent, (uint)package.Size); closestDriver.Packages.Add(package); _usersService.UpdatePackages(closestDriver.Id, package); } } GenerateWaybills(drivers); }