Exemple #1
0
        public async Task <PostResponseDto> Update([FromBody] CreatePostRequestDto model)
        {
            if (!model.PostId.HasValue)
            {
                Response.StatusCode = StatusCodes.Status400BadRequest;
                return(null);
            }

            Int64 userId;

            if (Int64.TryParse(User.FindFirst(ClaimTypes.NameIdentifier).Value, out userId) && await _postService.IsPostAvailableForUser(model.PostId.Value, userId))
            {
                var description = Regex.Replace(model.Content, @"<[^>]*>", " ");
                description = Regex.Replace(description, @"\s+", " ").Trim();

                description = description.Length > 247
                        ? description.Substring(0, 247) + "..."
                        : description;

                var post = await _postService.Update(model.PostId.Value, model.Title, model.Content, description);

                if (post == null)
                {
                    Response.StatusCode = StatusCodes.Status404NotFound;
                    return(null);
                }

                Response.StatusCode = StatusCodes.Status200OK;
                return(post);
            }

            Response.StatusCode = StatusCodes.Status403Forbidden;
            return(null);
        }
Exemple #2
0
        public async Task <PostResponseDto> CreateNewPost([FromBody] CreatePostRequestDto model)
        {
            Int64 userId;

            if (Int64.TryParse(User.FindFirst(ClaimTypes.NameIdentifier).Value, out userId) && await _blogService.IsBlogAvailableForUser(model.BlogId, userId))
            {
                try
                {
                    var description = Regex.Replace(model.Content, @"<[^>]*>", " ");
                    description = Regex.Replace(description, @"\s+", " ").Trim();

                    description = description.Length > 247
                            ? description.Substring(0, 247) + "..."
                            : description;

                    Response.StatusCode = StatusCodes.Status201Created;
                    return(await _postService.CreateNew(model.Title, model.Content, description, model.IsPublished, userId, model.BlogId));
                }
                catch (NotFoundException)
                {
                    Response.StatusCode = StatusCodes.Status404NotFound;
                    return(null);
                }
                catch (AccessDeniedException)
                {
                    Response.StatusCode = StatusCodes.Status403Forbidden;
                    return(null);
                }
            }

            Response.StatusCode = StatusCodes.Status403Forbidden;
            return(null);
        }
        public async Task <IActionResult> CreatePostAsync([FromBody] CreatePostRequestDto createPostDto)
        {
            var createPostBo = this._mapper.Map <CreatePostRequestBo>(createPostDto);

            var result = await this._postService.CreatePostAsync(createPostBo);

            if (result.HasErrors)
            {
                return(new BadRequestObjectResult(result.Errors));
            }

            return(CreatedAtRoute(string.Empty, result));
        }
Exemple #4
0
        public async Task <IActionResult> Create(CreatePostRequestDto createRequestDto)
        {
            var createRequest = _mapper.Map <CreatePostRequest>(createRequestDto);

            createRequest.Username = User.Identity.Name;

            var response = await _posts.CreateAsync(createRequest);

            if (!response.Success)
            {
                return(BadRequest(response.ErrorMessage));
            }
            var post = response.Result;

            var readDto = _mapper.Map <PostRichReadDto>(post);

            return(StatusCode(StatusCodes.Status201Created, readDto));
        }
Exemple #5
0
        public async Task <IActionResult> CreatePostAsync([FromBody] CreatePostRequestDto createPostDto, CancellationToken token = default(CancellationToken))
        {
            try
            {
                var createPostBo = this._autoMapperService.Map <CreatePostRequestBo>(createPostDto);

                var serviceResult = await this._postService.CreatePostAsync(createPostBo, token);

                if (serviceResult.HasErrors)
                {
                    return(new BadRequestObjectResult(serviceResult.Errors));
                }

                var mappedResult = this._autoMapperService.Map <PostResponseDto>(serviceResult.Value);

                return(this.CreatedAtRoute(nameof(this.GetPostByIdAsync), new { id = mappedResult.Data.Id }, mappedResult));
            }
            catch (Exception)
            {
                return(new BadRequestResult());
            }
        }
Exemple #6
0
        public async Task <IActionResult> CreatePostAsync([FromBody] CreatePostRequestDto createPostDto)
        {
            try
            {
                var createPostBo = this._mapper.Map <CreatePostRequestBo>(createPostDto);

                var serviceResult = await this._postService.CreatePostAsync(createPostBo);

                if (serviceResult.HasErrors)
                {
                    return(new BadRequestObjectResult(serviceResult.Errors));
                }

                var mappedResult = this._mapper.Map <PostItemDto>(serviceResult.Value);

                return(CreatedAtRoute(Routes.GetPost, new { id = mappedResult.Id }, mappedResult));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);

                return(new BadRequestResult());
            }
        }