public async Task <IActionResult> AddBlogAsync([FromBody] PostBlogDTO model) { try { var post = new PostBlog { Name = model.Name, DateOfCreation = model.DateOfCreation, Plot = model.Plot }; var userId = caller.Claims.Single(c => c.Type == "id"); //var customer = await appDbContext.UserInfoes.Include(c => c.Identity).SingleAsync(c => c.Identity.Id == userId.Value); var user = await unitOfWork.Users.GetUserByIdentityId(userId.Value); var trip = await unitOfWork.Trips.GetTripByIdAsync(model.TripId); var isUserCreator = unitOfWork.Trips.IsUserCreator(user.Id, trip.Id); if (!isUserCreator) { return(Forbid()); } post.Trip = trip; unitOfWork.PostBlogs.Add(post); logger.LogInfo($"Add some post"); return(Ok(model)); } catch (Exception ex) { logger.LogError($"Something went wrong inside AddBlogAsync;{ex.Message}"); return(StatusCode(500, "Internal Server Error")); } }
public async Task <IActionResult> AsyncUpdateBlog(int id, [FromBody] PostBlogDTO model) { try { if (!ModelState.IsValid) { return(BadRequest()); } var userId = caller.Claims.Single(c => c.Type == "id"); var user = await unitOfWork.Users.GetUserByIdentityId(userId.Value); var trip = unitOfWork.Trips.GetTripWithPostBlogs(model.TripId); var isUserCreator = unitOfWork.Trips.IsUserCreator(user.Id, trip.Id); if (!isUserCreator) { return(Forbid()); } var post = await unitOfWork.PostBlogs.GetPostBlogByIdAsync(id); if (post == null) { return(NotFound()); } post.Name = model.Name; post.Plot = model.Plot; unitOfWork.PostBlogs.Update(post); logger.LogInfo($"Post{id} - {model.Name} updated "); return(Ok(post)); } catch (Exception ex) { logger.LogError($"Something went wrong inside AsyncUpdateBlog;{ex.Message}"); return(StatusCode(500, "Internal Server Error")); } }