public static string RenderEventAsIcs(string elmcity_id, string summary, string start, string end, string description, string location, string url)
{
try
{
var calinfo = Utils.AcquireCalinfo(elmcity_id);
var tzname = calinfo.tzname;
var tzid = calinfo.tzinfo.Id;
var ical = new DDay.iCal.iCalendar();
Collector.AddTimezoneToDDayICal(ical, Utils.TzinfoFromName(tzname));
var evt = new DDay.iCal.Event();
evt.Summary = summary;
evt.Description = Utils.MakeAddToCalDescription(description, url, location);
evt.Location = location;
evt.Url = new Uri(url);
var dtstart = DateTime.Parse(start);
evt.Start = new DDay.iCal.iCalDateTime(dtstart, tzname);
evt.Start.TZID = tzid;
if (evt.End != null)
{
var dtend = DateTime.Parse(end);
evt.End = new DDay.iCal.iCalDateTime(dtend, tzname);
evt.End.TZID = tzid;
}
ical.Events.Add(evt);
var serializer = new DDay.iCal.Serialization.iCalendar.iCalendarSerializer();
return serializer.SerializeToString(ical);
}
catch (Exception e)
{
GenUtils.PriorityLogMsg("exception", "RenderEventAsIcs", e.Message);
return "exception: " + e.Message;
}
}