CalendarAggregator.Discovery.GetEventBriteOrganizers C# (CSharp) Метод

GetEventBriteOrganizers() публичный статический Метод

public static GetEventBriteOrganizers ( Calinfo calinfo, string>.Dictionary settings ) : List
calinfo Calinfo
settings string>.Dictionary
Результат List
        public static List<TaggableSource> GetEventBriteOrganizers(Calinfo calinfo, Dictionary<string, string> settings)
        {
            var organizers = new List<TaggableSource>();
            var name_and_pk = "eventbritesources";
            var collector = new Collector(calinfo, settings);
            string method = "event_search";
            string args = collector.MakeEventBriteArgs();
            int page_count = collector.GetEventBritePageCount(method, args);

            var results = from evt in collector.EventBriteIterator(page_count, method, args)
                          select new
                          {
                              id = evt.Descendants("organizer").Descendants("id").FirstOrDefault().Value,
                              name = evt.Descendants("organizer").Descendants("name").FirstOrDefault().Value,
                              city = evt.Descendants("venue").Descendants("city").FirstOrDefault().Value.ToLower()
                          };

            results = results.Distinct();

            Parallel.ForEach(source: results, body: (id_name_city) =>
            {
                if (id_name_city.city != calinfo.City)
                    return;
                var organizer_id = id_name_city.id;
                var name = id_name_city.name;
                var home_url = "http://www.eventbrite.com/org/" + organizer_id;
                var escaped_name = Uri.EscapeDataString(name);
                var ical_url = string.Format("http://{0}/ics_from_eventbrite_organizer?organizer={1}&elmcity_id={2}", ElmcityUtils.Configurator.appdomain, escaped_name, calinfo.id);
                var taggable = new TaggableSource(name, calinfo.id, home_url, ical_url, id_name_city.city);
                RememberTaggable(name_and_pk, organizer_id, taggable);
                organizers.Add(taggable);
            });

            return organizers;
        }