Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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));
        }