public async Task<IList<IUserLocation>> GetUserLocationsByUser(
            Guid userGuid,
            int pageNumber,
            int pageSize,
            CancellationToken cancellationToken = default(CancellationToken)
            )
        {
            cancellationToken.ThrowIfCancellationRequested();

            List<IUserLocation> userLocationList = new List<IUserLocation>();
            using (DbDataReader reader = await dbUserLocation.GetPageByUser(
                userGuid,
                pageNumber,
                pageSize,
                cancellationToken)
                )
            {
                while (reader.Read())
                {
                    UserLocation userLocation = new UserLocation();
                    userLocation.LoadFromReader(reader);
                    userLocationList.Add(userLocation);

                }
            }

            return userLocationList;

        }
        public async Task<IUserLocation> FetchByUserAndIpv4Address(
            Guid userGuid,
            long ipv4AddressAsLong,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();
            using (DbDataReader reader = await dbUserLocation.GetOne(
                userGuid,
                ipv4AddressAsLong,
                cancellationToken)
                )
            {
                if (reader.Read())
                {
                    UserLocation userLocation = new UserLocation();
                    userLocation.LoadFromReader(reader);
                    return userLocation;
                }
            }

            return null;

        }