/// <summary> /// Moves a document from one folder to another /// </summary> /// <param name="userId">The id of the user whos moving the document</param> /// <param name="documentId">The id of the document the user is moving</param> /// <param name="newFolderId">The id of the folder the user is moving the document to</param> public void MoveDocumentWeb(int userId, int documentId, int newFolderId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var userdocument = from ud in context.Userdocuments where ud.userId == userId && ud.documentId == documentId select ud; userdocument.First <Userdocument>().folderId = newFolderId; context.SaveChanges(); } }
/// <summary> /// Adds a folder to the database. /// </summary> /// <param name="name">The name of the folder</param> /// <param name="parentFolderId">The id of the parent folder. Null if it's a root folder.</param> public int AddFolder(String name, int parentFolderId) { using (PieFactoryEntities context = new PieFactoryEntities()) { Folder folder = new Folder(); folder.name = name; folder.parentFolderId = parentFolderId; context.Folders.AddObject(folder); context.SaveChanges(); return(folder.id); } }
/// <summary> /// Adds a documentrevision to an already existing document /// </summary> /// <param name="editorId">The id of the user who made the revision</param> /// <param name="documentId">The id of the original document</param> /// <param name="content">The xaml + metadata content of the file</param> public void AddDocumentRevision(DateTime creationTime, int editorId, int documentId, String filepath) { using (PieFactoryEntities context = new PieFactoryEntities()) { Documentrevision documentRevision = new Documentrevision(); documentRevision.creationTime = creationTime; documentRevision.editorId = editorId; documentRevision.documentId = documentId; documentRevision.path = filepath; context.Documentrevisions.AddObject(documentRevision); context.SaveChanges(); } }
/// <summary> /// Adds a userdocument in the givens users root folder /// </summary> /// <param name="userId">The id of the user</param> /// <param name="documentId">The id of the document</param> public void AddUserDocumentInRoot(int userId, int documentId) { using (PieFactoryEntities context = new PieFactoryEntities()) { User user = GetUserById(userId); Userdocument userdocument = new Userdocument(); userdocument.documentId = documentId; userdocument.folderId = user.rootFolderId; userdocument.userId = userId; context.Userdocuments.AddObject(userdocument); context.SaveChanges(); } }
/// <summary> /// Adds a reference from a user to a document to the database. /// </summary> /// <param name="userId">The id of the user</param> /// <param name="documentId">The id of the document</param> /// <param name="directoryPath">The path of the directory in which the document lies</param> public void AddUserDocument(int userId, int documentId, String directoryPath) { int folderId = GetFolderIdByDirectoryPath(userId, directoryPath); using (PieFactoryEntities context = new PieFactoryEntities()) { Userdocument userDocument = new Userdocument(); userDocument.documentId = documentId; userDocument.userId = userId; userDocument.folderId = folderId; context.Userdocuments.AddObject(userDocument); context.SaveChanges(); } }
/// <summary> /// Add a document to the database /// </summary> /// <param name="name">The name of the document</param> /// <param name="userId">The id of the user who created the document</param> /// <param name="filepath">The path to the file</param> /// <returns>The id of the created document</returns> public int AddDocument(String name, int userId, String directoryPath) { using (PieFactoryEntities context = new PieFactoryEntities()) { Document document = new Document(); document.name = name; document.creatorId = userId; document.creationTime = DateTime.UtcNow; document.path = directoryPath; context.Documents.AddObject(document); context.SaveChanges(); return document.id; } }
/// <summary> /// Alters a userdocument, effectively moving the document from one folder to another /// </summary> /// <param name="userId">The id of the user</param> /// <param name="documentId">The id of the document</param> /// <param name="filepath">the path to the document</param> public void AlterUserDocument(int userId, int documentId, String filepath) { int folderId = GetFolderIdByDirectoryPath(userId, filepath); using (PieFactoryEntities context = new PieFactoryEntities()) { var userdocuments = from ud in context.Userdocuments where ud.userId == userId && ud.documentId == documentId select ud; Userdocument userdocument = userdocuments.First <Userdocument>(); userdocument.folderId = folderId; context.SaveChanges(); } }
/// <summary> /// Add a document to the database /// </summary> /// <param name="name">The name of the document</param> /// <param name="userId">The id of the user who created the document</param> /// <param name="filepath">The path to the file</param> /// <returns>The id of the created document</returns> public int AddDocument(String name, int userId, String directoryPath) { using (PieFactoryEntities context = new PieFactoryEntities()) { Document document = new Document(); document.name = name; document.creatorId = userId; document.creationTime = DateTime.UtcNow; document.path = directoryPath; context.Documents.AddObject(document); context.SaveChanges(); return(document.id); } }
/// <summary> /// Delete a folder from the database /// </summary> /// <param name="folderId">The id of the folder to delete</param> public void DeleteFolder(int folderId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var folders = from f in context.Folders where f.id == folderId select f; if (folders.Count <Folder>() > 0) { Folder folder = folders.First <Folder>(); context.Folders.DeleteObject(folder); context.SaveChanges(); } } }
/// <summary> /// Delete a users reference to a document /// </summary> /// <param name="userId">The id of the user</param> /// <param name="documentId">The id of the document</param> public void DeleteDocumentReference(int userId, int documentId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var userDocuments = from dr in context.Userdocuments where dr.documentId == documentId & dr.userId == userId select dr; if (userDocuments.Count <Userdocument>() > 0) { Userdocument userDocument = userDocuments.First <Userdocument>(); context.Userdocuments.DeleteObject(userDocument); context.SaveChanges(); } } }
/// <summary> /// Delete a document from the database /// </summary> /// <param name="documentId">The id of the document to delete</param> public void DeleteDocument(int documentId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var documents = from d in context.Documents where d.id == documentId select d; if (documents.Count <Document>() > 0) { Document document = documents.First <Document>(); context.Documents.DeleteObject(document); context.SaveChanges(); } } }
/// <summary> /// Adds a user to the database. /// </summary> /// <param name="email">The email of the user</param> /// <param name="password">The encrypted password of the user</param> /// <returns>The id of the added user. -1 if a user with the given email already exists</returns> public int AddUser(String email, String password) { using (PieFactoryEntities context = new PieFactoryEntities()) { User user = new User(); user.email = email; user.password = password; //Add a root folder named "root" Folder folder = new Folder(); folder.name = "root"; user.Folder = folder; context.Users.AddObject(user); context.SaveChanges(); return(user.id); } }
/// <summary> /// Removes all data from the database. /// </summary> public void DeleteAllData() { using (PieFactoryEntities context = new PieFactoryEntities()) { //Delete all folders var folders = context.Folders; foreach (Folder f in folders) { context.Folders.DeleteObject(f); } //Delete all users var users = context.Users; foreach (User u in users) { context.Users.DeleteObject(u); } //Delete all documents var documents = context.Documents; foreach (Document d in documents) { context.Documents.DeleteObject(d); } //Delete all documentRevision var documentRevisions = context.Documentrevisions; foreach (Documentrevision d in documentRevisions) { context.Documentrevisions.DeleteObject(d); } //Delete all userDocuments var userdocuments = context.Userdocuments; foreach (Userdocument ud in userdocuments) { context.Userdocuments.DeleteObject(ud); } context.SaveChanges(); } }
/// <summary> /// Adds a user to the database. /// </summary> /// <param name="email">The email of the user</param> /// <param name="password">The encrypted password of the user</param> /// <returns>The id of the added user. -1 if a user with the given email already exists</returns> public int AddUser(String email, String password) { using (PieFactoryEntities context = new PieFactoryEntities()) { User user = new User(); user.email = email; user.password = password; //Add a root folder named "root" Folder folder = new Folder(); folder.name = "root"; user.Folder = folder; context.Users.AddObject(user); context.SaveChanges(); return user.id; } }
/// <summary> /// Alters a userdocument, effectively moving the document from one folder to another /// </summary> /// <param name="userId">The id of the user</param> /// <param name="documentId">The id of the document</param> /// <param name="filepath">the path to the document</param> public void AlterUserDocument(int userId, int documentId, String filepath) { int folderId = GetFolderIdByDirectoryPath(userId, filepath); using (PieFactoryEntities context = new PieFactoryEntities()) { var userdocuments = from ud in context.Userdocuments where ud.userId == userId && ud.documentId == documentId select ud; Userdocument userdocument = userdocuments.First<Userdocument>(); userdocument.folderId = folderId; context.SaveChanges(); } }
/// <summary> /// Delete a document from the database /// </summary> /// <param name="documentId">The id of the document to delete</param> public void DeleteDocument(int documentId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var documents = from d in context.Documents where d.id == documentId select d; if (documents.Count<Document>() > 0) { Document document = documents.First<Document>(); context.Documents.DeleteObject(document); context.SaveChanges(); } } }
/// <summary> /// Delete a users reference to a document /// </summary> /// <param name="userId">The id of the user</param> /// <param name="documentId">The id of the document</param> public void DeleteDocumentReference(int userId, int documentId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var userDocuments = from dr in context.Userdocuments where dr.documentId == documentId & dr.userId == userId select dr; if (userDocuments.Count<Userdocument>() > 0) { Userdocument userDocument = userDocuments.First<Userdocument>(); context.Userdocuments.DeleteObject(userDocument); context.SaveChanges(); } } }
/// <summary> /// Delete a folder from the database /// </summary> /// <param name="folderId">The id of the folder to delete</param> public void DeleteFolder(int folderId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var folders = from f in context.Folders where f.id == folderId select f; if (folders.Count<Folder>() > 0) { Folder folder = folders.First<Folder>(); context.Folders.DeleteObject(folder); context.SaveChanges(); } } }
/// <summary> /// Moves a document from one folder to another /// </summary> /// <param name="userId">The id of the user whos moving the document</param> /// <param name="documentId">The id of the document the user is moving</param> /// <param name="newFolderId">The id of the folder the user is moving the document to</param> public void MoveDocumentWeb(int userId, int documentId, int newFolderId) { using (PieFactoryEntities context = new PieFactoryEntities()) { var userdocument = from ud in context.Userdocuments where ud.userId == userId && ud.documentId == documentId select ud; userdocument.First<Userdocument>().folderId = newFolderId; context.SaveChanges(); } }
/// <summary> /// Adds a folder to the database. /// </summary> /// <param name="name">The name of the folder</param> /// <param name="parentFolderId">The id of the parent folder. Null if it's a root folder.</param> public int AddFolder(String name, int parentFolderId) { using (PieFactoryEntities context = new PieFactoryEntities()) { Folder folder = new Folder(); folder.name = name; folder.parentFolderId = parentFolderId; context.Folders.AddObject(folder); context.SaveChanges(); return folder.id; } }