private void ValidateShortContent(SavePostDTO savePost) { if (string.IsNullOrWhiteSpace(savePost.ShortContent)) { savePost.ShortContent = savePost.Content.Substring(0, Math.Min(savePost.Content.Length, 500)); } }
public Post AddPost(SavePostDTO savePost, IEnumerable <Tag> tags) { savePost.NotNull(); ValidateShortContent(savePost); var post = mapper.Map <SavePostDTO, Post>(savePost); post.IsActive = true; post.DateCreated = DateTime.Now; post.DateLastUpdated = DateTime.Now; SetPostTags(post.Tags, tags); postRepository.Add(post); return(post); }
public async Task <Post> UpdatePost(int id, SavePostDTO savePost, IEnumerable <Tag> tags) { savePost.NotNull(); var post = await postRepository.GetAsync(id, p => p); if (post == null) { return(null); } ValidateShortContent(savePost); mapper.Map <SavePostDTO, Post>(savePost, post); post.DateLastUpdated = DateTime.Now; SetPostTags(post.Tags, tags); postRepository.Update(post); return(post); }
private async Task <IActionResult> UpdateOrCreate(int?id, SavePostDTO savePost) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var tags = await tagService.FindByNamesAndAddIfNotExists(savePost.Tags); var post = await postService.UpdateOrAddPostIfIdIsNull(id, savePost, tags); if (post == null) { return(NotFound()); } if (!await unitOfWork.TrySaveChangesAsync()) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok(post.Id)); }
public async Task <IActionResult> CreatePost([FromBody] SavePostDTO savePost) { return(await UpdateOrCreate(null, savePost)); }
public async Task <IActionResult> UpdatePost([FromRoute] int id, [FromBody] SavePostDTO savePost) { return(await UpdateOrCreate(id, savePost)); }
public async Task <Post> UpdateOrAddPostIfIdIsNull(int?id, SavePostDTO savePost, IEnumerable <Tag> tags) { return(id.HasValue ? await UpdatePost(id.Value, savePost, tags) : AddPost(savePost, tags)); }