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)); }