Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        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);
            }
        }