public async Task <ActionResult <Bundle> > GetBundle(int id) { try { var result = await _bundleRepository.GetBundle(id); if (result == null) { return(Ok(new Bundle())); } else { return(result); } } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Error retrieving data from the database.")); } }
public BundleViewModel GetRecommendedBundle(IEnumerable <BundleConfigModel> bundles, AnswerModel answer) { var validList = new List <BundleConfigModel>(); foreach (var x in bundles) { if (BundleConditionFactory.Get(x.RuleId).IsValid(answer).Count() == 0) { validList.Add(x); } } if (validList.Count > 0) { var recommended = validList.OrderByDescending(x => x.Value).First(); var viewModel = new BundleViewModel() { Success = true, Bundle = _bundleRepository.GetBundle(recommended.BundleId) }; foreach (var b in recommended.ProductId) { viewModel.Products.Add(_productRepository.Get(b)); } return(viewModel); } var errorViewModel = new BundleViewModel() { Success = false, Errors = new List <string> { "Not found by given answer" } }; return(errorViewModel); }