protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); CategoryConfiguration.ConfigureCategory(modelBuilder); BlogConfiguration.ConfigureBlog(modelBuilder); LikeConfiguration.ConfigureLike(modelBuilder); CommentConfiguration.ConfigureComment(modelBuilder); }
public void UpdateConfiguration(BlogConfiguration configuration) { BlogConfiguration oldConfiguration; inMemoryDb.TryTake(out oldConfiguration); inMemoryDb.Add(configuration); }
public IActionResult Post([FromBody] BlogConfiguration configuration) { if (configuration == null) { return(BadRequest()); } this.blogConfigurationRepository.UpdateConfiguration(configuration); return(new EmptyResult()); }
private string FormatBlogUrl(string baseUrl, string itemUrl, int pageId, int moduleId, int itemId) { bool useFriendlyUrls = BlogConfiguration.UseFriendlyUrls(moduleId); if (useFriendlyUrls && (itemUrl.Length > 0)) { return(baseUrl + itemUrl.Replace("~", string.Empty)); } return(baseUrl + "/Blog/ViewPost.aspx?pageid=" + pageId.ToInvariantString() + "&mid=" + moduleId.ToInvariantString() + "&ItemID=" + itemId.ToInvariantString() ); }
static BlogConfigurationRepository() { var conf = new BlogConfiguration() { Author = "Ugo Lattanzi", Description = "imperugo's blog", Title = "This is the title of my blog engine", Tags = new[] { ".NET", ".NET Core", "NodeJs" }, SiteUri = new Uri("http://www.tostring.it"), TwitterAccount = "@imperugo" }; inMemoryDb.Add(conf); }
/// <summary> /// Initializes a new instance of the <see cref="RedisCacheManager"/> class. /// </summary> /// <param name="perRequestCacheManager">perRequestCacheManager.</param> /// <param name="connectionWrapper">connectionWrapper.</param> /// <param name="config">config.</param> public RedisCacheManager( ICacheManager perRequestCacheManager, IRedisConnectionWrapper connectionWrapper, BlogConfiguration config) { if (string.IsNullOrEmpty(config.RedisCachingConnectionString)) { throw new Exception("Redis connection string is empty"); } this.perRequestCacheManager = perRequestCacheManager; // ConnectionMultiplexer.Connect should only be called once and shared between callers this.connectionWrapper = connectionWrapper; this.db = this.connectionWrapper.GetDatabase(); }
private static ISessionFactory CreateSessionFactory() { var configuration = new BlogConfiguration(); var testing = Fluently .Configure().Database(SQLiteConfiguration.Standard.UsingFile(DbFile)) .Mappings(m => m.AutoMappings.Add( AutoMap.AssemblyOf<Post>(configuration) .Conventions.Add(Table.Is(x => x.EntityType.Name + "Table")) .Conventions.Add(DefaultCascade.All()) .Conventions.Add(PrimaryKey.Name.Is(x => "Id")) .Conventions.Add(ConventionBuilder.Id.Always(id => id.GeneratedBy.Increment())) )) .ExposeConfiguration(BuildSchema) .BuildSessionFactory(); return testing; }
public override void RebuildIndex(PageSettings pageSettings, string indexPath) { if (WebConfigSettings.DisableSearchIndex) { return; } if (pageSettings == null) { log.Error("pageSettings object passed to BlogIndexBuilderProvider.RebuildIndex was null"); return; } //don't index pending/unpublished pages if (pageSettings.IsPending) { return; } log.Info(BlogResources.BlogFeatureName + " indexing page - " + pageSettings.PageName); //try //{ Guid blogFeatureGuid = new Guid("026cbead-2b80-4491-906d-b83e37179ccf"); ModuleDefinition blogFeature = new ModuleDefinition(blogFeatureGuid); List <PageModule> pageModules = PageModule.GetPageModulesByPage(pageSettings.PageId); DataTable dataTable = Blog.GetBlogsByPage( pageSettings.SiteId, pageSettings.PageId); foreach (DataRow row in dataTable.Rows) { bool includeInSearch = Convert.ToBoolean(row["IncludeInSearch"], CultureInfo.InvariantCulture); if (!includeInSearch) { continue; } DateTime postEndDate = DateTime.MaxValue; if (row["EndDate"] != DBNull.Value) { postEndDate = Convert.ToDateTime(row["EndDate"]); if (postEndDate < DateTime.UtcNow) { continue; } } bool excludeFromRecentContent = Convert.ToBoolean(row["ExcludeFromRecentContent"], CultureInfo.InvariantCulture); mojoPortal.SearchIndex.IndexItem indexItem = new mojoPortal.SearchIndex.IndexItem(); indexItem.SiteId = pageSettings.SiteId; indexItem.PageId = pageSettings.PageId; indexItem.ExcludeFromRecentContent = excludeFromRecentContent; indexItem.PageName = pageSettings.PageName; indexItem.ViewRoles = pageSettings.AuthorizedRoles; indexItem.ModuleViewRoles = row["ViewRoles"].ToString(); indexItem.FeatureId = blogFeatureGuid.ToString(); indexItem.FeatureName = blogFeature.FeatureName; indexItem.FeatureResourceFile = blogFeature.ResourceFile; indexItem.ItemId = Convert.ToInt32(row["ItemID"], CultureInfo.InvariantCulture); indexItem.ModuleId = Convert.ToInt32(row["ModuleID"], CultureInfo.InvariantCulture); indexItem.ModuleTitle = row["ModuleTitle"].ToString(); indexItem.Title = row["Heading"].ToString(); string authorName = row["Name"].ToString(); string authorFirstName = row["FirstName"].ToString(); string authorLastName = row["LastName"].ToString(); if ((authorFirstName.Length > 0) && (authorLastName.Length > 0)) { indexItem.Author = string.Format(CultureInfo.InvariantCulture, BlogResources.FirstLastFormat, authorFirstName, authorLastName); } else { indexItem.Author = authorName; } if ((!WebConfigSettings.UseUrlReWriting) || (!BlogConfiguration.UseFriendlyUrls(indexItem.ModuleId))) { indexItem.ViewPage = "Blog/ViewPost.aspx?pageid=" + indexItem.PageId.ToInvariantString() + "&mid=" + indexItem.ModuleId.ToInvariantString() + "&ItemID=" + indexItem.ItemId.ToInvariantString() ; } else { indexItem.ViewPage = row["ItemUrl"].ToString().Replace("~/", string.Empty); } indexItem.PageMetaDescription = row["MetaDescription"].ToString(); indexItem.PageMetaKeywords = row["MetaKeywords"].ToString(); DateTime blogStart = Convert.ToDateTime(row["StartDate"]); indexItem.CreatedUtc = blogStart; indexItem.LastModUtc = Convert.ToDateTime(row["LastModUtc"]); //if (indexItem.ViewPage.Length > 0) //{ indexItem.UseQueryStringParams = false; //} //else //{ // indexItem.ViewPage = "Blog/ViewPost.aspx"; //} indexItem.Content = row["Description"].ToString(); indexItem.ContentAbstract = row["Abstract"].ToString(); int commentCount = Convert.ToInt32(row["CommentCount"]); if (commentCount > 0) { // index comments StringBuilder stringBuilder = new StringBuilder(); DataTable comments = Blog.GetBlogCommentsTable(indexItem.ModuleId, indexItem.ItemId); foreach (DataRow commentRow in comments.Rows) { stringBuilder.Append(" " + commentRow["Comment"].ToString()); stringBuilder.Append(" " + commentRow["Name"].ToString()); if (debugLog) { log.Debug("BlogIndexBuilderProvider.RebuildIndex add comment "); } } indexItem.OtherContent = stringBuilder.ToString(); } // lookup publish dates foreach (PageModule pageModule in pageModules) { if (indexItem.ModuleId == pageModule.ModuleId) { indexItem.PublishBeginDate = pageModule.PublishBeginDate; indexItem.PublishEndDate = pageModule.PublishEndDate; } } if (blogStart > indexItem.PublishBeginDate) { indexItem.PublishBeginDate = blogStart; } if (postEndDate < indexItem.PublishEndDate) { indexItem.PublishEndDate = postEndDate; } mojoPortal.SearchIndex.IndexHelper.RebuildIndex(indexItem, indexPath); if (debugLog) { log.Debug("Indexed " + indexItem.Title); } } //} //catch (Exception ex) //{ // log.Error(ex); //} }
private static void IndexItem(Blog blog) { if (WebConfigSettings.DisableSearchIndex) { return; } if (blog == null) { if (log.IsErrorEnabled) { log.Error("blog object passed to BlogIndexBuilderProvider.IndexItem was null"); } return; } if (!blog.IncludeInSearch) { return; } Module module = new Module(blog.ModuleId); Guid blogFeatureGuid = new Guid("026cbead-2b80-4491-906d-b83e37179ccf"); ModuleDefinition blogFeature = new ModuleDefinition(blogFeatureGuid); // get comments so they can be indexed too StringBuilder stringBuilder = new StringBuilder(); using (IDataReader comments = Blog.GetBlogComments(blog.ModuleId, blog.ItemId)) { while (comments.Read()) { stringBuilder.Append(" " + comments["Comment"].ToString()); stringBuilder.Append(" " + comments["Name"].ToString()); if (debugLog) { log.Debug("BlogIndexBuilderProvider.IndexItem add comment "); } } } // get list of pages where this module is published List <PageModule> pageModules = PageModule.GetPageModulesByModule(blog.ModuleId); foreach (PageModule pageModule in pageModules) { PageSettings pageSettings = new PageSettings( blog.SiteId, pageModule.PageId); //don't index pending/unpublished pages if (pageSettings.IsPending) { continue; } mojoPortal.SearchIndex.IndexItem indexItem = new mojoPortal.SearchIndex.IndexItem(); if (blog.SearchIndexPath.Length > 0) { indexItem.IndexPath = blog.SearchIndexPath; } indexItem.SiteId = blog.SiteId; indexItem.ExcludeFromRecentContent = blog.ExcludeFromRecentContent; indexItem.PageId = pageSettings.PageId; indexItem.PageName = pageSettings.PageName; indexItem.ViewRoles = pageSettings.AuthorizedRoles; indexItem.ModuleViewRoles = module.ViewRoles; indexItem.PageMetaDescription = blog.MetaDescription; indexItem.PageMetaKeywords = blog.MetaKeywords; indexItem.ItemId = blog.ItemId; indexItem.ModuleId = blog.ModuleId; indexItem.ModuleTitle = module.ModuleTitle; indexItem.Title = blog.Title; indexItem.Content = blog.Description + " " + blog.MetaDescription + " " + blog.MetaKeywords; indexItem.ContentAbstract = blog.Excerpt; indexItem.FeatureId = blogFeatureGuid.ToString(); indexItem.FeatureName = blogFeature.FeatureName; indexItem.FeatureResourceFile = blogFeature.ResourceFile; indexItem.OtherContent = stringBuilder.ToString(); indexItem.PublishBeginDate = pageModule.PublishBeginDate; if (blog.StartDate > pageModule.PublishBeginDate) { indexItem.PublishBeginDate = blog.StartDate; } indexItem.PublishEndDate = pageModule.PublishEndDate; if (blog.EndDate < pageModule.PublishEndDate) { indexItem.PublishEndDate = blog.EndDate; } if ((blog.UserFirstName.Length > 0) && (blog.UserLastName.Length > 0)) { indexItem.Author = string.Format(CultureInfo.InvariantCulture, BlogResources.FirstLastFormat, blog.UserFirstName, blog.UserLastName); } else { indexItem.Author = blog.UserName; } indexItem.CreatedUtc = blog.StartDate; indexItem.LastModUtc = blog.LastModUtc; if ((!WebConfigSettings.UseUrlReWriting) || (!BlogConfiguration.UseFriendlyUrls(indexItem.ModuleId))) { indexItem.ViewPage = "Blog/ViewPost.aspx?pageid=" + indexItem.PageId.ToInvariantString() + "&mid=" + indexItem.ModuleId.ToInvariantString() + "&ItemID=" + indexItem.ItemId.ToInvariantString() ; } else { indexItem.ViewPage = blog.ItemUrl.Replace("~/", string.Empty); } indexItem.UseQueryStringParams = false; mojoPortal.SearchIndex.IndexHelper.RebuildIndex(indexItem); } if (debugLog) { log.Debug("Indexed " + blog.Title); } }
public BlogContext(IServiceProvider serviceProvider, BlogConfiguration configuration) : base(serviceProvider, configuration) { Assert.NotNull(serviceProvider); Assert.NotNull(configuration); }
public void CanSaveAllEntities() { using (var session = factory.OpenSession()) { using (var tran = session.BeginTransaction()) { var blog = new Blog(); var user = new User(); var post = new Post(); var tag = new Tag(); var postComment = new PostComment(); var configuration = new BlogConfiguration(); configuration.PageSize = 3; configuration["osman"] = "mahmut"; user.UserName = "******"; user.Password = "******"; user.Email = "*****@*****.**"; user.Blogs.Add(blog); blog.Configuration = configuration; blog.Writers.Add(user); blog.Title = "my blog"; blog.Name = "My Blog"; blog.Founder = user; blog.Posts.Add(post); blog.Host = "localhost"; post.Blog = blog; post.Content = "hello"; post.Publisher = user; post.DateCreated = DateTime.Now; post.DatePublished = DateTime.Now.AddMinutes(3); post.Title = "post title"; post.FriendlyTitle = post.Title.Replace(' ', '_').ToLower(); post.AddComment(postComment, null); postComment.Post = post; postComment.Date = DateTime.Now.AddMinutes(6); postComment.Email = "*****@*****.**"; postComment.Name = "Some One"; postComment.Comment = "Some One wrote here!!"; tag.Name = "Tag"; tag.FriendlyName = "Tagged"; tag.Posts.Add(post); post.Tags.Add(tag); var blogVal = new BlogValidator(); blogVal.ValidateAndThrowException(blog); var postVal = new PostValidator(); postVal.ValidateAndThrowException(post); var postCommVal = new PostCommentValidator(); postCommVal.ValidateAndThrowException(postComment); var userVal = new UserValidator(); userVal.ValidateAndThrowException(user); var tagVal = new TagValidator(); tagVal.ValidateAndThrowException(tag); session.Save(user); session.Save(blog); session.Save(post); session.Save(postComment); session.Save(tag); tran.Commit(); } } using (var session = factory.OpenSession()) { var item = session.CreateCriteria(typeof (Blog)).UniqueResult<Blog>(); var pageSize = item.Configuration.PageSize; Assert.That(pageSize, Is.EqualTo(3)); } }
public void Configure() { BlogDB.Reset(); using (OpenRastaConfiguration.Manual) { ResourceSpace.Has.ResourcesOfType <SyndicationFeed>() .AtUri(Constants.AtomFeedPath) .HandledBy <FeedHandler>() .TranscodedBy <AtomFeedCodec>(); ResourceSpace.Has.ResourcesOfType <SyndicationItem>() .AtUri(Constants.AtomItemPath) .HandledBy <FeedHandler>() .TranscodedBy <AtomItemCodec>(); ResourceSpace.Has.ResourcesOfType <string>() .AtUri("/texts/plain") .HandledBy <TextHandler>() .TranscodedBy <TextCodec>() .ForMediaType("text/plain"); ResourceSpace.Has.ResourcesOfType <Cat>() .AtUri(Constants.CatPath) .And.AtUri(Constants.CatsPath) .HandledBy <CatHandler>() .TranscodedBy <CatAsTextCodec>() .And.TranscodedBy <CatAsHtmlCodec>() .And.TranscodedBy <CatAsXmlCodec>() .And.TranscodedBy <CatAsJsonCodec>() .And.TranscodedBy <CatsAsJsonCodec>(); ResourceSpace.Has.ResourcesOfType <Dog2>() .AtUri(Constants.DogPath) .HandledBy <DogHandler>() .TranscodedBy <Dog2AsXmlCodec>(); ResourceSpace.Has.ResourcesOfType <Person>() .AtUri(Constants.PersonPath) .HandledBy <PersonHandler>() .RenderedByAspx("~/Views/Person.aspx"); ResourceSpace.Has.ResourcesOfType <EncodingData>() .AtUri(Constants.EncodingPath) .HandledBy <EncodingHandler>() .TranscodedBy <EncodingCodec>(); ResourceSpace.Has.ResourcesOfType <MyFileResource>() .AtUri(Constants.FilePath) .HandledBy <FileHandler>() .TranscodedBy <ApplicationOctetStreamCodec>(); ResourceSpace.Has.ResourcesOfType <MultipartData>() .AtUri(Constants.MultipartFormDataPath).Named("SimpleData") .And.AtUri(Constants.MultipartFormDataFilePath).Named("FileData") .HandledBy <MultipartFormDataHandler>() .TranscodedBy <EncodingCodec>(); ResourceSpace.Has.ResourcesOfType <FormUrlEncodedData>() .AtUri(Constants.FormUrlEncodedPath) .HandledBy <FormUrlEncodedHandler>() .TranscodedBy <FormUrlencodedCodec>(); ResourceSpace.Has.ResourcesOfType <HeaderList>() .AtUri(Constants.HeaderEchoPath) .HandledBy <HeaderEchoHandler>() .TranscodedBy <HeaderEchoCodec>(); ResourceSpace.Has.ResourcesOfType <XmlEcho>() .AtUri(Constants.XmlEchoPath) .HandledBy <XmlEchoHandler>() .TranscodedBy <XmlEchoCodec>(); ResourceSpace.Has.ResourcesOfType <AnyEcho>() .AtUri(Constants.AnyEchoPath) .HandledBy <AnyEchoHandler>() .TranscodedBy <AnyEchoCodec>(); ResourceSpace.Has.ResourcesOfType <ComplexClassForOpenRastaSerializationTests>() .AtUri(Constants.ComplexClassPath) .HandledBy <ComplexClassHandler>() .TranscodedBy <TextCodec>() .ForMediaType("application/x-www-form-urlencoded"); ResourceSpace.Has.ResourcesOfType <TestForm>() .AtUri(Constants.FormPath) .And.AtUri(Constants.FormSimplePath) .HandledBy <FormHandler>() .RenderedByAspx("~/Views/Form.aspx") .And.TranscodedBy <FormUrlencodedCodec>(); ResourceSpace.Has.ResourcesOfType <FileDownload>() .AtUri(Constants.FileDownloadPath) .HandledBy <FileDownloadHandler>() .TranscodedBy <FileDownloadCodec>(); ResourceSpace.Has.ResourcesOfType <LinkHeader>() .AtUri(Constants.LinkHeaderPath) .HandledBy <LinkHeaderHandler>() .TranscodedBy <LinkHeaderCodec>(); ResourceSpace.Has.ResourcesOfType <JsonPatchDocument>() .AtUri(Constants.PatchPath) .HandledBy <PatchHandler>() .TranscodedBy <Ramone.Tests.Server.Codecs.JsonPatchDocumentCodec>(); ResourceSpace.Has.ResourcesOfType <SlowResource>() .AtUri(Constants.SlowPath) .HandledBy <SlowHandler>() .TranscodedBy <JsonSerializerCodec <SlowResource> >(); CMSConfiguration.Configure(); ResourceSpace.Has.ResourcesOfType <RedirectArgs>() .AtUri(Constants.RedirectPath) .HandledBy <RedirectHandler>() .TranscodedBy <FormUrlencodedCodec>(); ResourceSpace.Has.ResourcesOfType <HtmlPageResource>() .AtUri(Constants.HtmlPath) .HandledBy <HtmlHandler>() .RenderedByAspx("~/Views/Html.aspx"); ResourceSpace.Has.ResourcesOfType <ApplicationError>() .AtUri(Constants.ApplicationErrorPath) .HandledBy <ApplicationErrorHandler>() .TranscodedBy <JsonSerializerCodec <ApplicationError> >(); BlogConfiguration.Configure(); OAuth2Configuration.Configure(); } }
/// <summary> /// Initializes a new instance of the <see cref="RedisConnectionWrapper"/> class. /// </summary> /// <param name="config">config.</param> public RedisConnectionWrapper(BlogConfiguration config) { this.config = config; this.connectionString = new Lazy <string>(this.GetConnectionString); this.redisLockFactory = this.CreateRedisLockFactory(); }