public async Task <ActionResult> AddProductOpinionDb([Bind("ProductName, Description")]
                                                             ProductOpinion productOpinion, string price, string priceOpinion, string value, string quality)
        {
            productOpinion.Price        = double.Parse(price, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.Price        = double.Parse(price, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.PriceOpinion = double.Parse(priceOpinion, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.Value        = double.Parse(value, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.Quality      = double.Parse(quality, System.Globalization.CultureInfo.InvariantCulture);
            if (!ModelState.IsValid)
            {
                var error = new ErrorViewModel()
                {
                    ErrorMessage = "Invalid data"
                };
                return(RedirectToAction("Index", "Error", error));
            }

            productOpinion.PriceQualityRatio = productOpinion.PriceOpinion * productOpinion.Quality;
            var user = await _dbContext.ApplicationUser.Where(u => u.Id == _user.GetUserId(User)).FirstOrDefaultAsync();

            user.ProductOpinion.Add(productOpinion);
            _dbContext.Update(user);
            await _dbContext.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind("ProductName, Description, ProductOpinionId")]
                                              ProductOpinion productOpinion, string price, string priceOpinion, string value, string quality)
        {
            productOpinion.Price        = double.Parse(price, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.PriceOpinion = double.Parse(priceOpinion, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.Value        = double.Parse(value, System.Globalization.CultureInfo.InvariantCulture);
            productOpinion.Quality      = double.Parse(quality, System.Globalization.CultureInfo.InvariantCulture);
            if (!ModelState.IsValid)
            {
                var error = new ErrorViewModel()
                {
                    ErrorMessage = "Invalid number"
                };
                return(RedirectToAction("Index", "Error", error));
            }

            productOpinion.PriceQualityRatio = productOpinion.PriceOpinion * productOpinion.Quality;
            try
            {
                _dbContext.ProductOpinion.Update(productOpinion);
                await _dbContext.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                var error = new ErrorViewModel()
                {
                    ErrorMessage = "Editing product opinion failed"
                };
                return(RedirectToAction("Index", "Error", error));
            }
        }