/// <summary> /// Load the blog settings configuration from the database. /// </summary> public override void Load() { var builder = new DbContextOptionsBuilder <BlogEntityDbContext>(); _source.OptionsAction(builder); using (var context = new BlogEntityDbContext(builder.Options)) { if (!context.Database.CanConnect()) { return; } var settings = context.BlogSettings.SingleOrDefault(); if (settings == null) { return; } Data = new Dictionary <string, string>(); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.Title)}", settings.Title); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.Description)}", settings.Description); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.CoverCaption)}", settings.CoverCaption); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.CoverLink)}", settings.CoverLink); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.CoverUrl)}", settings.CoverUrl); } }
public BlogUnitOfWork(BlogEntityDbContext dbContext) { _dbContext = dbContext; BlogSettings = new BlogSettingsRepository(_dbContext); Authors = new AuthorRepository(_dbContext); Posts = new PostRepository(_dbContext); }
/// <summary> /// Load the blog settings configuration from the database. /// </summary> public override void Load() { var builder = new DbContextOptionsBuilder <BlogEntityDbContext>(); _source.OptionsAction(builder); using (var context = new BlogEntityDbContext(builder.Options)) { if (!context.Database.CanConnect()) { return; } BlogSettings settings = null; try { settings = context.BlogSettings.SingleOrDefault(); } catch (SqlException ex) { if (ex.Message.Contains("Invalid object name 'PineBlog_BlogSettings'", StringComparison.OrdinalIgnoreCase)) { // This can happen the first call because the database has not been initialized, // in this case we can ignore this exception. } else { // Re-throw all other SQL exceptions. throw; } } if (settings == null) { return; } Data = new Dictionary <string, string>(); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.Title)}", settings.Title); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.Description)}", settings.Description); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.CoverCaption)}", settings.CoverCaption); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.CoverLink)}", settings.CoverLink); Data.Add($"{nameof(PineBlogOptions)}:{nameof(PineBlogOptions.CoverUrl)}", settings.CoverUrl); } }