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

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

public static GetMeetupGroups ( Calinfo calinfo, int delay, string>.Dictionary settings ) : List
calinfo Calinfo
delay int
settings string>.Dictionary
Результат List
        public static List<TaggableSource> GetMeetupGroups(Calinfo calinfo, int delay, Dictionary<string, string> settings)
        {
            var meetup_key = settings["meetup_api_key"];
            var template = "https://api.meetup.com/2/groups?key={0}&lat={1}&lon={2}&radius={3}&page=200";
            var url = String.Format(template,
                        meetup_key,
                        calinfo.lat,
                        calinfo.lon,
                        calinfo.radius);

            var json = HttpUtils.SlowFetchUrl(new Uri(url), delay).DataAsString();
            var obj = JsonConvert.DeserializeObject<Dictionary<string,object>>(json);

            var taggable_sources = new List<TaggableSource>();
            string name_and_pk = "meetupsources";
            foreach ( var group in ((JArray) obj["results"]).ToList()  )
            {
                try
                {
                var name = (string) group["name"];
                var urlname = (string)group["urlname"];
                var id = group["id"].ToString();
                var home_url = "http://www.meetup.com/" + urlname;
                var ical_url = string.Format("http://www.meetup.com/{0}/events/ical/{1}/",
                    urlname,
                    Uri.EscapeDataString(name));
                ical_url = ical_url.Replace("%20", "+");  // otherwise meetup weirdly reports a 505 error
                var taggable = new TaggableSource(
                        name,
                        calinfo.id,
                        home_url,
                        ical_url,
                        calinfo.where);

                    taggable_sources.Add(taggable);
                    RememberTaggable(name_and_pk, id, taggable);
                }
                catch (Exception e)
                {
                    GenUtils.PriorityLogMsg("exception", "FindMeetupGroups", e.Message + e.StackTrace);
                }
            }
            return taggable_sources;
        }