public void DeleteObject(ICalendarInfo calendar, string path) { var uid = path.Split('/').Last().Split('.').FirstOrDefault(); var obj = GetObjectByUID(calendar.ID, uid); if (obj == null) return; var filename = System.IO.Path.Combine(_Directory, calendar.ID, obj.Object.UID + ".ics"); if (!System.IO.File.Exists(filename)) return; System.IO.File.Delete(filename); }
private static string ToString(ICalendarInfo obj) { var serializer = new Serializer(); using (var str = new System.IO.StringWriter()) { serializer.Serialize(str, obj); return(str.ToString()); } }
public ICalendarObject GetObjectByUID(ICalendarInfo calendar, string uid) { var filename = System.IO.Path.Combine(_Directory, calendar.ID, uid + ".ics"); if (!System.IO.File.Exists(filename)) return null; var serializer = new Serializer(); using (var file = System.IO.File.OpenText(filename)) { var ical = (serializer.Deserialize<CalendarCollection>(file))[0]; return ical.Events.OfType<ICalendarObject>() .Union(ical.ToDos) .Union(ical.FreeBusy) .Union(ical.JournalEntries) .FirstOrDefault(); } }
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 IQueryable <ICalendarObject> GetObjects(ICalendarInfo calendar) { if (calendar == null) { return(new ICalendarObject[0].AsQueryable()); } var directory = System.IO.Path.Combine(_directory, calendar.ID); var files = System.IO.Directory.GetFiles(directory, "*.ics"); var serializer = new Serializer(); var many = files.SelectMany(x => serializer.Deserialize <CalendarCollection>(x)).ToList(); var result = many.SelectMany(x => x.Items).ToList(); return(result.AsQueryable()); }
public void DeleteObject(ICalendarInfo calendar, string path) { var uid = path.Split('/').Last().Split('.').FirstOrDefault(); var obj = GetObjectByUID(calendar, uid); if (obj == null) { return; } var filename = System.IO.Path.Combine(_directory, calendar.ID, obj.UID + ".ics"); if (!System.IO.File.Exists(filename)) { return; } System.IO.File.Delete(filename); }
public ICalendarObject GetObjectByUID(ICalendarInfo calendar, string uid) { var filename = System.IO.Path.Combine(_directory, calendar.ID, uid + ".ics"); if (!System.IO.File.Exists(filename)) { return(null); } var serializer = new Serializer(); using (var file = System.IO.File.OpenText(filename)) { var ical = (serializer.Deserialize <CalendarCollection>(file))[0]; return(ical.Events.OfType <ICalendarObject>() .Union(ical.ToDos) .Union(ical.FreeBusy) .Union(ical.JournalEntries) .FirstOrDefault()); } }
public IQueryable<ICalendarObject> GetObjects(ICalendarInfo calendar) { if (calendar == null) return new ICalendarObject[0].AsQueryable(); var directory = System.IO.Path.Combine(_Directory, calendar.ID); var files = System.IO.Directory.GetFiles(directory, "*.ics"); var serializer = new Serializer(); return files .SelectMany(x => serializer.Deserialize<CalendarCollection>(x)) .SelectMany(x => x.Items) .AsQueryable(); }
public IQueryable<ICalendarObject> GetObjectsByFilter(ICalendarInfo calendar, Filter filter) { throw new NotImplementedException(); }
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 IQueryable <ICalendarObject> GetObjectsByFilter(ICalendarInfo calendar, Filter filter) { throw new NotImplementedException(); }
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); }