/// <summary>
        /// Load Next is to be call till HasMoreData is false
        /// </summary>
        /// <param name="userContext">user object to be fetched in next LoadNext call</param>
        /// <returns></returns>
        public LoaderResult LoadNext(object userContext)
        {
            try
            {
                if (_persistentItems == null)
                {
                    _persistentItems = PersistenceProvider.GetAll(_hint).GetEnumerator();
                }
                LoaderResult result = new LoaderResult();
                result.UserContext = userContext;
                result.HasMoreData = false;

                while (_persistentItems.MoveNext())
                {
                    result.Data.Add(_persistentItems.Current);
                    _currentIndex++;
                    if (_currentIndex % _singleIterationSize == 0)
                    {
                        result.HasMoreData = true;
                        break;
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.ToString());
                throw ex;
            }
        }