/// <summary> /// Creates a Kirja Page /// </summary> /// <param name="page">page to create</param> /// <returns>Created page, with filled id</returns> public async Task <KirjaPage> CreatePage(KirjaPage page) { page.Id = Guid.NewGuid().ToString(); await _PageCollection.InsertOneAsync(page); return(page); }
/// <summary> /// Deletes a page /// </summary> /// <param name="page">Page to delete</param> /// <returns>Task</returns> public async Task DeletePage(KirjaPage page) { KirjaPage existingPage = await GetPageById(page.Id); if (existingPage == null) { throw new NullReferenceException(); } IMongoCollection <KirjaPage> recyclingBin = _Database.GetCollection <KirjaPage>(KirjaPageRecyclingBinCollectionName); await recyclingBin.InsertOneAsync(existingPage); DeleteResult result = await _PageCollection.DeleteOneAsync(p => p.Id == page.Id); }
/// <summary> /// Returns the default page for a project /// </summary> /// <param name="projectId">Project Id</param> /// <returns>Page</returns> public async Task <KirjaPage> GetDefaultPageForProject(string projectId) { KirjaPage page = await _PageCollection.Find(p => p.ProjectId == projectId && p.IsDefault).FirstOrDefaultAsync(); return(page); }
/// <summary> /// Returns an a page by its id /// </summary> /// <param name="id">Id</param> /// <returns>Page</returns> public async Task <KirjaPage> GetPageById(string id) { KirjaPage page = await _PageCollection.Find(p => p.Id == id).FirstOrDefaultAsync(); return(page); }
/// <summary> /// Updates a page /// </summary> /// <param name="page">Page to update</param> /// <returns>Task</returns> public async Task UpdatePage(KirjaPage page) { ReplaceOneResult result = await _PageCollection.ReplaceOneAsync(p => p.Id == page.Id, page); }