public List <LeaseDTO> GetAllLeases()
        {
            var activs  = ActiveLeases.GetAll();
            var inactvs = InactiveLeases.GetAll();

            return(activs.Concat(inactvs).ToList());
        }
        public LeaseDTO GetOccupant(StallDTO stall)
        {
            var matches = ActiveLeases.GetAll()
                          .Where(_ => _.Stall.Id == stall.Id);

            if (!matches.Any())
            {
                return(null);
            }
            if (matches.Count() > 1)
            {
                throw Bad.Data($"1 occupant for [{stall}] but found [{matches.Count()}]");
            }
            return(matches.Single());
        }
        public List <LeaseDTO> ActiveLeasesFor(DateTime date)
        {
            if (date == DateTime.MinValue)
            {
                return(new List <LeaseDTO>());
            }

            var activs = ActiveLeases.GetAll()
                         .Where(_ => _.IsActive(date));

            var inactvs = InactiveLeases.GetAll()
                          .Where(_ => _.IsActive(date));

            return(activs.Concat(inactvs).ToList());
        }