Ejemplo n.º 1
0
        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);
        }