public async Task <CreateBlogResponseDto> CreateNewBlog([FromBody] CreateBlogRequestDto model)
        {
            Int64 userId;

            if (Int64.TryParse(User.FindFirst(ClaimTypes.NameIdentifier).Value, out userId))
            {
                var errors = await _blogService.ValidateBlogInfo(new BlogInfoValidateModel
                {
                    Name        = model.Name,
                    Title       = model.Title,
                    Description = model.Description,
                }) as List <String>;

                if (errors.Count() > 0)
                {
                    Response.StatusCode = StatusCodes.Status400BadRequest;
                    return(new CreateBlogResponseDto
                    {
                        IsError = true,
                        Messages = errors
                    });
                }

                try
                {
                    var blog = await _blogService.CreateNew(model.Name, model.Title, model.Description, model.IsPublic, model.Type, userId);

                    if (blog != null)
                    {
                        Response.StatusCode = StatusCodes.Status201Created;
                        return(new CreateBlogResponseDto
                        {
                            IsError = false
                        });
                    }
                }
                catch (Exception)
                {
                    errors.Add("Unknown error");

                    Response.StatusCode = StatusCodes.Status400BadRequest;
                    return(new CreateBlogResponseDto
                    {
                        IsError = true,
                        Messages = errors
                    });
                }
            }

            Response.StatusCode = StatusCodes.Status403Forbidden;
            return(null);
        }
示例#2
0
        public async Task <IActionResult> Create(CreateBlogRequestDto createRequestDto)
        {
            var createRequest = _mapper.Map <CreateBlogRequest>(createRequestDto);

            createRequest.Username = User.Identity.Name;

            var response = await _blogs.CreateAsync(createRequest);

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

            var readDto = _mapper.Map <BlogReadDto>(blog);

            return(StatusCode(StatusCodes.Status201Created, readDto));
        }
        public async Task <CreateBlogResponseDto> UpdateBlog([FromBody] CreateBlogRequestDto model)
        {
            if (!model.BlogId.HasValue)
            {
                Response.StatusCode = StatusCodes.Status400BadRequest;
                return(new CreateBlogResponseDto
                {
                    IsError = true,
                    Messages = new List <String>()
                    {
                        "Invalid blogId"
                    }
                });
            }

            Int64 userId;

            if (Int64.TryParse(User.FindFirst(ClaimTypes.NameIdentifier).Value, out userId) && await _blogService.IsBlogAvailableTochangeForUser(model.BlogId.Value, userId))
            {
                var errors = await _blogService.ValidateBlogInfo(new BlogInfoValidateModel
                {
                    BlogId      = model.BlogId,
                    Name        = model.Name,
                    Title       = model.Title,
                    Description = model.Description,
                }) as List <String>;

                if (errors.Count() > 0)
                {
                    Response.StatusCode = StatusCodes.Status400BadRequest;
                    return(new CreateBlogResponseDto
                    {
                        IsError = true,
                        Messages = errors
                    });
                }

                try
                {
                    var blog = await _blogService.Update(model.BlogId.Value, model.Name, model.Title, model.Description, model.IsPublic, model.Type);

                    if (blog == null)
                    {
                        errors.Add("Blog not found");

                        Response.StatusCode = StatusCodes.Status404NotFound;
                        return(new CreateBlogResponseDto
                        {
                            IsError = true,
                            Messages = errors
                        });
                    }

                    Response.StatusCode = StatusCodes.Status200OK;
                    return(new CreateBlogResponseDto
                    {
                        IsError = false
                    });
                }
                catch (Exception)
                {
                    errors.Add("Unknown error");

                    Response.StatusCode = StatusCodes.Status400BadRequest;
                    return(new CreateBlogResponseDto
                    {
                        IsError = true,
                        Messages = errors
                    });
                }
            }

            Response.StatusCode = StatusCodes.Status403Forbidden;
            return(null);
        }