Esempio n. 1
0
 private void ValidateShortContent(SavePostDTO savePost)
 {
     if (string.IsNullOrWhiteSpace(savePost.ShortContent))
     {
         savePost.ShortContent = savePost.Content.Substring(0, Math.Min(savePost.Content.Length, 500));
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
 }
Esempio n. 7
0
 public async Task <Post> UpdateOrAddPostIfIdIsNull(int?id, SavePostDTO savePost, IEnumerable <Tag> tags)
 {
     return(id.HasValue ? await UpdatePost(id.Value, savePost, tags) : AddPost(savePost, tags));
 }