internal bool TryAddPage(JournalEntity journalEntity, JournalPageEntity page, out Exception exception) { bool result = false; exception = null; try { // connecting to, or creating a brand new given journal's DB using (var db = GetInternalStorageContext(journalEntity)) { // inserting a page db.GetCollection <JournalPageEntity>("JournalPages").Insert(page); // adding references page.Journal = journalEntity; page.StorageContext = this; result = true; } } catch (Exception ex) { // setting our exception exception = ex; result = false; } return(result); }
private JournalEntity CreateJournalInternal(Guid id, string displayName, string hexColor) { #region Creating Journal var journal = new JournalEntity { Id = id, StorageContext = this, IsSoftDeleted = false, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow, FrontCoverSolidBrushHex = hexColor, FrontCoverSolidColorHex = hexColor, DisplayName = displayName, Width = 205, X = 350, Y = 490, ZoomLevel = 1 }; this.Journals.AddJournal(journal); #endregion // loading pages var pages = journal.Pages; #region Creating Front Cover & First Two Pages JournalPageEntity cover = new JournalPageEntity { Id = 1, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow, IsCoverPage = true }; journal.Pages.AddPage(cover); JournalPageEntity page1 = new JournalPageEntity { Id = 2, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow, IsCoverPage = false }; journal.Pages.AddPage(page1); JournalPageEntity page2 = new JournalPageEntity { Id = 3, DateCreated = DateTime.UtcNow, DateUpdated = DateTime.UtcNow, IsCoverPage = false }; journal.Pages.AddPage(page2); #endregion return(journal); }
internal bool TrySavePage(JournalEntity journalEntity, JournalPageEntity page, out Exception exception) { bool result = false; exception = null; if (!journalEntity.Pages.Exists(page)) { return(TryAddPage(journalEntity, page, out exception)); } try { // connecting to, or creating a brand new given journal's DB using (var db = GetInternalStorageContext(journalEntity)) { var id = new BsonValue(page.Id); // looking for page var pageInCollection = db.GetCollection <JournalPageEntity>("JournalPages").FindById(id); if (pageInCollection == null) { exception = new KeyNotFoundException("Page exists in memory, but doesn't exist in the storage in Journal: " + journalEntity.DisplayName); result = false; } // saving a page result = db.GetCollection <JournalPageEntity>("JournalPages").Update(page); // we are good to go } } catch (Exception ex) { // setting our exception exception = ex; result = false; } return(result); }
internal bool TryRemovePage(JournalEntity journalEntity, JournalPageEntity page, out Exception exception) { bool result = false; exception = null; try { // connecting to, or creating a brand new given journal's DB using (var db = GetInternalStorageContext(journalEntity)) { var id = new BsonValue(page.Id); // looking for page var pageInCollection = db.GetCollection <JournalPageEntity>("JournalPages").FindById(id); if (pageInCollection == null) { exception = new KeyNotFoundException("Page doesn't exist with a given id in Journal: " + journalEntity.DisplayName); result = false; } // removing a page with a given Id db.GetCollection <JournalPageEntity>("JournalPages").Delete(id); // we are good to go result = true; } } catch (Exception ex) { // setting our exception exception = ex; result = false; } return(result); }
public void SavePage(JournalPageEntity page) { Exception ex; TrySavePage(page.Journal, page, out ex); }