public async Task <GetPostForEditOutput> GetForEdit(NullableIdDto <Guid> input) { var output = new GetPostForEditOutput(); PostEditDto editDto; if (input.Id.HasValue) { var entity = await _postRepository.GetAsync(input.Id.Value); editDto = ObjectMapper.Map <PostEditDto>(entity); var tagsList = await GetTagsOfPost(entity.Id); if (tagsList.Count > 0) { editDto.TagIds = tagsList.Select(t => t.Id).ToList(); } } else { editDto = new PostEditDto(); } output.PostTypeTypeEnum = _enumExtensionsAppService.GetEntityDoubleStringKeyValueList <PostType>(); output.Post = editDto; return(output); }
public async Task EditAsync(PostEditDto post) { var p = await _mongoRepository.FindByIdAsync(post.Id); p.Text = post.Text; await _mongoRepository.ReplaceOneAsync(p); }
protected virtual async Task <Post> Update(PostEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await UpdateByMakrdown(input); return(entity); }
public async Task <ActionResult> Edit(Guid id, [FromBody] PostEditDto editedPost) { var command = new EditPostCommand(editedPost) { Id = id }; await Mediator.Send(command); return(NoContent()); }
public EditPostCommandTest() { dbSetPost = new Mock <DbSet <Post> >(); context = new Mock <IApplicationDbContext>(); stringLocalizer = new Mock <IStringLocalizer <PostsResource> >(); post = new Post { Id = id }; postDto = new Faker <PostEditDto>("en") .RuleFor(p => p.Body, f => f.Random.String(10)) .RuleFor(p => p.Id, f => f.PickRandomParam(id)) .Generate(); }
public async Task <IActionResult> Edit(int id, PostEditDto postEditDto) { if (!ModelState.IsValid) { return(View(postEditDto)); } if (await _postService.ExistsByIdAsync(id)) { await _postService.UpdateAsync(id, postEditDto); } return(RedirectToAction(nameof(Index))); }
public ServiceResult <string> EditPost(PostEditDto model) { var serviceResult = new ServiceResult <string>(true); var entity = _context.Posts.FirstOrDefault(c => c.Id == model.Id); if (entity == null) { serviceResult.AddError("پستی با شناسه ارسالی یافت نشد"); } #region validation if (string.IsNullOrEmpty(model.Title)) { serviceResult.AddError("عنوان پست نمی تواند فاقد مقدار باشد"); } if (!string.IsNullOrEmpty(model.Title) && model.Title.Length > 128) { serviceResult.AddError("تعداد کاراکترهای عنوان پست نمی تواند بیش از 128 کاراکتر باشد".ToPersianNumbers()); } #endregion if (serviceResult.IsSuccess) { entity.Title = model.Title; if (!string.IsNullOrEmpty(model.PrimaryPicture)) { serviceResult.Data = entity.PrimaryPicture; entity.PrimaryPicture = model.PrimaryPicture; } entity.Description = model.Description; _context.Entry(entity).State = EntityState.Modified; if (_context.SaveChanges() == 0) { serviceResult.AddError("در انجام عملیات خطایی رخ داد"); } } return(serviceResult); }
private async Task <Post> UpdateByMakrdown(PostEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await _postRepository.GetAsync(input.Id.Value); input.Url = await RenameUrlIfItAlreadyExistAsync(input.Url, entity); //将input属性的值赋值到entity中 ObjectMapper.Map(input, entity); await _postManager.UpdateAsync(entity); if (input.TagIds?.Count > 0) { await _tagManager.SaveTags(input.TagIds, entity); } return(entity); }
protected virtual async Task <PostEditDto> Create(PostEditDto input) { input.Url = await RenameUrlIfItAlreadyExistAsync(input.Url); var entity = ObjectMapper.Map <Post>(input); //调用领域服务 entity = await _postManager.CreateAsync(entity); //保存Tag标签内容 if (input.TagIds != null && input.TagIds.Count > 0) { await _tagManager.SaveTags(input.TagIds, entity); } var dto = ObjectMapper.Map <PostEditDto>(entity); return(dto); }
public static void GetData(this Post post, PostEditDto data) { post.LangId = data.LangId; post.Commenting = data.Commenting; post.AltTitle = data.AltTitle; post.Password = data.Password; post.Summary = data.Summary; post.OrderNumber = data.OrderNumber; post.Body = data.Body; post.CategoryId = data.CategoryId; post.CoverPhoto = data.CoverPhoto; post.LayoutId = data.LayoutId; post.ParentId = data.ParentId; post.Title = data.Title; post.Status = data.Status; post.Slug = !string.IsNullOrWhiteSpace(data.Slug) ? data.Slug.MakeSlug() : data.Title.MakeSlug(); post.PublishDate = data.PublishDate; }
public async Task <Post> MakeAsync(PostEditDto model) { model.CheckArgumentIsNull(); var post = await _postRepository.FindAsync(model.Id); post.GetData(model); post.ModifyDate = _dateService.UtcNow(); post.ModifierUserId = _userContext.UserId; if (post.Status == PostStatus.Published || post.Status == PostStatus.Planned) { post.PublishDate = model.PublishDate; } else { post.PublishDate = null; } return(await Task.FromResult(post)); }
public async Task<ResultResponse<PostGetDto>> UpdatePostAsync(int postId, PostEditDto dto, int editorId) { try { var editor = await _usersRepository.GetAsync(editorId); if (editor == null) { return ResultResponse<PostGetDto>.GetBadResponse(StatusCode.NotFound, "Пользователь не найден"); } var post = await _postsRepository.GetAsync(postId); if (post == null) { return ResultResponse<PostGetDto>.GetBadResponse(StatusCode.NotFound, "Не найден пост"); } post.text = dto.Text; post.title = dto.Title; post.edited = DateTime.Now; post.editor_id = editor.id; var updated = await _postsRepository.UpdateAsync(post); if (updated == null) { return ResultResponse<PostGetDto>.GetBadResponse(StatusCode.InternalServerError, "Не удалось отредактировать пост"); } var editedView = await _postsViewRepository.GetAsync(updated.id); var editedViewDto = _mapper.Map<PostGetDto>(editedView); return ResultResponse<PostGetDto>.GetSuccessResponse(editedViewDto); } catch (Exception ex) { _progressLogger.Error(ex, new { dto, editorId }, GetType().Name, nameof(UpdatePostAsync)); return ResultResponse<PostGetDto>.GetInternalServerErrorResponse(); } }
public async Task <ResultResponse <PostGetDto> > EditPost([FromRoute] int id, [FromBody] PostEditDto dto) { if (await IsInRole(Roles.Admin, Roles.Moderator)) { if (dto == null || !ModelState.IsValid) { return(ResultResponse <PostGetDto> .GetBadResponse(BussinesLogic.Models.StatusCode.BadRequest)); } return(await _postsService.UpdatePostAsync(id, dto, UserId.Value)); } return(ResultResponse <PostGetDto> .GetBadResponse(BussinesLogic.Models.StatusCode.Forbidden)); }
public EditPostCommand(PostEditDto request) { Id = request.Id; Body = request.Body; }
public async Task <IActionResult> Edit(PostEditDto post) { await _postService.EditAsync(post); return(NoContent()); }
public async Task UpdateAsync(PostEditDto model) { var entity = await _factory.MakeAsync(model); await _repository.UpdateAndSaveAsync(entity); }