public void Present(CheckBeersAvailabilityResponse response) { ViewModel = new ApiCheckBeersAvailabilityViewModel { HttpCode = response.Data.Values.Any(x => !x) ? 400 : 200, Success = response.Data.Values.All(x => x), Data = response.Data }; }
public void Execute(CheckBeersAvailabilityRequest request, ICheckBeersAvailabilityPresenter presenter) { var ids = request.Beers.Keys; var catalogBeersStock = _catalog .GetAllBeers() .Where(x => ids.Contains(x.Id.Value)) .Select(x => new { BeerId = x.Id.Value, BeerStock = x.Stock.Value }); var response = new CheckBeersAvailabilityResponse { Data = new Dictionary <Guid, bool>() }; request.Beers.ToList().ForEach(x => { response.Data.Add(x.Key, catalogBeersStock.Any(cbs => cbs.BeerId.Equals(x.Key) && cbs.BeerStock >= x.Value) ); }); presenter.Present(response); }