public async Task <IActionResult> PostQualification([FromBody] QualificationRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            string email = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
            User   user  = await _userHelper.GetUserAsync(email);

            if (user == null)
            {
                return(NotFound("Error001"));
            }

            Product product = await _context.Products
                              .Include(p => p.Qualifications)
                              .FirstOrDefaultAsync(p => p.Id == request.ProductId);

            if (product == null)
            {
                return(NotFound("Error002"));
            }

            if (product.Qualifications == null)
            {
                product.Qualifications = new List <Qualification>();
            }

            product.Qualifications.Add(new Qualification
            {
                Date    = DateTime.UtcNow,
                Product = product,
                Remarks = request.Remarks,
                Score   = request.Score,
                User    = user
            });

            _context.Products.Update(product);
            await _context.SaveChangesAsync();

            return(Ok(product));
        }
示例#2
0
        public async Task <Response> PostQualificationAsync(string urlBase, string servicePrefix, string controller, QualificationRequest qualificationRequest, string token)
        {
            try
            {
                string        request = JsonConvert.SerializeObject(qualificationRequest);
                StringContent content = new StringContent(request, Encoding.UTF8, "application/json");
                HttpClient    client  = new HttpClient
                {
                    BaseAddress = new Uri(urlBase)
                };

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
                string url = $"{servicePrefix}{controller}";
                HttpResponseMessage response = await client.PostAsync(url, content);

                string result = await response.Content.ReadAsStringAsync();

                if (!response.IsSuccessStatusCode)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = result,
                    });
                }

                ProductResponse product = JsonConvert.DeserializeObject <ProductResponse>(result);

                return(new Response
                {
                    IsSuccess = true,
                    Result = product
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = ex.Message
                });
            }
        }