public ServiceResponse <List <Checkpoint> > GetCheckpoints(double startLat, double startLng, double endLat, double endLng, bool isThirdParty)
        {
            ServiceResponse <List <Checkpoint> > response = new ServiceResponse <List <Checkpoint> >();

            try
            {
                response.Data = _context.Checkpoint
                                .Where(c => c.IsThirdParty == isThirdParty).ToList()
                                .Select(c => new
                {
                    StartDistance = LocationHandler.CalculateDistance(startLat, startLng, c.Latitude.Value, c.Longitude.Value),
                    EndDistance   = LocationHandler.CalculateDistance(endLat, endLng, c.Latitude.Value, c.Longitude.Value),
                    c.Id,
                    c.Name,
                    c.Latitude,
                    c.Longitude
                }).ToList()
                                .Where(c => (c.Latitude != startLat && c.Longitude != startLng) && (c.Latitude != endLat && c.Longitude != endLng) && (c.StartDistance <= 400 || c.EndDistance <= 400))
                                .Select(c => new Checkpoint
                {
                    Id        = c.Id,
                    Name      = c.Name,
                    Latitude  = c.Latitude,
                    Longitude = c.Longitude
                }).ToList();

                response.Status = ResponseStatus.Success;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Status  = ResponseStatus.ServerError;

                ExceptionLogger.LogException(ex);
            }

            return(response);
        }