public async Task Create( string projectId, string userName, string password, IPost post, bool publish) { var permission = await security.ValidatePermissions( projectId, userName, password, CancellationToken ).ConfigureAwait(false); if (!permission.CanEditPosts) { return; } var settings = await projectService.GetProjectSettings(projectId).ConfigureAwait(false); await InitializeNewPosts(projectId, post, publish); var urlHelper = urlHelperFactory.GetUrlHelper(actionContextAccesor.ActionContext); var imageAbsoluteBaseUrl = urlHelper.Content("~" + settings.LocalMediaVirtualPath); if (context != null) { imageAbsoluteBaseUrl = context.Request.AppBaseUrl() + settings.LocalMediaVirtualPath; } // open live writer passes in posts with absolute urls // we want to change them to relative to keep the files portable // to a different root url post.Content = await htmlProcessor.ConvertMediaUrlsToRelative( settings.LocalMediaVirtualPath, imageAbsoluteBaseUrl, //this shold be resolved from virtual using urlhelper post.Content); // olw also adds hard coded style to images post.Content = htmlProcessor.RemoveImageStyleAttribute(post.Content); var nonPublishedDate = new DateTime(1, 1, 1); if (post.PubDate == nonPublishedDate) { post.PubDate = DateTime.UtcNow; } await postCommands.Create(settings.Id, post).ConfigureAwait(false); await eventHandlers.HandleCreated(settings.Id, post).ConfigureAwait(false); }
public async Task Create(IPost post) { await EnsureBlogSettings().ConfigureAwait(false); //if(convertToRelativeUrls) //{ // await _blogUrlResolver.ConvertToRelativeUrls(post, _settings).ConfigureAwait(false); //} if (string.IsNullOrEmpty(post.Slug)) { var slug = CreateSlug(post.Title); var available = await SlugIsAvailable(slug); while (!available) { slug = slug + "-"; available = await SlugIsAvailable(slug); } if (available) { post.Slug = slug; } } await _postCommands.Create(_settings.Id, post).ConfigureAwait(false); await _eventHandlers.HandleCreated(_settings.Id, post).ConfigureAwait(false); }