public async Task RatePost(RatingPost ratingPost) { HttpClient httpClient = new HttpClient(); string ratingSerialized = JsonSerializer.Serialize(ratingPost); StringContent content = new StringContent( ratingSerialized, Encoding.UTF8, "application/json" ); HttpResponseMessage responseMessage = await httpClient.PatchAsync("http://localhost:8080/postRating", content); Console.WriteLine(responseMessage.StatusCode.ToString()); }
public async Task <IActionResult> PutRating(int id, RatingPost ratingPost) { Rating rating = _context.Ratings.Find(id); if (rating == null) { return(NotFound()); } String jwt = Request.Headers["Authorization"]; jwt = jwt.Substring(7); //Decode jwt and get payload var stream = jwt; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken; //I can get Claims using: var email = tokenS.Claims.First(claim => claim.Type == "email").Value; var renter = await _context.Accounts .SingleOrDefaultAsync(p => p.Email == email); if (renter == null) { return(BadRequest()); } var job = renter.JobRenters.SingleOrDefault(p => p.Id == ratingPost.JobID); if (job == null) { return(BadRequest()); } rating.JobId = rating.JobId; rating.RenterId = renter.Id; rating.FreelancerId = ratingPost.FreelancerId; rating.Star = rating.Star; rating.Comment = ratingPost.Comment; _context.Entry(rating).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok()); }
public async Task <ActionResult <RatingPost> > PostRating(RatingPost ratingPost) { String jwt = Request.Headers["Authorization"]; jwt = jwt.Substring(7); //Decode jwt and get payload var stream = jwt; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken; //I can get Claims using: var email = tokenS.Claims.First(claim => claim.Type == "email").Value; var renter = await _context.Accounts .SingleOrDefaultAsync(p => p.Email == email); if (renter == null) { return(BadRequest()); } var job = renter.JobRenters.SingleOrDefault(p => p.Id == ratingPost.JobID); if (job == null) { return(BadRequest()); } Rating rating = new Rating() { JobId = ratingPost.JobID, RenterId = renter.Id, FreelancerId = ratingPost.FreelancerId, Star = ratingPost.Star, Comment = ratingPost.Comment, }; _context.Ratings.Add(rating); await _context.SaveChangesAsync(); return(Ok(rating)); }