public IActionResult EventDetail(int id = 1) //do not change variable name id due to routing { EventViewModel model = new EventViewModel { EventItem = eventSqlDal.GetEvent(id), }; model.EventItem.Podcast = podcastDal.GetPodcast(model.EventItem.PodcastID); model.EventItem.Podcast = podcastDal.GetPodcast(model.EventItem.PodcastID); model.EventItem.Venue = venueSqlDal.GetVenue(model.EventItem.VenueID); model.EventItem.Podcast.Genre = genreSqlDal.GetGenre(model.EventItem.Podcast.GenreID); model.EventItem.Ticket = ticketSqlDal.GetTicket(model.EventItem.TicketLevel); return(View(model)); }
public ActionResult EncodeICal(int eventID) { Event eventItem = eventSqlDal.GetEvent(eventID); eventItem.Venue = venueSqlDal.GetVenue(eventItem.VenueID); string downloadFileName = "PodfestMidWestEvent.ics"; ICalendar ical = new ICalendar(); var icalStringbuilder = new StringBuilder(); icalStringbuilder.AppendLine("BEGIN:VCALENDAR"); icalStringbuilder.AppendLine("PRODID:-//PodfestMidwest//EN"); icalStringbuilder.AppendLine("VERSION:2.0"); icalStringbuilder.AppendLine("BEGIN:VEVENT"); icalStringbuilder.AppendLine("SUMMARY;LANGUAGE=en-us:" + eventItem.EventName); icalStringbuilder.AppendLine("CLASS:PUBLIC"); icalStringbuilder.AppendLine(string.Format("CREATED:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow)); icalStringbuilder.AppendLine("DESCRIPTION:" + eventItem.DescriptionCopy); icalStringbuilder.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", eventItem.Beginning)); icalStringbuilder.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", eventItem.Ending)); icalStringbuilder.AppendLine("SEQUENCE:0"); icalStringbuilder.AppendLine("UID:" + Guid.NewGuid()); icalStringbuilder.AppendLine( string.Format( "LOCATION:{0}\\, {1}\\, {2}\\, {3} {4}", eventItem.Venue.DisplayName, eventItem.Venue.Address1, eventItem.Venue.City, eventItem.Venue.State, eventItem.Venue.ZipCode).Trim()); icalStringbuilder.AppendLine("END:VEVENT"); icalStringbuilder.AppendLine("END:VCALENDAR"); var bytes = Encoding.UTF8.GetBytes(icalStringbuilder.ToString()); return(this.File(bytes, "text/calendar", downloadFileName)); }