public static void Serialize(System.IO.Stream stream, Event e, System.Text.Encoding encoding = null) { var ical = new CalDav.Calendar(); ical.Events.Add(e); Serialize(stream, ical, encoding); }
public void Save(Event e) { if (string.IsNullOrEmpty(e.UID)) { e.UID = Guid.NewGuid().ToString(); } e.LastModified = DateTime.UtcNow; var result = Common.Request(new Uri(Url, e.UID + ".ics"), "PUT", (req, str) => { req.Headers[System.Net.HttpRequestHeader.IfNoneMatch] = "*"; req.ContentType = "text/calendar"; var calendar = new CalDav.Calendar(); e.Sequence = (e.Sequence ?? 0) + 1; calendar.Events.Add(e); Common.Serialize(str, calendar); }, Credentials); if (result.Item1 != System.Net.HttpStatusCode.Created && result.Item1 != HttpStatusCode.NoContent) { throw new Exception("Unable to save event: " + result.Item1); } e.Url = new Uri(Url, result.Item3[System.Net.HttpResponseHeader.Location]); GetObject(e.UID); }
public void Delete(string id) { if (string.IsNullOrEmpty(id)) { throw new ArgumentNullException("UID"); } var headers = new Dictionary <string, string>(); var calendar = new CalDav.Calendar(); string content; using (var ms = new MemoryStream()) { Common.Serialize(ms, calendar); var arr = ms.ToArray(); content = System.Text.Encoding.UTF8.GetString(arr, 0, arr.Length); } var result = common.Request(new Uri(Url, id + ".ics"), "DELETE", "text/calendar", content, Credentials, headers); if (result.HttpStatusCode != System.Net.HttpStatusCode.Created && result.HttpStatusCode != HttpStatusCode.NoContent) { throw new Exception("Unable to delete event: " + result.HttpStatusCode); } }
private static string ToString(ICalendarObject obj) { var calendar = new CalDav.Calendar(); calendar.AddItem(obj); var serializer = new Serializer(); using (var str = new System.IO.StringWriter()) { serializer.Serialize(str, calendar); return(str.ToString()); } }
public void Save(ICalendarInfo calendar, ICalendarObject e) { var filename = System.IO.Path.Combine(_directory, calendar.ID, e.UID + ".ics"); var ical = new CalDav.Calendar(); ical.AddItem(e); var serializer = new Serializer(); using (var file = System.IO.File.Open(filename, System.IO.FileMode.Create)) { serializer.Serialize(file, ical); } }
public void Delete(Event e) { if (string.IsNullOrEmpty(e.UID)) throw new ArgumentNullException("UID"); var result = Common.Request(new Uri(Url, e.UID + ".ics"), "DELETE", (req, str) => { req.Headers[System.Net.HttpRequestHeader.IfNoneMatch] = "*"; req.ContentType = "text/calendar"; var calendar = new CalDav.Calendar(); e.Sequence = (e.Sequence ?? 0) + 1; Common.Serialize(str, calendar); }, Credentials); }
public void Delete(Event e) { if (string.IsNullOrEmpty(e.UID)) { throw new ArgumentNullException("UID"); } var result = Common.Request(new Uri(Url, e.UID + ".ics"), "DELETE", (req, str) => { req.Headers[System.Net.HttpRequestHeader.IfNoneMatch] = "*"; req.ContentType = "text/calendar"; var calendar = new CalDav.Calendar(); e.Sequence = (e.Sequence ?? 0) + 1; Common.Serialize(str, calendar); }, Credentials); }
public void Save(Event e) { if (string.IsNullOrEmpty(e.UID)) e.UID = Guid.NewGuid().ToString(); e.LastModified = DateTime.UtcNow; var result = Common.Request(new Uri(Url, e.UID + ".ics"), "PUT", (req, str) => { req.Headers[System.Net.HttpRequestHeader.IfNoneMatch] = "*"; req.ContentType = "text/calendar"; var calendar = new CalDav.Calendar(); e.Sequence = (e.Sequence ?? 0) + 1; calendar.Events.Add(e); Common.Serialize(str, calendar); }, Credentials); if (result.Item1 != System.Net.HttpStatusCode.Created && result.Item1 != HttpStatusCode.NoContent) throw new Exception("Unable to save event: " + result.Item1); e.Url = new Uri(Url, result.Item3[System.Net.HttpResponseHeader.Location]); GetObject(e.UID); }
private static string ToString(CalendarObjectData obj) { var calendar = new CalDav.Calendar(); calendar.AddItem(obj.Object); if (obj.TimeZones != null) { foreach (var tz in obj.TimeZones) { calendar.TimeZones.Add(tz); } } var serializer = new Serializer(); using (var str = new System.IO.StringWriter()) { serializer.Serialize(str, calendar); return(str.ToString()); } }
public static void Serialize(System.IO.Stream stream, CalDav.Calendar ical, System.Text.Encoding encoding = null) { //System.IO.StreamWriter sr = new System.IO.StreamWriter(stream); //sr.WriteLine("BEGIN: VCALENDAR"); //sr.WriteLine("VERSION:2.0"); //sr.WriteLine("PRODID: CalCli"); //sr.WriteLine("BEGIN:VEVENT"); //var enumer = ical.Events.GetEnumerator(); //enumer.MoveNext(); //sr.WriteLine("UID:"+enumer.Current.UID); //sr.WriteLine("DTSTAMP:20060712T182145Z"); //sr.WriteLine("DTSTART:20060714T170000Z"); //sr.WriteLine("DTEND:20060715T040000Z"); //sr.WriteLine("SUMMARY:Bastille Day Party"); //sr.WriteLine("END:VEVENT"); //sr.WriteLine("END:VCALENDAR"); //return var serializer = new CalDav.Serializer(); serializer.Serialize(stream, ical, encoding); }
public void Save(ToDo e) { bool update = !string.IsNullOrEmpty(e.UID); if (string.IsNullOrEmpty(e.UID)) { e.UID = Guid.NewGuid().ToString(); } e.LastModified = DateTime.UtcNow; var headers = new Dictionary <string, string>(); if (!update) { headers["If-None-Match"] = "*"; } var calendar = new CalDav.Calendar(); e.Sequence = (e.Sequence ?? 0) + 1; calendar.ToDos.Add(e); string content; using (var ms = new MemoryStream()) { Common.Serialize(ms, calendar); var arr = ms.ToArray(); content = System.Text.Encoding.UTF8.GetString(arr, 0, arr.Length); } var result = common.Request(new Uri(Url, e.UID + ".ics"), "PUT", "text/calendar", content, Credentials, headers); if (result.HttpStatusCode != System.Net.HttpStatusCode.Created && result.HttpStatusCode != HttpStatusCode.NoContent) { throw new Exception("Unable to save event: " + result.HttpStatusCode); } }
public void Save(ICalendarInfo calendar, ICalendarObject e) { var filename = System.IO.Path.Combine(_Directory, calendar.ID, e.UID + ".ics"); var ical = new CalDav.Calendar(); ical.AddItem(e); var serializer = new Serializer(); using (var file = System.IO.File.Open(filename, System.IO.FileMode.Create)) serializer.Serialize(file, ical); }
public static void Serialize(System.IO.Stream stream, CalDav.Calendar ical, System.Text.Encoding encoding = null) { var serializer = new CalDav.Serializer(); serializer.Serialize(stream, ical, encoding); }
public void Save(ICalendarInfo calendar, ICalendarObject e, IEnumerable<TimeZone> timeZones) { var filename = System.IO.Path.Combine(_Directory, calendar.ID, e.UID + ".ics"); var ical = new CalDav.Calendar(); ical.AddItem(e); foreach (var timezone in timeZones) { ical.TimeZones.Add(timezone); } var serializer = new Serializer(); using (var file = System.IO.File.Open(filename, System.IO.FileMode.Create)) serializer.Serialize(file, ical); //update accordingly the _.ical file var calFileName = System.IO.Path.Combine(_Directory, calendar.ID + "\\_.ical"); var globalIcal = LoadSerializedCalendarFromFileName(calendar.ID, calFileName); foreach (var item in ical.Items) { globalIcal.AddItem(item); } using (var file = System.IO.File.Open(calFileName, System.IO.FileMode.Open, System.IO.FileAccess.Write)) serializer.Serialize(file, globalIcal); }