public async Task <IActionResult> Details([Bind("Value,CakeId")] CakeDetailRatingViewModel model) { var existRating = await _ratingRepository.GetUserRatingByCakeAsync(model.CakeId); if (existRating != null) { existRating.Value = model.Value; existRating.Cake = await model.LoadCake(_cakeRepository); _ratingRepository.UpdateRating(existRating); } else { Rating rating = new Rating(); rating.CakeId = model.CakeId; rating.Value = model.Value; rating.UserId = User.FindFirstValue(ClaimTypes.NameIdentifier); await _ratingRepository.AddRatingAsync(rating); } model.cake = await model.LoadCake(_cakeRepository); return(View(model)); }