public FileContentResult ExportEvent(int id)
{
var selectedevent = eventRepository.Events.Where(x => x.EventId == id).FirstOrDefault();
if (selectedevent == null)
{
throw new ArgumentException("The event does not exist");
}
var start = selectedevent.StartTime.ToUniversalTime().ToString("yyyyMMddTHHMMssZ");
var end = selectedevent.StartTime.AddHours(3).ToUniversalTime().ToString("yyyyMMddTHHMMssZ");
var calendardata = "BEGIN:VCALENDAR\r\n";
calendardata += "VERSION: 1.0\r\n";
calendardata += "BEGIN:VEVENT\r\n";
calendardata += "UID:"+Guid.NewGuid() + "\r\n";
calendardata += "DTSTART:"+ start + "\r\n";
calendardata += "DTEND:"+ end + "\r\n";
calendardata += "SUMMARY:[CapRaffle] " + selectedevent.Name + "\r\n";
calendardata += "DESCRIPTION:" + selectedevent.Description + "\r\n";
calendardata += "CLASS:PUBLIC\r\n";
calendardata += "CATEGORIES:" + selectedevent.Category.Name + "\r\n";
calendardata += "END:VEVENT\r\n";
calendardata += "END:VCALENDAR";
var encoding = new UTF8Encoding();
var bytearray = encoding.GetBytes(calendardata);
var filename = selectedevent.Name + ".ics";
Response.AppendHeader("Content-Disposition", "inline; filename=" + filename +";");
return File(bytearray, "text/calendar", filename);
}