Example #1
0
        public void Next()
        {
            if (IsDone)
            {
                return;
            }

            while (idx < tripAdvisorDatabase.Ids.Length)
            {
                Guid id = tripAdvisorDatabase.Ids[idx];
                if (id == null)
                {
                    ++idx;
                    continue;
                }
                string name = null;
                if (!tripAdvisorDatabase.Prices.TryGetValue(id, out string price) || !tripAdvisorDatabase.Ratings.TryGetValue(id, out string rating) || !tripAdvisorDatabase.Countries.TryGetValue(id, out string country))
                {
                    ++idx;
                    continue;
                }
                for (int i = 0; i < tripAdvisorDatabase.Names.Length; ++i)
                {
                    if (tripAdvisorDatabase.Names[i].TryGetValue(id, out name))
                    {
                        break;
                    }
                }
                Current = new TripAdvisorNode
                {
                    Name    = name,
                    Price   = price,
                    Rating  = rating,
                    Country = country
                };
                ++idx;
                if (tripAdvisorDatabase.GetDecoder().Decode(Current) != null)
                {
                    return;
                }
            }
            IsDone = true;
        }