public IActionResult Results(ConsumptionEventSearchModel searchModel)
        {
            searchModel.ItemsPerPage = searchModel.ResultsPerPage;

            var query = new ConsumptionEventSearchQueryEntity()
            {
                InventoryItemId  = searchModel.InventoryItemId,
                DateCreatedStart = searchModel.DateCreatedStart,
                DateCreatedEnd   = searchModel.DateCreatedEnd,
                ConsumedBy       = searchModel.ConsumedBy,
                OrderNumber      = searchModel.OrderNumber,
                ResultsPerPage   = searchModel.ResultsPerPage
            };

            var results = _eventService.FindConsumptionSearchResults(query);

            var filterResults = results
                                .Skip((searchModel.CurrentPage - 1) * searchModel.ItemsPerPage)
                                .Take(searchModel.ItemsPerPage)
                                .ToList();

            var presentation = new ConsumptionEventSearchResultsModel
            {
                CurrentPage  = searchModel.CurrentPage,
                Events       = filterResults,
                ItemsPerPage = searchModel.ResultsPerPage,
                TotalItems   = (results.Count() > 0 ? results.Count() : 1)
            };

            return(View(presentation));
        }
        /// <summary>
        /// Return all Consumption Events matching the specified criteria.
        /// All results are returned if no criteria are specified
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public List <ConsumptionEvent> FindConsumptionSearchResults(ConsumptionEventSearchQueryEntity searchModel)
        {
            var results = Context.ConsumptionEvents
                          .AsQueryable()
                          .AsNoTracking();

            // Code
            if (!string.IsNullOrEmpty(searchModel.InventoryItemId))
            {
                results = results.Where(x => x.InventoryItemId.Contains(searchModel.InventoryItemId));
            }

            // Date Added
            if (searchModel.DateCreatedStart != null && searchModel.DateCreatedEnd != null)
            {
                results = results.Where(x => x.DateAdded.Value.Date >= searchModel.DateCreatedStart.Value.Date && x.DateAdded.Value.Date <= searchModel.DateCreatedEnd.Value.Date);
            }
            else if (searchModel.DateCreatedStart != null && searchModel.DateCreatedEnd == null)
            {
                results = results.Where(x => x.DateAdded.Value.Date >= searchModel.DateCreatedStart.Value.Date);
            }
            else if (searchModel.DateCreatedStart == null && searchModel.DateCreatedEnd != null)
            {
                results = results.Where(x => x.DateAdded.Value.Date <= searchModel.DateCreatedEnd.Value.Date);
            }

            var realResults = results.OrderBy(x => x.ConsumptionEventId).ToList();

            // Consumed By
            if (!string.IsNullOrEmpty(searchModel.ConsumedBy))
            {
                realResults = realResults.Where(x => x.ConsumedBy.Contains(searchModel.ConsumedBy, StringComparison.OrdinalIgnoreCase)).ToList();
            }

            // Order Number
            if (!string.IsNullOrEmpty(searchModel.OrderNumber))
            {
                realResults = realResults.Where(x => x.OrderNumber.Contains(searchModel.OrderNumber, StringComparison.OrdinalIgnoreCase)).ToList();
            }

            return(realResults);
        }