public void Save(CALDAVContext mDb, CalendarFile calendarFile) { this.ValidateModel(); // assuming all events come with a UID // Create Event for the file var calendarToDo = calendarFile.CalendarToDo.Where(a => a.ToDoId == this.FileUid()).SingleOrDefault(); if (calendarToDo == null) { calendarToDo = new CalendarToDo(); calendarToDo.FolderId = calendarFile.FolderId; calendarToDo.CalendarFileId = calendarFile.CalendarFileId; calendarToDo.ToDoId = this.FileUid(); mDb.CalendarToDo.Add(calendarToDo); } //calendarToDo.Class = this.Class; calendarToDo.Completed = this.Completed; calendarToDo.DateTimeStamp = this.DTSTAMP; calendarToDo.Due = this.Due; calendarToDo.Modified = this.LastModified; calendarToDo.Priority = this.Priority; calendarToDo.Sequence = this.Sequence; calendarToDo.Start = this.Start; //calendarToDo.Status = this.Status; calendarToDo.Summary = this.Summary; }
public AbstractCalendarRepository(CALDAVContext db, UserFolderAccess userAccess, FolderInfo folderInfo, CalDavServer server, Guid file) : base(userAccess, folderInfo, server) { File = file; mDb = db; LoadCalendarInfo(folderInfo.CalendarFolderInfo); WebServerRootDirectory = System.IO.Path.Combine(Directory.GetCurrentDirectory(), CalDavSettings.SERVERFILEPATH); Directory.CreateDirectory(WebServerRootDirectory); }
public ServerFacade(CALDAVContext db) { mDb = db; // Will throw an exception if many or no active server descriptions are found Server = mDb.CalDavServer .Include(a => a.ContextPathNavigation) .Where(a => a.Active).Single(); }
public void Delete(CALDAVContext mDb, CalendarFile calendarFile) { var calendarEvent = calendarFile.CalendarEvent.Where(a => a.EventId == this.FileUid()).SingleOrDefault(); if (calendarEvent != null) { mDb.CalendarEvent.Remove(calendarEvent); } }
public void Delete(CALDAVContext mDb, CalendarFile calendarFile) { var calendarToDo = calendarFile.CalendarToDo.Where(a => a.ToDoId == this.FileUid()).SingleOrDefault(); if (calendarToDo != null) { mDb.CalendarToDo.Remove(calendarToDo); } }
public void Save(CALDAVContext mDb, CalendarFile calendarFile) { this.ValidateModel(); // assuming all events come with a UID // Create Event for the file var calendarEvent = calendarFile.CalendarEvent.Where(a => a.EventId == this.FileUid()).SingleOrDefault(); if (calendarEvent == null) { calendarEvent = new CalendarEvent { FolderId = calendarFile.FolderId, CalendarFileId = calendarFile.CalendarFileId, EventId = this.FileUid() }; mDb.CalendarEvent.Add(calendarEvent); } //calendarEvent.Class = this.Class; calendarEvent.Created = this.Created; if ((this.Description ?? "").Length <= (int.MaxValue / 2)) { calendarEvent.Description = this.Description; } calendarEvent.End = this.End; calendarEvent.IsAllDay = this.IsAllDay; calendarEvent.Location = this.Location; calendarEvent.Modified = this.LastModified; //calendarFile.CalendarEvent.Organizer = this.Organizer; calendarEvent.Priority = this.Priority; calendarEvent.Sequence = this.Sequence; calendarEvent.Start = this.Start; //calendarFile.CalendarEvent.Status = this.Status; calendarEvent.Summary = this.Summary; calendarEvent.Transparency = this.Transparency; if (this.Url != null) { calendarEvent.Url = this.Url.LocalPath; } }
public static CalDavRequest GetRequest(string method, CALDAVContext mDb, CalDavRequestData requestData, AbstractFolder folder) { switch (method) { case CalDavSettings.Methods.OPTIONS: return(new Options(requestData, folder)); case CalDavSettings.Methods.PROPFIND: return(new Propfind(requestData, folder)); case CalDavSettings.Methods.PROPPATCH: return(new Propfind(requestData, folder)); case CalDavSettings.Methods.REPORT: return(new Report(requestData, folder)); case CalDavSettings.Methods.DELETE: return(new Delete(folder)); case CalDavSettings.Methods.PUT: return(new Put(requestData, folder)); case CalDavSettings.Methods.MKCALENDAR: return(new MkCalendar(folder)); case CalDavSettings.Methods.GET: return(new Get(folder)); default: return(new NotImplemented()); } }
public PrincipalItem(UserProfile currentUser, CALDAVContext db) { mDb = db; CurrentUser = currentUser; }
public IQueryable <ICalendarObject> Filter(CALDAVContext mDb, CalendarFile calendarFile, Filter filer) { throw new NotImplementedException(); }
public void Delete(CALDAVContext mDb, CalendarFile calendarFile) { throw new NotImplementedException(); }
public BasicAuthorizeFilter(CALDAVContext db, string realm = null) { mDb = db; this.realm = realm; }
public CalDavController(CALDAVContext db) { mDb = db; Server = new ServerFacade(mDb); }
public void Delete(CALDAVContext mDb, Guid folderId, Guid fileId) { // eager load the calendar file details CalendarFile calendarFile = mDb.CalendarFile .Include(a => a.FolderNavigation.CalendarFolderInfo) .Include(a => a.CalendarEvent) .Include(a => a.CalendarFreeBusy) .Include(a => a.CalendarJournal) .Include(a => a.CalendarTimeZone) .Include(a => a.CalendarToDo) .Where(a => a.FolderId == folderId && a.CalendarFileId == fileId).SingleOrDefault(); if (calendarFile == null) { return; } // Update Folder CTag else { calendarFile.FolderNavigation.Modified = DateTime.UtcNow; // used to trigger CTag RowVersion Update calendarFile.FolderNavigation.CalendarFolderInfo.Modified = DateTime.UtcNow; } foreach (var e in Events) { e.Calendar = this; e.Delete(mDb, calendarFile); } foreach (var td in ToDos) { td.Calendar = this; td.Delete(mDb, calendarFile); } /* * foreach (var tz in TimeZones) * { * tz.Calendar = this; * tz.Delete(mDb, calendarFile); * } * foreach (var fb in FreeBusy) * { * fb.Calendar = this; * fb.Delete(mDb, calendarFile); * } * foreach (var jn in JournalEntries) * { * jn.Calendar = this; * jn.Delete(mDb, calendarFile); * } */ if (calendarFile != null) { mDb.Remove(calendarFile); } mDb.SaveChanges(); }
public void Save(CALDAVContext mDb, Guid folderId, Guid fileId) { this.ValidateModel(); // eager load the calendar file details CalendarFile calendarFile = mDb.CalendarFile .Include(a => a.FolderNavigation.CalendarFolderInfo) .Include(a => a.CalendarEvent) .Include(a => a.CalendarFreeBusy) .Include(a => a.CalendarJournal) .Include(a => a.CalendarTimeZone) .Include(a => a.CalendarToDo) .Where(a => a.FolderId == folderId && a.CalendarFileId == fileId).SingleOrDefault(); // Create Calendar File if (calendarFile == null) { calendarFile = new CalendarFile { FolderId = folderId, CalendarFileId = fileId, Created = DateTime.UtcNow }; var calendarFolder = mDb.FolderInfo.Include(a => a.CalendarFolderInfo) .Where(a => a.FolderId == folderId).SingleOrDefault(); if (calendarFolder == null) { throw new Exception($"Calendar folder for folder ID: ({folderId.ToString()}) does not exist in DB context."); } calendarFolder.Modified = DateTime.UtcNow; calendarFolder.CalendarFolderInfo.Modified = DateTime.UtcNow; mDb.CalendarFile.Add(calendarFile); } else { calendarFile.FolderNavigation.Modified = DateTime.UtcNow; // used to trigger CTag RowVersion Update calendarFile.FolderNavigation.CalendarFolderInfo.Modified = DateTime.UtcNow; } // update Calendar File calendarFile.Scale = this.Scale; calendarFile.ProdId = this.ProdID; calendarFile.Modified = DateTime.UtcNow; foreach (var e in Events) { e.Calendar = this; e.Save(mDb, calendarFile); } foreach (var td in ToDos) { td.Calendar = this; td.Save(mDb, calendarFile); } /* * foreach (var tz in TimeZones) * { * tz.Calendar = this; * tz.Save(mDb, calendarFile); * } * foreach (var fb in FreeBusy) * { * fb.Calendar = this; * fb.Save(mDb, calendarFile); * } * foreach (var jn in JournalEntries) * { * jn.Calendar = this; * jn.Save(mDb, calendarFile); * } */ mDb.SaveChanges(); }
public CalendarRepository(CALDAVContext db, UserFolderAccess userAccess, FolderInfo folderInfo, CalDavServer server, Guid file) : base(db, userAccess, folderInfo, server, file) { }
public CalDavRequest GetRequestType(string method, CALDAVContext mDb, CalDavRequestData requestData, AbstractFolder folder) { return(CalDavRequestFactory.GetRequest(method, mDb, requestData, folder)); }