示例#1
0
        public IList <ICarSearchDataEntity> getQueryable(IFilterEntity filters, ICarFilterEntity cf, string sortExpression, string sortDirection)
        {
            using (MarsDBDataContext db = new MarsDBDataContext()) {
                var qDetails   = new VehicleDetailsQueryable().getQueryable(db);
                var qFilter    = new VehiclesFilterQueryable().getQueryable(filters, db, qDetails);
                var qCarFilter = new CarFilterQueryable().getQueryable(cf, db, qFilter);
                IQueryable <ICarSearchDataEntity> qVDFilter;
                switch (filters.VehiclePredicament)
                {
                case 0: qVDFilter = new VehicleDetailsAllQueryable().getQueryable(filters, db, qCarFilter); break;

                case 1: qVDFilter = new VehicleDetailsOROwnToForeign().getQueryable(filters, db, qCarFilter); break;

                case 2: qVDFilter = new VehicleDetailsTXToForeignQueryable().getQueryable(filters, db, qCarFilter); break;

                case 3: qVDFilter = new VehicleDetailsIdleQueryable().getQueryable(filters, db, qCarFilter); break;

                case 4: qVDFilter = new VehicleDetailsORInBetweenQueryable().getQueryable(filters, db, qCarFilter); break;

                case 5: qVDFilter = new VehicleDetailsORReturningQueryable().getQueryable(filters, db, qCarFilter); break;

                case 6: qVDFilter = new VehicleDetailsTXReturningQueryable().getQueryable(filters, db, qCarFilter); break;

                case 7: qVDFilter = new VehicleDetailsNonRevQueryable().getQueryable(filters, db, qCarFilter); break;

                default: qVDFilter = qCarFilter; break;
                }
                var l1 = qVDFilter.ToList();
                var l2 = new VehicleDetailsSortQueryable().getQueryable(sortExpression, sortDirection, db, l1.AsQueryable()).ToList();
                return(l2);
            }
        }
 public IQueryable <ICarSearchDataEntity> getQueryable(IFilterEntity f, DataContext db, IQueryable <ICarSearchDataEntity> q)
 {
     return(from p in q
            where p.OwnCountry != p.Lstwwd.Substring(0, 2) &&
            (string.IsNullOrEmpty(f.DueCountry) || f.DueCountry.Equals(p.Lstwwd.Substring(0, 2)))
            select p);
 }
 public IQueryable <ICarSearchDataEntity> getQueryable(IFilterEntity filters, MarsDBDataContext db, IQueryable <ICarSearchDataEntity> q)
 {
     return(from p in q
            where (p.Pool == filters.Pool || filters.Pool == "" || filters.Pool == null) &&
            (p.LocGroup == filters.Location || filters.Location == "" || filters.Location == null) &&
            (p.Vc == filters.CarGroup || filters.CarGroup == "" || filters.CarGroup == null) &&
            ((from cg in db.CAR_GROUPs
              from cc in db.CAR_CLASSes
              where cg.car_class_id == cc.car_class_id &&
              cg.car_group1 == p.Vc
              select cc.car_class1).Contains(filters.CarClass) || filters.CarClass == "" || filters.CarClass == null) &&
            ((from cg in db.CAR_GROUPs
              from cc in db.CAR_CLASSes
              from cs in db.CAR_SEGMENTs
              where cs.car_segment_id == cc.car_segment_id &&
              cg.car_class_id == cc.car_class_id &&
              cg.car_group1 == p.Vc
              select cs.car_segment1).Contains(filters.CarSegment) || filters.CarSegment == "" || filters.CarSegment == null) &&
            (p.Nonrev >= filters.nonRev) &&        // non Revenue selection
            (p.Mt.Contains(filters.MoveType) || string.IsNullOrEmpty(filters.MoveType)) &&
            (p.Op == filters.Operstat ||
             string.IsNullOrEmpty(filters.Operstat) ||
             (filters.Operstat == "Shop" ? p.Op == "BD" || p.Op == "MM" || p.Op == "TW" : false) ||
             (filters.Operstat == "Other" ? p.Op != "RT" && p.Op != "BD" && p.Op != "MM" && p.Op != "TW" : false)
            ) &&
            (filters.OwnCountry == p.OwnCountry || string.IsNullOrEmpty(filters.OwnCountry))
            select p);
 }
示例#4
0
 public VehicleDetailsController_002()
 {
     OperstatModel           = new FilterModel2(new OperstatRepository());
     MoveTypeModel           = new FilterModel2(new MoveTypeRepository());
     ThreeCascadeModel       = new ThreeCascadeFilterModel(new FleetEuropeActualDueCountriesRepository(), new PoolRepository(), new LocationRepository());
     OwnCountryModel         = new FilterModel2(new FleetActualEuropeOwnCountriesRepository());
     CarSegmentModel         = new FilterModel2(new CarSegmentRepository());
     CarClassModel           = new FilterModel2(new CarClassRepository());
     CarGroupModel           = new FilterModel2(new CarGroupRepository());
     VehiclePredicamentModel = new FilterModel2(new VehiclePredicamentRepository());
     NonRevDaysModel         = new NonRevFilterModel(new NonrevRepository());
     GridViewModel           = new GridviewModel(new VehicleDetailsRepository());
     _filter    = new FilterEntity();
     _carFilter = new CarFilterEntity();
     VehicleDetailsUserControlModel = new VehicleDetailsUserControlModel(new VehicleDetailsRepository());
     PagerMaxModel           = new PagerMaxRowsModel(new GridViewMaxRowsRepository());
     UnitTextBoxModel        = new TextFilterModel();
     LicenseTextBoxModel     = new TextFilterModel();
     ModelTextBoxModel       = new TextFilterModel();
     ModelDescTextBoxModel   = new TextFilterModel();
     VinTextBoxModel         = new TextFilterModel();
     CustNameTextBoxModel    = new TextFilterModel();
     ColourTextBoxModel      = new TextFilterModel();
     MileageTextBoxModel     = new TextFilterModel();
     FilterGridButtonModel   = new ButtonModel();
     ClearFiltersButtonModel = new ButtonModel();
 }
        private ConditionState CheckCondition(object field, IFilterEntity entity)
        {
            if (entity == null)
            {
                return(ConditionState.NOT_USED);
            }

            if (entity is FilterText)
            {
                FilterText innerEntity = (FilterText)entity;
                if (string.IsNullOrEmpty(innerEntity.Condition) || string.IsNullOrEmpty(innerEntity.Value))
                {
                    return(ConditionState.NOT_USED);
                }

                string innerField = Convert.ToString(field);
                if (innerEntity.Condition.Equals("contains"))
                {
                    return(innerField.Contains(innerEntity.Value) ? ConditionState.PASSED : ConditionState.NOT_PASSED);
                }
                else if (innerEntity.Condition.Equals("equals"))
                {
                    return(innerField.Equals(innerEntity.Value) ? ConditionState.PASSED : ConditionState.NOT_PASSED);
                }
                else
                {
                    return(ConditionState.NOT_USED);
                }
            }
            else if (entity is FilterDate)
            {
                FilterDate innerEntity = (FilterDate)entity;
                if (innerEntity.From == null || innerEntity.To == null)
                {
                    return(ConditionState.NOT_USED);
                }

                DateTime innerField = Convert.ToDateTime(field);
                DateTime from       = DateTime.Parse(innerEntity.From);
                DateTime to         = DateTime.Parse(innerEntity.To);

                int fromResult = DateTime.Compare(from, innerField);
                if (fromResult <= 0)
                {
                    int toResult = DateTime.Compare(innerField, to);
                    if (toResult <= 0)
                    {
                        return(ConditionState.PASSED);
                    }
                }
                return(ConditionState.NOT_PASSED);
            }
            else
            {
                return(ConditionState.NOT_PASSED);
            }
        }
 public IQueryable <ICarSearchDataEntity> getQueryable(IFilterEntity f, DataContext db, IQueryable <ICarSearchDataEntity> q)
 {
     return(from p in q
            where (p.OwnCountry != p.Lstwwd.Substring(0, 2) &&
                   p.OwnCountry != ((p.Duewwd == null || p.Duewwd == "") ? p.Lstwwd.Substring(0, 2) : p.Duewwd.Substring(0, 2)) &&
                   (p.OnRent != 1)) &&
            (string.IsNullOrEmpty(f.DueCountry) ||
             ((p.Duewwd == null || p.Duewwd == "") ?
              f.DueCountry.Equals(p.Lstwwd.Substring(0, 2)) : f.DueCountry.Equals(p.Duewwd.Substring(0, 2))))
            select p);
 }
示例#7
0
 public FleetOverviewController()
 {
     ThreeCascadeModel       = new ThreeCascadeFilterModel(new FleetEuropeActualDueCountriesRepository(), new PoolRepository(), new LocationRepository());
     OwnCountryModel         = new FilterModel2(new FleetActualEuropeOwnCountriesRepository());
     CarSegmentModel         = new FilterModel2(new CarSegmentRepository());
     CarClassModel           = new FilterModel2(new CarClassRepository());
     CarGroupModel           = new FilterModel2(new CarGroupRepository());
     VehiclePredicamentModel = new FilterModel2(new VehiclePredicamentRepository());
     DataTableModel          = new DataTableModel(new FleetOverviewRepository());
     _filter = new FilterEntity();
 }
        public UtilisationHistoryController()
        {
            CountryFilter        = new FilterModel(new CountryDescriptionRepository());
            StartDateFilterModel = new TextFilterModel();
            EndDateFilter        = new TextFilterModel();
            IUtilisationHistoryRepository uhr = new UtilisationHistoryRepository();

            DataTableModel = new UtilisationDataTableModel(uhr);
            DataTableModel.ColumnHeader = @"Date/Country";
            _filter    = new FilterEntity();
            ChartModel = new ChartModel(uhr);
        }
示例#9
0
        public virtual IList <T> GetFiltered(IFilterEntity <T> fd)
        {
            List <T> res = new List <T>();

            foreach (KeyValuePair <long, T> pair in _index)
            {
                if (fd.IsOK(pair.Value))
                {
                    res.Add(pair.Value);
                }
            }
            if (res.Count == 0)
            {
                return(null);
            }
            return(res);
        }
 public IList <IDataTableEntity> getList(IFilterEntity filters)
 {
     using (UtilisationRepositoryDataContext db = new UtilisationRepositoryDataContext()) {
         string   owningCountry = filters.OwnCountry;
         DateTime startDate     = filters.ReservationStartDate; // cheat!!!!
         DateTime endDate       = filters.ReservationEndDate;
         _storedList.Clear();                                   // thank goodness for .net 4
         try
         {
             var q = from p in db.GetVehiclesAbroadUtilization(owningCountry, startDate, endDate)
                     select new UtilisationHistoryEntity
             {
                 Local        = (decimal)p.UTILIZATION_IN_COUNTRY * 100,
                 OutOfCountry = (decimal)p.UTILIZATION_OUT_OF_COUNTRY * 100,
                 OwnCountry   = p.ownCountry,
                 Rep_Date     = p.REPDATE ?? DateTime.Now
             };
             foreach (var item in q)
             {
                 _storedList.Add(new DataTableEntity
                 {
                     header        = item.OwnCountry + "_out",
                     rowDefinition = item.Rep_Date.ToShortDateString(),
                     theValue      = item.OutOfCountry.ToString("0.##")
                 });
                 _storedList.Add(new DataTableEntity
                 {
                     header        = item.OwnCountry + "_local",
                     rowDefinition = item.Rep_Date.ToShortDateString(),
                     theValue      = item.Local.ToString("0.##")
                 });
             }
         }
         catch (Exception ex)
         {
             //_logger.Error("Exception thrown in UtilisationHistoryRepository, message = " + ex.Message);
         }
         return(_storedList);
     }
 }
        public IList <ICarSearchDataEntity> getQueryable(IFilterEntity filters, ICarFilterEntity cf, string sortExpression = "", string sortDirection = "")
        {
            IList <ICarSearchDataEntity> l = new List <ICarSearchDataEntity>();

            for (int i = 0; i < 100; i++)
            {
                l.Add(new CarSearchDataEntity {
                    License    = "A000" + i,
                    Lstwwd     = "GE00" + i,
                    OwnCountry = "FR",
                    Pool       = i.ToString(),
                    LocGroup   = i.ToString(),
                    Vc         = i.ToString(),
                    Unit       = i.ToString(),
                    Model      = "Tank" + i,
                    Moddesc    = "Sherman" + i,
                    Driver     = "Number " + i,
                    Colour     = "Red",
                    Lstmlg     = i
                });
            }
            return(l);
        }
示例#12
0
        public override IQueryable <ReservationMatchEntity> GetQueryable(MarsDBDataContext db, IFilterEntity Filters, ICarFilterEntity CarFilters, string SortExpression)
        {
            try {
                var tmp = new FleetEuropeActualQueryable().GetQueryable(db);

                IQueryable <Reservations> q1 = from p in db.Reservations
                                               join startloc in db.LOCATIONs on p.RENT_LOC equals startloc.dim_Location_id
                                               join startCmsLoc in db.CMS_LOCATION_GROUPs on startloc.cms_location_group_id equals
                                               startCmsLoc.cms_location_group_id
                                               join startCmsP in db.CMS_POOLs on startCmsLoc.cms_pool_id equals startCmsP.cms_pool_id
                                               join startCtry in db.COUNTRies on startCmsP.country equals startCtry.country1
                                               // Return Location
                                               join returnloc in db.LOCATIONs on p.RTRN_LOC equals returnloc.dim_Location_id

                                               // Car details
                                               join carGp in db.CAR_GROUPs on p.GR_INCL_GOLDUPGR equals carGp.car_group_id
                                               where (p.COUNTRY != returnloc.country) &&
                                               (Filters.OwnCountry == p.COUNTRY || Filters.OwnCountry == "" || Filters.OwnCountry == null)
                                               &&
                                               (p.ReservedCarGroup == Filters.CarGroup || Filters.CarGroup == "" || Filters.CarGroup == null) &&
                                               (startCtry.active) && // only corporate countries
                                               (Filters.CarGroup == carGp.car_group1 || string.IsNullOrEmpty(Filters.CarGroup))
                                               &&
                                               (p.RS_ARRIVAL_DATE >= Filters.ReservationStartDate &&
                                                p.RS_ARRIVAL_DATE <= Filters.ReservationEndDate)
                                               // reservation start dates
                                               select p;

                q1 = new ReservationMatchCarSegmentQueryable().GetQueryable(db, q1, Filters.CarSegment);
                q1 = new ReservationMatchCarClassQueryable().GetQueryable(db, q1, Filters.CarClass);
                q1 = new ReservationMatchPoolQueryable().GetQueryable(db, q1, Filters.Pool);
                q1 = new ReservationMatchReturnQueryable().GetQueryable(db, q1, Filters.DueCountry, Filters.DuePool, Filters.DueLocationGroup);

                IQueryable <ReservationMatchEntity> q = from p in q1
                                                        // Start Location
                                                        join startloc in db.LOCATIONs on p.RENT_LOC equals startloc.dim_Location_id
                                                        join startCmsLoc in db.CMS_LOCATION_GROUPs on startloc.cms_location_group_id equals
                                                        startCmsLoc.cms_location_group_id
                                                        join startCmsP in db.CMS_POOLs on startCmsLoc.cms_pool_id equals startCmsP.cms_pool_id
                                                        join startCtry in db.COUNTRies on startCmsP.country equals startCtry.country1
                                                        // Return Location
                                                        join returnloc in db.LOCATIONs on p.RTRN_LOC equals returnloc.dim_Location_id
                                                        join returnCmsLoc in db.CMS_LOCATION_GROUPs on returnloc.cms_location_group_id equals
                                                        returnCmsLoc.cms_location_group_id
                                                        join returnCmsP in db.CMS_POOLs on returnCmsLoc.cms_pool_id equals returnCmsP.cms_pool_id
                                                        join returnCtry in db.COUNTRies on returnCmsP.country equals returnCtry.country1
                                                        // Car details
                                                        join carGp in db.CAR_GROUPs on p.GR_INCL_GOLDUPGR equals carGp.car_group_id
                                                        join carCs in db.CAR_CLASSes on carGp.car_class_id equals carCs.car_class_id
                                                        join carS in db.CAR_SEGMENTs on carCs.car_segment_id equals carS.car_segment_id
                                                        join t1 in tmp on
                                                        new { x0 = returnloc.served_by_locn.Substring(0, 2), x1 = startCmsLoc.cms_location_group1 } equals
                new { x0 = t1.OwningCountry, x1 = t1.CurrentLocation } into tj
                from t in tj.DefaultIfEmpty()
                where
                (returnCmsLoc.cms_location_group1 == Filters.Location || Filters.Location == "" ||
                 Filters.Location == null)
                select new ReservationMatchEntity
                {
                    ResLocation     = startloc.served_by_locn,
                    ResGroup        = carGp.car_group1,
                    ResCheckoutDate =
                        new DateTime(p.RS_ARRIVAL_DATE.Value.Year, p.RS_ARRIVAL_DATE.Value.Month,
                                     p.RS_ARRIVAL_DATE.Value.Day, p.RS_ARRIVAL_TIME.Value.Hour,
                                     p.RS_ARRIVAL_TIME.Value.Minute, 0),
                    ResCheckoutLoc         = startloc.served_by_locn,
                    ResCheckinLoc          = returnloc.served_by_locn,
                    ResId                  = p.RES_ID_NBR,
                    ResNoDaysUntilCheckout =
                        SqlMethods.DateDiffDay(DateTime.Now, p.RS_ARRIVAL_DATE.Value).ToString(),
                    ResNoDaysReserved = ((int)p.RES_DAYS).ToString(),
                    ResDriverName     = p.CUST_NAME,
                    Matches           = t.Count == null ? "0" : t.Count.ToString()
                };

                switch (SortExpression)
                {
                case "ResLocation": q = q.OrderBy(p => p.ResLocation); break;

                case "ResLocation DESC": q = q.OrderByDescending(p => p.ResLocation); break;

                case "ResGroup": q = q.OrderBy(p => p.ResGroup); break;

                case "ResGroup DESC": q = q.OrderByDescending(p => p.ResGroup); break;

                case "ResCheckoutDate": q = q.OrderBy(p => p.ResCheckoutDate); break;

                case "ResCheckoutDate DESC": q = q.OrderByDescending(p => p.ResCheckoutDate); break;

                case "ResCheckinLoc": q = q.OrderBy(p => p.ResCheckinLoc); break;

                case "ResCheckinLoc DESC": q = q.OrderByDescending(p => p.ResCheckinLoc); break;

                case "ResNoDaysUntilCheckout": q = q.OrderBy(p => p.ResNoDaysUntilCheckout); break;

                case "ResNoDaysUntilCheckout DESC": q = q.OrderByDescending(p => p.ResNoDaysUntilCheckout); break;

                case "ResNoDaysReserved": q = q.OrderBy(p => p.ResNoDaysReserved); break;

                case "ResNoDaysReserved DESC": q = q.OrderByDescending(p => p.ResNoDaysReserved); break;

                case "ResDriverName": q = q.OrderBy(p => p.ResDriverName); break;

                case "ResDriverName DESC": q = q.OrderByDescending(p => p.ResDriverName); break;

                case "ResId": q = q.OrderBy(p => p.ResId); break;

                case "ResId DESC": q = q.OrderByDescending(p => p.ResId); break;

                case "Matches": q = q.OrderBy(p => p.Matches); break;

                case "Matches DESC": q = q.OrderByDescending(p => p.Matches); break;

                default: q = q.OrderBy(p => p.ResNoDaysUntilCheckout).ThenBy(p => p.ResLocation); break;
                }
                return(q);
            } catch (Exception ex) {
                //.Error("Exception thrown in ReservationDetails Model, exception = " + ex);
                throw new Exception("Exception thrown in ReservationDetails Model, exception = " + ex);
            }
        }
示例#13
0
 public override IList <ReservationMatchEntity> GetList(IFilterEntity Filters, ICarFilterEntity CarFilters, string SortExpression)
 {
     using (MarsDBDataContext db = new MarsDBDataContext())
         return(GetQueryable(db, Filters, CarFilters, SortExpression).ToList());
 }
示例#14
0
        public List <FleetMatchEntity> getNewList(IFilterEntity f, string license, string sortExpression)
        {
            using (MarsDBDataContext db = new MarsDBDataContext())
            {
                var qDetails = new VehicleDetailsQueryable().getQueryable(db);
                var qFilter  = new VehiclesFilterQueryable().getQueryable(f, db, qDetails);
                var q1       = new VehicleDetailsIdleQueryable().getQueryable(f, db, qFilter);

                var tmp = from rea in db.Reservations
                          join rentLoc in db.LOCATIONs on rea.RENT_LOC equals rentLoc.dim_Location_id
                          join rentClg in db.CMS_LOCATION_GROUPs on rentLoc.cms_location_group_id equals
                          rentClg.cms_location_group_id
                          //Return location
                          join returnLoc in db.LOCATIONs on rea.RTRN_LOC equals returnLoc.dim_Location_id
                          where rea.RS_ARRIVAL_DATE >= f.ReservationStartDate && rea.RS_ARRIVAL_DATE <= f.ReservationEndDate
                          group rea by
                          new
                {
                    rtrnLoc   = returnLoc.served_by_locn.Substring(0, 2),
                    resLocGrp = rentClg.cms_location_group1
                }
                into grp
                    select new { grp.Key.rtrnLoc, grp.Key.resLocGrp, c = grp.Count() };

                var q = from p in q1
                        join loc in db.LOCATIONs on p.Lstwwd equals loc.location1
                        join clg in db.CMS_LOCATION_GROUPs on loc.cms_location_group_id equals clg.cms_location_group_id
                        join t1 in tmp on new { x1 = p.OwnCountry, x2 = clg.cms_location_group1 } equals
                new { x1 = t1.rtrnLoc, x2 = t1.resLocGrp } into tj
                from t in tj.DefaultIfEmpty()
                where p.License == license || string.IsNullOrEmpty(license) &&
                p.Overdue != 1
                select new { p, count = (t.c == null ? 0 : t.c) };

                switch (sortExpression)
                {
                case "OwnCountry":
                    q = q.OrderBy(p => p.p.OwnCountry);
                    break;

                case "OwnCountry DESC":
                    q = q.OrderByDescending(p => p.p.OwnCountry);
                    break;

                case "Vc":
                    q = q.OrderBy(p => p.p.Vc);
                    break;

                case "Vc DESC":
                    q = q.OrderByDescending(p => p.p.Vc);
                    break;

                case "Unit":
                    q = q.OrderBy(p => p.p.Unit);
                    break;

                case "Unit DESC":
                    q = q.OrderByDescending(p => p.p.Unit);
                    break;

                case "License":
                    q = q.OrderBy(p => p.p.License);
                    break;

                case "License DESC":
                    q = q.OrderByDescending(p => p.p.License);
                    break;

                case "ModelDesc":
                    q = q.OrderBy(p => p.p.Moddesc);
                    break;

                case "ModelDesc DESC":
                    q = q.OrderByDescending(p => p.p.Moddesc);
                    break;

                case "Location":
                    q = q.OrderBy(p => p.p.Lstwwd);
                    break;

                case "Location DESC":
                    q = q.OrderByDescending(p => p.p.Lstwwd);
                    break;

                case "Operstat":
                    q = q.OrderBy(p => p.p.Op);
                    break;

                case "Operstat DESC":
                    q = q.OrderByDescending(p => p.p.Op);
                    break;

                case "Daysrev":
                    q = q.OrderBy(p => p.p.Nonrev);
                    break;

                case "Daysrev DESC":
                    q = q.OrderByDescending(p => p.p.Nonrev);
                    break;

                case "Matches":
                    q = q.OrderBy(p => p.count);
                    break;

                case "Matches DESC":
                    q = q.OrderByDescending(p => p.count);
                    break;

                default:
                    q = q.OrderBy(p => p.p.Nonrev).ThenBy(p => p.p.Duewwd);
                    break;
                }
                return((from item in q
                        select new FleetMatchEntity
                {
                    OwnCountry = item.p.OwnCountry,
                    Unit = item.p.Unit,
                    License = item.p.License,
                    ModelDesc = item.p.Moddesc,
                    Vc = item.p.Vc,
                    Operstat = item.p.Op,
                    Location = item.p.Lstwwd,
                    Daysrev = item.p.Nonrev.ToString(),
                    CarVan = item.p.CarVan,
                    Matches = item.count.ToString()
                }).ToList());
            }
        }
 public abstract IQueryable <T> GetQueryable(MarsDBDataContext db, IFilterEntity Filters, ICarFilterEntity CarFilters, string SortExpression);
 public abstract IList <T> GetList(IFilterEntity Filters, ICarFilterEntity CarFilters, string SortExpression);
        public IList <IDataTableEntity> getList(IFilterEntity filters)
        {
            using (MarsDBDataContext db = new MarsDBDataContext()) {
                IList <IDataTableEntity> l = new List <IDataTableEntity>();
                var qDetails = new VehicleDetailsQueryable().getQueryable(db);
                var qFilter  = new VehiclesFilterQueryable().getQueryable(filters, db, qDetails);
                IQueryable <ICarSearchDataEntity> qVDFilter;
                switch (filters.VehiclePredicament)
                {
                case 0: qVDFilter = new VehicleDetailsAllQueryable().getQueryable(filters, db, qFilter); break;

                case 1: qVDFilter = new VehicleDetailsOROwnToForeign().getQueryable(filters, db, qFilter); break;

                case 2: qVDFilter = new VehicleDetailsTXToForeignQueryable().getQueryable(filters, db, qFilter); break;

                case 3: qVDFilter = new VehicleDetailsIdleQueryable().getQueryable(filters, db, qFilter); break;

                case 4: qVDFilter = new VehicleDetailsORInBetweenQueryable().getQueryable(filters, db, qFilter); break;

                case 5: qVDFilter = new VehicleDetailsORReturningQueryable().getQueryable(filters, db, qFilter); break;

                case 6: qVDFilter = new VehicleDetailsTXReturningQueryable().getQueryable(filters, db, qFilter); break;

                case 7: qVDFilter = new VehicleDetailsNonRevQueryable().getQueryable(filters, db, qFilter); break;

                default: qVDFilter = qFilter; break;
                }
                IQueryable <IVehiclePredicamentEntity> q1 = from p in qVDFilter
                                                            join own in db.COUNTRies on p.OwnCountry equals own.country1
                                                            join due in db.COUNTRies on p.Duewwd.Substring(0, 2) equals due.country1 into dj
                                                            from what in dj.DefaultIfEmpty()
                                                            join lst in db.COUNTRies on p.Lstwwd.Substring(0, 2) equals lst.country1
                                                            select new VehiclePredicamentEntity
                {
                    ownwwd = own.country_description, duewwd = what.country_description, lstwwd = lst.country_description
                };
                IQueryable <IVehiclePredicamentEntity> q2;
                switch (filters.VehiclePredicament)
                {
                case 1:
                case 2:
                case 3:
                case 4:
                    q2 = from p in q1
                         select new VehiclePredicamentEntity {
                        ownwwd = p.ownwwd, duewwd = (p.duewwd == null || p.duewwd == "") ? p.lstwwd : p.duewwd
                    };
                    break;

                default:
                    q2 = from p in q1
                         select new VehiclePredicamentEntity {
                        ownwwd = p.ownwwd, duewwd = p.lstwwd
                    }; break;
                }
                var grp = (from p in q2
                           group p by new { o = p.ownwwd, d = p.duewwd } into g
                           select new { ownwwd = g.Key.o, duewwd = g.Key.d, sum = g.Key.o.Count() })
                          .OrderBy(p => p.duewwd).ThenBy(p => p.ownwwd);

                foreach (var item in grp)
                {
                    l.Add(new DataTableEntity {
                        header = item.ownwwd, rowDefinition = item.duewwd, theValue = item.sum.ToString()
                    });
                }
                return(l);
            }
        }
示例#18
0
 public IList <IDataTableEntity> getList(IFilterEntity filters)
 {
     return(getList(filters.OwnCountry, filters.nonRev));
 }
示例#19
0
        public IQueryable <ReservationMatchEntity> GetOldDataQueryable(MarsDBDataContext db, IFilterEntity Filters, ICarFilterEntity CarFilters, string SortExpression)
        {
            try
            {
                var tmp = new FleetEuropeActualQueryable().GetQueryable(db);

                IQueryable <RESERVATIONS_EUROPE_ACTUAL> q1 = from p in db.RESERVATIONS_EUROPE_ACTUALs
                                                             join tc1 in db.COUNTRies on p.COUNTRY equals tc1.country1
                                                             where (p.COUNTRY != p.RTRN_LOC.Substring(0, 2)) &&
                                                             (Filters.OwnCountry == p.COUNTRY || Filters.OwnCountry == "" || Filters.OwnCountry == null) &&
                                                             (p.RES_VEH_CLASS == Filters.CarGroup || Filters.CarGroup == "" || Filters.CarGroup == null) &&
                                                             (tc1.active) && // only corporate countries
                                                             (Filters.CarGroup == p.GR_INCL_GOLDUPGR || string.IsNullOrEmpty(Filters.CarGroup)) &&
                                                             (p.RS_ARRIVAL_DATE >= Filters.ReservationStartDate && p.RS_ARRIVAL_DATE <= Filters.ReservationEndDate)   // reservation start dates
                                                             select p;
                q1 = new OldReservationMatchCarSegmentQueryable().GetQueryable(db, q1, Filters.CarSegment);
                q1 = new OldReservationMatchCarClassQueryable().GetQueryable(db, q1, Filters.CarClass);
                q1 = new OldReservationMatchPoolQueryable().GetQueryable(db, q1, Filters.Pool);
                q1 = new OldReservationMatchReturnQueryable().GetQueryable(db, q1, Filters.DueCountry, Filters.DuePool, Filters.DueLocationGroup);

                IQueryable <ReservationMatchEntity> q = from p in q1
                                                        join tLoc in db.CMS_LOCATION_GROUPs on p.CMS_LOC_GRP equals tLoc.cms_location_group_id.ToString()
                                                        join t1 in tmp on new { x0 = p.RTRN_LOC.Substring(0, 2), x1 = tLoc.cms_location_group1 } equals new { x0 = t1.OwningCountry, x1 = t1.CurrentLocation } into tj
                from t in tj.DefaultIfEmpty()
                where (tLoc.cms_location_group1 == Filters.Location || Filters.Location == "" || Filters.Location == null)
                select new ReservationMatchEntity
                {
                    ResLocation            = p.RES_LOC,
                    ResGroup               = p.GR_INCL_GOLDUPGR,
                    ResCheckoutDate        = new DateTime(p.RS_ARRIVAL_DATE.Value.Year, p.RS_ARRIVAL_DATE.Value.Month, p.RS_ARRIVAL_DATE.Value.Day, p.RS_ARRIVAL_TIME.Value.Hour, p.RS_ARRIVAL_TIME.Value.Minute, 0),
                    ResCheckoutLoc         = p.RENT_LOC,
                    ResCheckinLoc          = p.RTRN_LOC,
                    ResId                  = p.RES_ID_NBR,
                    ResNoDaysUntilCheckout = SqlMethods.DateDiffDay(DateTime.Now, p.RS_ARRIVAL_DATE.Value).ToString(),
                    ResNoDaysReserved      = ((int)p.RES_DAYS).ToString(),
                    ResDriverName          = p.CUST_NAME,
                    Matches                = t.Count == null ? "0" : t.Count.ToString()
                };

                switch (SortExpression)
                {
                case "ResLocation": q = q.OrderBy(p => p.ResLocation); break;

                case "ResLocation DESC": q = q.OrderByDescending(p => p.ResLocation); break;

                case "ResGroup": q = q.OrderBy(p => p.ResGroup); break;

                case "ResGroup DESC": q = q.OrderByDescending(p => p.ResGroup); break;

                case "ResCheckoutDate": q = q.OrderBy(p => p.ResCheckoutDate); break;

                case "ResCheckoutDate DESC": q = q.OrderByDescending(p => p.ResCheckoutDate); break;

                case "ResCheckinLoc": q = q.OrderBy(p => p.ResCheckinLoc); break;

                case "ResCheckinLoc DESC": q = q.OrderByDescending(p => p.ResCheckinLoc); break;

                case "ResNoDaysUntilCheckout": q = q.OrderBy(p => p.ResNoDaysUntilCheckout); break;

                case "ResNoDaysUntilCheckout DESC": q = q.OrderByDescending(p => p.ResNoDaysUntilCheckout); break;

                case "ResNoDaysReserved": q = q.OrderBy(p => p.ResNoDaysReserved); break;

                case "ResNoDaysReserved DESC": q = q.OrderByDescending(p => p.ResNoDaysReserved); break;

                case "ResDriverName": q = q.OrderBy(p => p.ResDriverName); break;

                case "ResDriverName DESC": q = q.OrderByDescending(p => p.ResDriverName); break;

                case "ResId": q = q.OrderBy(p => p.ResId); break;

                case "ResId DESC": q = q.OrderByDescending(p => p.ResId); break;

                case "Matches": q = q.OrderBy(p => p.Matches); break;

                case "Matches DESC": q = q.OrderByDescending(p => p.Matches); break;

                default: q = q.OrderBy(p => p.ResNoDaysUntilCheckout).ThenBy(p => p.ResLocation); break;
                }
                return(q);
            }
            catch (Exception ex)
            {
                //      _logger.Error("Exception thrown in ReservationDetails Model, exception = " + ex);
                throw new Exception("Exception thrown in ReservationDetails Model, exception = " + ex);
            }
        }