protected IQueryable <FleetNow> GetAvailabilityToday()
        {
            var availability = DataContext.FleetNows.Select(d => d);

            availability = FleetNowRestriction.RestrictVehicleQueryable(DataContext, availability);

            availability = FleetNowQueryable.GetFleetNow(availability, Parameters);
            return(availability);
        }
        protected IQueryable <FleetNow> GetAvailabilityToday()
        {
            var availability = DataContext.FleetNows.Select(d => d);

            availability = FleetNowRestriction.RestrictVehicleQueryable(DataContext, availability);

            if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.FleetTypes))
            {
                var selectedFleetTypes = Parameters[DictionaryParameter.FleetTypes].Split(',').Select(int.Parse);
                availability = availability.Where(d => selectedFleetTypes.Contains(d.FleetTypeId));
            }

            if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.CarGroup))
            {
                var carGroupId = int.Parse(Parameters[DictionaryParameter.CarGroup]);
                availability = from av in availability
                               where av.CAR_GROUP.car_group_id == carGroupId
                               select av;
            }
            else if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.CarClass))
            {
                var carClassId = int.Parse(Parameters[DictionaryParameter.CarClass]);

                availability = from av in availability
                               where av.CAR_GROUP.car_class_id == carClassId
                               select av;
            }
            else if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.CarSegment))
            {
                var carSegmentId = int.Parse(Parameters[DictionaryParameter.CarSegment]);

                availability = from av in availability
                               where av.CAR_GROUP.CAR_CLASS.car_segment_id == carSegmentId
                               select av;
            }
            else if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.OwningCountry))
            {
                var owningCountry = Parameters[DictionaryParameter.OwningCountry];

                availability = from av in availability
                               where av.CAR_GROUP.CAR_CLASS.CAR_SEGMENT.country == owningCountry
                               select av;
            }


            if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.Location))
            {
                var location = int.Parse(Parameters[DictionaryParameter.Location]);

                availability = from av in availability
                               where av.LOCATION.dim_Location_id == location
                               select av;
            }
            else if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.LocationGroup) ||
                     Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.Area))
            {
                if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.LocationGroup))
                {
                    var locationGroupId = int.Parse(Parameters[DictionaryParameter.LocationGroup]);

                    availability = from av in availability
                                   where av.LOCATION.cms_location_group_id == locationGroupId
                                   select av;
                }
                else
                {
                    var areaId = int.Parse(Parameters[DictionaryParameter.Area]);

                    availability = from av in availability
                                   where av.LOCATION.ops_area_id == areaId
                                   select av;
                }
            }
            else if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.Pool) ||
                     Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.Region))
            {
                if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.Pool))
                {
                    var poolId = int.Parse(Parameters[DictionaryParameter.Pool]);

                    availability = from av in availability
                                   where av.LOCATION.CMS_LOCATION_GROUP.cms_pool_id == poolId
                                   select av;
                }
                else
                {
                    var regionId = int.Parse(Parameters[DictionaryParameter.Region]);

                    availability = from av in availability
                                   where av.LOCATION.OPS_AREA.ops_region_id == regionId
                                   select av;
                }
            }
            else if (Parameters.ContainsValueAndIsntEmpty(DictionaryParameter.LocationCountry))
            {
                var locationCountry = Parameters[DictionaryParameter.LocationCountry];

                availability = from av in availability
                               where av.LOCATION.country == locationCountry
                               select av;
            }

            return(availability);
        }