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); }
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); }