public void PerformPost <T>(HttpListenerContext context, PostResource <T> postResource) { if (_verify != null && !_verify(context.Request)) { WriteError(context.Response, HttpStatusCode.Unauthorized, "Authorization failed"); return; } T message; try { message = ReadBody <T>(context.Request); } catch (ArgumentException e) { WriteError(context.Response, HttpStatusCode.BadRequest, e.Message); return; } postResource(message); context.Response.StatusCode = (int)HttpStatusCode.NoContent; context.Response.OutputStream.Close(); }
/// <summary> /// Populate the related resource properties. /// </summary> /// <param name="resource">The list of resources to populate.</param> /// <param name="database">The database instance to use when populating.</param> internal static PostResource Populate(this PostResource resource, IDatabase database) { if (resource == null) { throw new ArgumentNullException(nameof(resource)); } return(Populate(new[] { resource }, database).Single()); }
public async Task <IActionResult> CreatePost([FromBody] PostResource postResource) { var newPost = mapper.Map <PostResource, Post>(postResource); newPost.CreatedAt = DateTime.Now; context.Posts.Add(newPost); await context.SaveChangesAsync(); var postSaved = mapper.Map <Post, PostResource>(newPost); return(Ok(postSaved)); }
public async Task <IActionResult> CreatePost([FromBody] PostResource post) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var mapPost = _iMapper.Map <PostResource, Post>(post); _context.Posts.Add(mapPost); await _context.SaveChangesAsync(); return(Ok(mapPost)); }
public async Task <IActionResult> AddPost(int?id, PostResource post, [FromForm] IFormFile file) { var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (userId == null) { return(Unauthorized()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var target = await repository.GetPost(id); if (target != null) { target.Title = post.Title; target.UserId = userId; target.Content = post.Content; target.CategoryId = post.CategoryId; target.PublishDate = DateTime.Now; target.published = false; await unit.Commit(); await AddPhoto(file, target); return(Ok(mapper.Map <Post, PostResource>(target))); } else { var createPost = mapper.Map <PostResource, Post>(post); createPost.UserId = userId; createPost.PublishDate = DateTime.Now; createPost.published = false; await repository.AddPost(createPost); await unit.Commit(); if (file != null) { await AddPhoto(file, createPost); } var result = mapper.Map <Post, PostResource>(createPost); return(Ok(result)); } }
public async Task <IActionResult> UpdatePost(int id, [FromBody] PostResource post) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var postInDb = await _context.Posts.FindAsync(id); if (postInDb == null) { return(NotFound()); } _iMapper.Map <PostResource, Post>(post, postInDb); await _context.SaveChangesAsync(); return(Ok(postInDb)); }
public async Task <IActionResult> UpdatePost(int id, [FromBody] PostResource postResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var post = await context.Posts.Include(p => p.Categories).SingleOrDefaultAsync(p => p.Id == id); if (post == null) { return(NotFound()); } mapper.Map <PostResource, Post>(postResource, post); post.UpdatedAt = DateTime.Now; await context.SaveChangesAsync(); var postSaved = mapper.Map <Post, PostResource>(post); return(Ok(postSaved)); }