コード例 #1
0
 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
     };
 }
コード例 #2
0
        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);
        }