public ActionResult GetEvents() { MeetupEventsModel model = new MeetupEventsModel { Items = new MeetupItem[0] }; try { string configPath = Server.MapPath("~/config/MeetupUmbracoGroups.txt"); if (!System.IO.File.Exists(configPath)) { LogHelper.Debug <MeetupsController>("Config file was not found: " + configPath); return(PartialView("~/Views/Partials/Home/Meetups.cshtml", model)); } // Get the alias (urlname) of each group from the config file string[] aliases = System.IO.File.ReadAllLines(configPath).Where(x => x.Trim() != "").Distinct().ToArray(); model.Items = ApplicationContext.ApplicationCache.RuntimeCache.GetCacheItem <MeetupItem[]>("UmbracoSearchedMeetups", () => { // Initialize a new service instance (we don't specify an API key since we're accessing public data) MeetupService service = new MeetupService(); List <MeetupItem> items = new List <MeetupItem>(); foreach (string alias in aliases) { try { // Get information about the group MeetupGroup group = service.Groups.GetGroup(alias).Body; if (group.JObject.HasValue("next_event")) { string nextEventId = group.JObject.GetString("next_event.id"); // Make the call to the Meetup.com API to get upcoming events MeetupGetEventsResponse res = service.Events.GetEvents(alias); // Get the next event(s) MeetupEvent nextEvent = res.Body.FirstOrDefault(x => x.Id == nextEventId); // Append the first event of the group if (nextEvent != null) { items.Add(new MeetupItem(group, nextEvent)); } } } catch (Exception ex) { LogHelper.Error <MeetupsController>("Could not get events from meetup.com for group with alias: " + alias, ex); } } return(items.OrderBy(x => x.Event.Time).ToArray()); }, TimeSpan.FromMinutes(30)); } catch (Exception ex) { LogHelper.Error <MeetupsController>("Could not get events from meetup.com", ex); } return(PartialView("~/Views/Partials/Home/Meetups.cshtml", model)); }
public MeetupEventsModel GetUpcomingMeetups() { var meetups = new MeetupEventsModel { Items = new MeetupItem[0] }; try { var configPath = HostingEnvironment.MapPath("~/config/MeetupUmbracoGroups.txt"); if (File.Exists(configPath) == false) { LogHelper.Debug <MeetupsController>("Config file was not found: " + configPath); return(meetups); } // Get the alias (urlname) of each group from the config file var aliases = File.ReadAllLines(configPath).Where(x => x.Trim() != "").Distinct().ToArray(); meetups.Items = UmbracoContext.Current.Application.ApplicationCache.RuntimeCache.GetCacheItem <MeetupItem[]>("UmbracoSearchedMeetups", () => { // Initialize a new service instance (we don't specify an API key since we're accessing public data) var service = new Skybrud.Social.Meetup.MeetupService(); var items = new List <MeetupItem>(); foreach (var alias in aliases) { try { // Get information about the group var meetupGroup = service.Groups.GetGroup(alias).Body; if (meetupGroup.JObject.HasValue("next_event") == false) { continue; } var nextEventId = meetupGroup.JObject.GetString("next_event.id"); // Make the call to the Meetup.com API to get upcoming events var events = service.Events.GetEvents(alias); // Get the next event(s) var nextEvent = events.Body.FirstOrDefault(x => x.Id == nextEventId); // Append the first event of the group if (nextEvent != null) { items.Add(new MeetupItem(meetupGroup, nextEvent)); } } catch (Exception ex) { LogHelper.Error <MeetupsController>("Could not get events from meetup.com for group with alias: " + alias, ex); } } return(items.OrderBy(x => x.Event.Time).ToArray()); }, TimeSpan.FromMinutes(30)); } catch (Exception ex) { LogHelper.Error <MeetupsController>("Could not get events from meetup.com", ex); } return(meetups); }