public Task <bool> EditPageAsync(string blogid, string pageid, string username, string password, Page page, bool publish) { EnsureUser(username, password); return(TryExecuteAsync(async() => { if (!Guid.TryParse(pageid, out var id)) { throw new ArgumentException("Invalid ID", nameof(pageid)); } var pageRequest = new EditPageRequest { Title = page.title, HideSidebar = true, MetaDescription = string.Empty, RawHtmlContent = page.description, CssContent = string.Empty, IsPublished = publish, Slug = ToSlug(page.title) }; await _mediator.Send(new UpdatePageCommand(id, pageRequest)); return true; })); }
private void UpdatePageEntity(EditPageRequest editPageRequest) { DiaryPage page = _pageRepository.GetPageById(editPageRequest.DiaryId, editPageRequest.PageId); page.Title = editPageRequest.Title; _diaryModifier.UpdatePage(page); }
public async Task <IActionResult> OnGetAsync(Guid?id) { if (id is null) { return(Page()); } var page = await _mediator.Send(new GetPageByIdQuery(id.Value)); if (page is null) { return(NotFound()); } PageId = page.Id; EditPageRequest = new() { Title = page.Title, Slug = page.Slug, MetaDescription = page.MetaDescription, CssContent = page.CssContent, RawHtmlContent = page.RawHtmlContent, HideSidebar = page.HideSidebar, IsPublished = page.IsPublished }; return(Page()); } }
public void EditDiaryPage(EditPageRequest editPageRequest) { UpdatePageEntity(editPageRequest); StorePageReviews(editPageRequest.PageId, editPageRequest.NewReviews); UpdatePageReviews(editPageRequest.PageId, editPageRequest.UpdatedReviews); DeactivatePageReviews(editPageRequest.PageId, editPageRequest.DeletedReviews); }
public IHttpActionResult EditPage(EditPageRequest editPageRequest) { UserPermissionManager userPermissionManager = new UserPermissionManager(); if (!userPermissionManager.IsAllowedToEditPage(editPageRequest.DiaryId, HttpContext.Current.GetAuthenticatedUserId())) { return(Unauthorized()); } PageEditor pageEditor = new PageEditor(); pageEditor.EditDiaryPage(editPageRequest); return(Ok()); }
public async Task <IActionResult> CreateOrEdit(PageEditViewModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!string.IsNullOrWhiteSpace(model.CssContent)) { var uglifyTest = Uglify.Css(model.CssContent); if (uglifyTest.HasErrors) { foreach (var err in uglifyTest.Errors) { ModelState.AddModelError(model.CssContent, err.ToString()); } return(BadRequest(ModelState)); } } var req = new EditPageRequest(model.Id) { HtmlContent = model.RawHtmlContent, CssContent = model.CssContent, HideSidebar = model.HideSidebar, Slug = model.Slug, MetaDescription = model.MetaDescription, Title = model.Title, IsPublished = model.IsPublished }; var uid = model.Id == Guid.Empty ? await _pageService.CreateAsync(req) : await _pageService.UpdateAsync(req); _cache.Remove(CacheDivision.Page, req.Slug.ToLower()); return(Json(new { PageId = uid })); } catch (Exception e) { _logger.LogError(e, "Error Create or Edit CustomPage."); Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(Json(e.Message)); } }
public void SetUp() { _mockRepository = new(MockBehavior.Default); _mockBlogCache = _mockRepository.Create <IBlogCache>(); _mockMediator = _mockRepository.Create <IMediator>(); _editPageRequest = new() { CssContent = ".fubao { color: #996 }", HideSidebar = true, IsPublished = true, MetaDescription = "This is Jack Ma's fubao", RawHtmlContent = "<p>Work 996 and Get into ICU</p>", Slug = FakeData.Slug2, Title = FakeData.Title3 }; }
private async Task <IActionResult> CreateOrEdit(EditPageRequest model, Func <EditPageRequest, Task <Guid> > pageServiceAction) { if (!string.IsNullOrWhiteSpace(model.CssContent)) { var uglifyTest = Uglify.Css(model.CssContent); if (uglifyTest.HasErrors) { foreach (var err in uglifyTest.Errors) { ModelState.AddModelError(model.CssContent, err.ToString()); } return(BadRequest(ModelState.CombineErrorMessages())); } } var uid = await pageServiceAction(model); _cache.Remove(CacheDivision.Page, model.Slug.ToLower()); return(Ok(new { PageId = uid })); }
public Task <string> AddPageAsync(string blogid, string username, string password, Page page, bool publish) { EnsureUser(username, password); return(TryExecuteAsync(async() => { var pageRequest = new EditPageRequest { Title = page.title, HideSidebar = true, MetaDescription = string.Empty, RawHtmlContent = page.description, CssContent = string.Empty, IsPublished = publish, Slug = ToSlug(page.title) }; var uid = await _mediator.Send(new CreatePageCommand(pageRequest)); return uid.ToString(); })); }
public async Task <ActionResult <EditPageResponse> > PostEditPage([FromBody] EditPageRequest editPageRequest) { var existingPage = await _Context.Pages.Where(x => x.ID == editPageRequest.Page.Id).Include(x => x.Groups).ThenInclude(g => g.Panels).ThenInclude(p => p.ConfigParameters).FirstOrDefaultAsync(); if (existingPage == null) { return(Conflict(new EditPageResponse { Status = ResponseStatus.Error, Error = "Page to edit not found" })); } existingPage.Label = editPageRequest.Page.Label; existingPage.Icon = editPageRequest.Page.Icon; await _Context.SaveChangesAsync(); _logger.LogDebug("Edit Page {ID} => {Label}", existingPage.ID, existingPage.Label); await _ClientHub.Clients.All.SendAsync(ClientMethods.AddOrUpdatePage, existingPage); return(Ok(new AddPanelResponse())); }
public async Task <Guid> UpdateAsync(EditPageRequest request) { var page = await _pageRepo.GetAsync(request.Id); if (page is null) { throw new InvalidOperationException($"CustomPageEntity with Id '{request.Id}' not found."); } page.Title = request.Title.Trim(); page.Slug = request.Slug.ToLower().Trim(); page.MetaDescription = request.MetaDescription; page.HtmlContent = request.HtmlContent; page.CssContent = request.CssContent; page.HideSidebar = request.HideSidebar; page.UpdatedOnUtc = DateTime.UtcNow; page.IsPublished = request.IsPublished; await _pageRepo.UpdateAsync(page); await _audit.AddAuditEntry(EventType.Content, AuditEventId.PageUpdated, $"Page '{request.Id}' updated."); return(page.Id); }
public UpdatePageCommand(Guid id, EditPageRequest payload) { Id = id; Payload = payload; }
public Task <IActionResult> Edit([NotEmpty] Guid id, EditPageRequest model) { return(CreateOrEdit(model, async request => await _mediator.Send(new UpdatePageCommand(id, request)))); }
public Task <IActionResult> Create(EditPageRequest model) { return(CreateOrEdit(model, async request => await _mediator.Send(new CreatePageCommand(request)))); }
public EditPageModel(IMediator mediator) { _mediator = mediator; EditPageRequest = new(); }
public CreatePageCommand(EditPageRequest payload) { Payload = payload; }