public async Task <CheckPackageStatusViewModel> CheckStatus(CheckPackageStatusViewModel model)
        {
            var package = await _dbContext.Packages.AsNoTracking()
                          .FirstOrDefaultAsync(p => p.Id == model.Id && p.CustomerEmail == model.Mail);

            if (package == null)
            {
                model.Status = 0;
            }
            else
            {
                if (package.Status == PackageStatus.InMagazine.ToString())
                {
                    model.Status = 1;
                }
                else if (package.Status == PackageStatus.InProgress.ToString())
                {
                    model = await _gpsService.GetLocation(model);
                }
                else if (package.Status == PackageStatus.Delivered.ToString())
                {
                    model.Status = 3;
                }
                else
                {
                    model.Status = 0;
                }
            }

            return(model);
        }
        public async Task <CheckPackageStatusViewModel> GetLocation(CheckPackageStatusViewModel model)
        {
            var package = await _dbContext.Packages.AsNoTracking().FirstOrDefaultAsync(p => p.Id == model.Id);

            if (package == null)
            {
                model.Status = 0;

                return(model);
            }

            var location = await _dbContext.CourierPositions.AsNoTracking().FirstOrDefaultAsync(x => x.CourierId == package.CourierId);

            if (location == null)
            {
                model.Status = 4;
                return(model);
            }
            else
            {
                model.Longitude       = location.Longitude;
                model.Latitude        = location.Latitude;
                model.Key             = _configuration.GetSection("APIkey").Value;
                model.Status          = 2;
                model.GeolocationDate = location.Date;

                return(model);
            }
        }
        public IActionResult CheckStatus()
        {
            var model = new CheckPackageStatusViewModel()
            {
                Status = 99
            };

            return(View(model));
        }
        public async Task <IActionResult> CheckStatus(CheckPackageStatusViewModel model)
        {
            var result = await _packageService.CheckStatus(model);

            return(View(result));
        }