Beispiel #1
0
        static void InvokeOrderBy <T>(PageableQuery <T> query, LambdaExpression expression, bool descending)
        {
            var orderByMethodName = descending ? "OrderByDescending" : "OrderBy";

            var orderByMethod = typeof(PageableQuery <T>).GetMethod(orderByMethodName);

            var genericOrderByMethod = orderByMethod.MakeGenericMethod(expression.ReturnType);

            genericOrderByMethod.Invoke(query, new [] { expression });
        }
Beispiel #2
0
        public static PageableQuery <T> HandleSorting <T>(this PageableQuery <T> query, HttpRequest request)
        {
            var orderByQuery = request.Query[PageableQueryConstants.OrderByQuery];
            var descedning   = Convert.ToBoolean(request.Query[PageableQueryConstants.DecendingQuery]);

            if (!string.IsNullOrWhiteSpace(orderByQuery))
            {
                var expression = BuildPropertyExpression <T>(orderByQuery);

                InvokeOrderBy(query, expression, descedning);
            }

            return(query);
        }
        public IPageableList <Question> GetPageableQuestions(int testId, string searchString = null,
                                                             IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Question>(pageInfo, question => question.TestId == testId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(question => question.Description.ToLower().Contains(searchString) ||
                                      question.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.QuestionsRepository.GetPageableBy(query));
        }
        public IPageableList<ProjectUser> GetProjectUsers(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<ProjectUser>(pageInfo);
            query.Include(e => e.User);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.User.FullName.ToLower().StartsWith(searchString) || e.User.FullName.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.ProjectUsersRepository.GetPageableBy(query);
            }
        }
        public IPageableList <Test> GetPageableTests(int subjectId, string searchString = null,
                                                     IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Test>(pageInfo, test => test.SubjectId == subjectId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(test => test.Description.ToLower().Contains(searchString) ||
                                      test.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            query.Include(test => test.TestUnlocks);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.TestsRepository.GetPageableBy(query));
        }
Beispiel #6
0
        public IPageableList <Subject> GetSubjectsLecturer(int lecturerId, string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Subject>(pageInfo, e => e.SubjectLecturers.Any(x => x.LecturerId == lecturerId && !e.IsArchive));

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return(repositoriesContainer.SubjectRepository.GetPageableBy(query));
            }
        }
        public IPageableList <Group> GetGroupsPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Group>(pageInfo);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias).Include(g => g.Students);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var groups = repositoriesContainer.GroupsRepository.GetPageableBy(query);
                return(groups);
            }
        }
        public IPageableList<Group> GetGroupsPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Group>(pageInfo);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias).Include(g => g.Students);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var groups = repositoriesContainer.GroupsRepository.GetPageableBy(query);
                return groups;
            }
        }
Beispiel #9
0
        public IPageableList <Project> GetProjects(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Project>(pageInfo);

            query.Include(e => e.Creator);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Title.ToLower().StartsWith(searchString) || e.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return(repositoriesContainer.ProjectsRepository.GetPageableBy(query));
            }
        }
Beispiel #10
0
        public static PageableQuery <T> HandlePaging <T>(this PageableQuery <T> query, HttpRequest request)
        {
            var take = TryParse(request.Query[PageableQueryConstants.TakeQuery]);
            var skip = TryParse(request.Query[PageableQueryConstants.SkipQuery]);

            if (skip.HasValue)
            {
                query.Skip(skip.Value);
            }

            if (take.HasValue)
            {
                query.Take(take.Value);
            }

            return(query);
        }
        public IPageableList <Project> GetUserProjects(int userId, string searchString           = null, IPageInfo pageInfo = null,
                                                       IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Project>(pageInfo);

            query.Include(e => e.Creator.Lecturer)
            .Include(e => e.Creator.Student)
            .Include(e => e.ProjectUsers)
            .AddFilterClause(e => e.ProjectUsers.Any(e2 => e2.UserId == userId));
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Title.ToLower().StartsWith(searchString) || e.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.ProjectsRepository.GetPageableBy(query));
        }
        public IPageableList <Bug> GetAllBugs(string searchString = null, IPageInfo pageInfo = null,
                                              IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Bug>(pageInfo);

            query.Include(e => e.Status);
            query.Include(e => e.Severity);
            query.Include(e => e.Symptom);
            query.Include(e => e.Project);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Summary.ToLower().StartsWith(searchString) || e.Summary.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            return(repositoriesContainer.BugsRepository.GetPageableBy(query));
        }
        public IPageableList<Bug> GetAllBugs(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Bug>(pageInfo);

            query.Include(e => e.Status);
            query.Include(e => e.Severity);
            query.Include(e => e.Symptom);
            query.Include(e => e.Project);
            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Summary.ToLower().StartsWith(searchString) || e.Summary.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.BugsRepository.GetPageableBy(query);
            }
        }
        public IPageableList<Student> GetStudentsPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Student>(pageInfo);
            query.Include(e => e.Group).Include(e => e.User);

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                searchString = searchString.Replace(" ", string.Empty);

                //search by full name
                query.AddFilterClause(
                    e => (e.LastName + e.FirstName + e.MiddleName).Contains(searchString)
                    || e.Group.Name.ToLower().Contains(searchString));
            }

            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var students = repositoriesContainer.StudentsRepository.GetPageableBy(query);
                return students;
            }
        }
        public IPageableList<Lecturer> GetLecturersPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Lecturer>(pageInfo);
            query.Include(l => l.SubjectLecturers).Include(e => e.User);

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                searchString = searchString.Replace(" ", string.Empty);

                //search by full name
                query.AddFilterClause(
                    e => (e.LastName + e.FirstName + e.MiddleName).Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var lecturers = repositoriesContainer.LecturerRepository.GetPageableBy(query);
                return lecturers;
            }
        }
Beispiel #16
0
        public IPageableList <Lecturer> GetLecturersPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Lecturer>(pageInfo);

            query.Include(l => l.SubjectLecturers).Include(e => e.User);

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                searchString = searchString.Replace(" ", string.Empty);

                //search by full name
                query.AddFilterClause(
                    e => (e.LastName + e.FirstName + e.MiddleName).Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var lecturers = repositoriesContainer.LecturerRepository.GetPageableBy(query);
                return(lecturers);
            }
        }
Beispiel #17
0
        public IPageableList <Student> GetStudentsPageable(string searchString = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <Student>(pageInfo);

            query.Include(e => e.Group).Include(e => e.User);

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                searchString = searchString.Replace(" ", string.Empty);

                //search by full name
                query.AddFilterClause(
                    e => (e.LastName + e.FirstName + e.MiddleName).Contains(searchString) ||
                    e.Group.Name.ToLower().Contains(searchString));
            }

            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var students = repositoriesContainer.StudentsRepository.GetPageableBy(query);
                return(students);
            }
        }
        public IPageableList <UserMessages> GetUserMessagesPageable(int userId, bool?incoming = null,
                                                                    string searchString       = null, IPageInfo pageInfo = null, IEnumerable <ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery <UserMessages>(pageInfo);

            if (!incoming.HasValue)
            {
                query.AddFilterClause(e => e.AuthorId == userId || e.Recipient.Id == userId);
            }
            else
            {
                if (incoming.Value)
                {
                    query.AddFilterClause(e => e.Recipient.Id == userId);
                }
                else
                {
                    query.AddFilterClause(e => e.AuthorId == userId);
                }
            }

            query.Include(e => e.Message.Attachments).Include(e => e.Recipient)
            .Include(e => e.Author.Lecturer).Include(e => e.Author.Student);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Message.Text.ToLower().StartsWith(searchString) ||
                    e.Message.Text.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using var repositoriesContainer = new LmPlatformRepositoriesContainer();
            var userMessages = repositoriesContainer.RepositoryFor <UserMessages>().GetPageableBy(query);

            return(userMessages);
        }
        public IPageableList<Test> GetPageableTests(int subjectId, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Test>(pageInfo, test => test.SubjectId == subjectId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(test => test.Description.ToLower().Contains(searchString) || 
                    test.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            query.Include(test => test.TestUnlocks);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.TestsRepository.GetPageableBy(query);
            }
        }
        public IPageableList<Question> GetPageableQuestions(int testId, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Question>(pageInfo, question => question.TestId == testId);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(question => question.Description.ToLower().Contains(searchString) ||
                    question.Title.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.QuestionsRepository.GetPageableBy(query);
            }
        }
Beispiel #21
0
 public static async Task <PageableResponse <T> > ToPageableResponse <T>(this PageableQuery <T> query)
 {
     return(new PageableResponse <T>(query.ToList(), await query.GetTotalRecords()));
 }
        public IPageableList<UserMessages> GetUserMessagesPageable(int userId, bool? incoming = null, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<UserMessages>(pageInfo);

            if (!incoming.HasValue)
            {
                query.AddFilterClause(e => e.AuthorId == userId || e.Recipient.Id == userId);
            }
            else
            {
                if (incoming.Value)
                {
                    query.AddFilterClause(e => e.Recipient.Id == userId);
                }
                else
                {
                    query.AddFilterClause(e => e.AuthorId == userId);
                }
            }

            query.Include(e => e.Message.Attachments).Include(e => e.Recipient)
              .Include(e => e.Author.Lecturer).Include(e => e.Author.Student);

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Message.Text.ToLower().StartsWith(searchString) || e.Message.Text.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                var userMessages = repositoriesContainer.RepositoryFor<UserMessages>().GetPageableBy(query);
                return userMessages;
            }
        }
        public IPageableList<Subject> GetSubjectsLecturer(int lecturerId, string searchString = null, IPageInfo pageInfo = null, IEnumerable<ISortCriteria> sortCriterias = null)
        {
            var query = new PageableQuery<Subject>(pageInfo, e => e.SubjectLecturers.Any(x => x.LecturerId == lecturerId && !e.IsArchive));

            if (!string.IsNullOrEmpty(searchString))
            {
                query.AddFilterClause(
                    e => e.Name.ToLower().StartsWith(searchString) || e.Name.ToLower().Contains(searchString));
            }

            query.OrderBy(sortCriterias);
            using (var repositoriesContainer = new LmPlatformRepositoriesContainer())
            {
                return repositoriesContainer.SubjectRepository.GetPageableBy(query);
            }
        }
Beispiel #24
0
        protected PageableQuery <ShippingLoadViewData> GetLoadsBySearchType(ShipperSearchTypeData searchType, int max, DateTime?visibilityPickupWindowDate = null, bool topsToGoCarrier = false, bool p44Carrier = false)
        {
            var userPrimaryCustomerId       = _context.Users.SingleOrDefault(u => u.IdentUserId == _userContext.UserId)?.PrimaryCustomerId;
            var onLoadShopTransactionTypes  = new[] { "New", "Updated" };
            var bookedUserTransActionsTypes = new[] { "Accepted", "Pending" };
            var currentDate   = _dateTime.Now;
            var isMarketplace = ShipperSearchTypeData.Posted == searchType;

            visibilityPickupWindowDate = visibilityPickupWindowDate ?? currentDate;

            if (userPrimaryCustomerId.HasValue)
            {
                //var transactionTypeIds = MapSearchTypeToTransactionList(c);
                //var shippingLoads = _context.ShippingLoadViews.FromSql($"EXECUTE spGetLoadsByShipperAndTranType @CustomerId = {userPrimaryCustomerId}, @TransactionTypes = {transactionTypeIds}");

                var transTypes = _serviceUtilities.MapShipperSearchTypeToTransactionList(searchType);

                if (isMarketplace)
                {
                    return((from l in _context.Loads
                            join c in _context.Customers on l.CustomerId equals c.CustomerId
                            join OriginLoadStop in _context.LoadStops.Where(ls => ls.StopNbr == 1) on l.LoadId equals OriginLoadStop.LoadId
                            join DestinationLoadStop in _context.LoadStops on new { l.LoadId, StopNbr = (int)l.Stops } equals new { DestinationLoadStop.LoadId, DestinationLoadStop.StopNbr }
                            where
                            transTypes.Contains(l.LatestTransactionTypeId) &&
                            l.CustomerId == userPrimaryCustomerId
                            select new ShippingLoadViewData()
                    {
                        LoadId = l.LoadId,
                        CustomerId = l.CustomerId,
                        ReferenceLoadId = l.ReferenceLoadId,
                        ReferenceLoadDisplay = l.ReferenceLoadDisplay,
                        Stops = l.Stops,
                        Miles = l.Miles,
                        LineHaulRate = l.LineHaulRate,
                        SmartSpotRate = l.SmartSpotRate,
                        FuelRate = l.FuelRate,
                        Commodity = l.Commodity,
                        Weight = l.Weight,
                        IsHazMat = l.IsHazMat,
                        TransactionTypeId = l.LatestTransactionTypeId,
                        DistanceFromOrig = 0,
                        DistanceFromDest = 0,
                        Onloadshop = onLoadShopTransactionTypes.Contains(l.LatestTransactionTypeId),
                        CustomerLoadTypeId = l.CustomerLoadTypeId,

                        //Equipment
                        EquipmentId = l.EquipmentId,
                        EquipmentType = l.Equipment.EquipmentDesc,
                        EquipmentCategoryId = l.Equipment.CategoryId ?? "Unknown",
                        EquipmentCategoryDesc = l.Equipment.CategoryEquipmentDesc,
                        EquipmentTypeDisplay = l.Equipment.CategoryId == null ? l.Equipment.EquipmentDesc : l.Equipment.CategoryEquipmentDesc,

                        OriginLat = (double)OriginLoadStop.Latitude,
                        OriginLng = (double)OriginLoadStop.Longitude,
                        OriginCity = OriginLoadStop.City,
                        OriginState = OriginLoadStop.State,
                        OriginEarlyDtTm = OriginLoadStop.EarlyDtTm,
                        OriginLateDtTm = OriginLoadStop.LateDtTm,
                        DestLat = (double)DestinationLoadStop.Latitude,
                        DestLng = (double)DestinationLoadStop.Longitude,
                        DestCity = DestinationLoadStop.City,
                        DestState = DestinationLoadStop.State,
                        DestEarlyDtTm = DestinationLoadStop.EarlyDtTm,
                        DestLateDtTm = DestinationLoadStop.LateDtTm,
                        IsEstimatedFSC = FscUtilities.IsEstimatedFsc(c, (OriginLoadStop.EarlyDtTm ?? OriginLoadStop.LateDtTm), _dateTime.Now),
                        //Needed so the quick filter works
                        Scac = null,
                        // Load entire entity to prevent EF from doing a subselect
                        LoadServiceTypes = l.LoadServiceTypes
                    })
                           .OrderByDescending(l => l.OriginLateDtTm)
                           .ToPageableQuery(shippingLoadList =>
                    {
                        foreach (var l in shippingLoadList)
                        {
                            l.ShowVisibilityWarning =
                                l.OriginLateDtTm > currentDate &&
                                l.OriginLateDtTm <= visibilityPickupWindowDate &&
                                l.DestLateDtTm >= currentDate &&
                                ((topsToGoCarrier && p44Carrier && l.VisibilityPhoneNumber == null && !l.MobileExternallyEntered && l.VisibilityTruckNumber == null) ||
                                 (topsToGoCarrier && !p44Carrier && l.VisibilityPhoneNumber == null && !l.MobileExternallyEntered) ||
                                 (!topsToGoCarrier && p44Carrier && l.VisibilityTruckNumber == null));
                        }
                        return Task.CompletedTask;
                    }, max));
                }
                else
                {
                    return((from l in _context.Loads
                            join c in _context.Customers on l.CustomerId equals c.CustomerId
                            join lt in _context.LoadTransactions on l.LoadId equals lt.LoadId
                            join lc in _context.LoadClaims on lt.LoadTransactionId equals lc.LoadTransactionId into lcJoin
                            from lc in lcJoin.DefaultIfEmpty()
                            join claimUser in _context.Users on lc.UserId equals claimUser.UserId into claimUserJoin
                            from claimUser in claimUserJoin.DefaultIfEmpty()
                            join claimScac in _context.CarrierScacs on lc.Scac equals claimScac.Scac into claimScacJoin
                            from claimScac in claimScacJoin.DefaultIfEmpty()
                            join claimCarrier in _context.Carriers on claimScac.CarrierId equals claimCarrier.CarrierId into claimCarrierJoin
                            from claimCarrier in claimCarrierJoin.DefaultIfEmpty()
                            join OriginLoadStop in _context.LoadStops.Where(ls => ls.StopNbr == 1) on l.LoadId equals OriginLoadStop.LoadId
                            join DestinationLoadStop in _context.LoadStops on new { l.LoadId, StopNbr = (int)l.Stops } equals new { DestinationLoadStop.LoadId, DestinationLoadStop.StopNbr }
                            where
                            transTypes.Contains(l.LatestTransactionTypeId) &&
                            l.CustomerId == userPrimaryCustomerId &&
                            (lc.LoadClaimId == (from lt in _context.LoadTransactions
                                                join lc in _context.LoadClaims on lt.LoadTransactionId equals lc.LoadTransactionId
                                                where lt.LoadId == l.LoadId
                                                orderby lc.CreateDtTm descending
                                                select lc).FirstOrDefault().LoadClaimId)
                            select new ShippingLoadViewData()
                    {
                        LoadId = l.LoadId,
                        CustomerId = l.CustomerId,
                        ReferenceLoadId = l.ReferenceLoadId,
                        ReferenceLoadDisplay = l.ReferenceLoadDisplay,
                        Stops = l.Stops,
                        Miles = l.Miles,
                        LineHaulRate = lc != null ? lc.LineHaulRate : l.LineHaulRate,
                        SmartSpotRate = l.SmartSpotRate,
                        FuelRate = l.FuelRate,
                        Commodity = l.Commodity,
                        Weight = l.Weight,
                        IsHazMat = l.IsHazMat,
                        TransactionTypeId = l.LatestTransactionTypeId,
                        DistanceFromOrig = 0,
                        DistanceFromDest = 0,
                        Onloadshop = onLoadShopTransactionTypes.Contains(l.LatestTransactionTypeId),
                        CustomerLoadTypeId = l.CustomerLoadTypeId,

                        //Equipment
                        EquipmentId = l.EquipmentId,
                        EquipmentType = l.Equipment.EquipmentDesc,
                        EquipmentCategoryId = l.Equipment.CategoryId ?? "Unknown",
                        EquipmentCategoryDesc = l.Equipment.CategoryEquipmentDesc,
                        EquipmentTypeDisplay = l.Equipment.CategoryId == null ? l.Equipment.EquipmentDesc : l.Equipment.CategoryEquipmentDesc,

                        OriginLat = (double)OriginLoadStop.Latitude,
                        OriginLng = (double)OriginLoadStop.Longitude,
                        OriginCity = OriginLoadStop.City,
                        OriginState = OriginLoadStop.State,
                        OriginEarlyDtTm = OriginLoadStop.EarlyDtTm,
                        OriginLateDtTm = OriginLoadStop.LateDtTm,
                        DestLat = (double)DestinationLoadStop.Latitude,
                        DestLng = (double)DestinationLoadStop.Longitude,
                        DestCity = DestinationLoadStop.City,
                        DestState = DestinationLoadStop.State,
                        DestEarlyDtTm = DestinationLoadStop.EarlyDtTm,
                        DestLateDtTm = DestinationLoadStop.LateDtTm,
                        IsEstimatedFSC = FscUtilities.IsEstimatedFsc(c, (OriginLoadStop.EarlyDtTm ?? OriginLoadStop.LateDtTm), _dateTime.Now),

                        //Load Claim
                        Scac = lc.Scac,
                        BookedUser = claimUser.Username,
                        BookedUserCarrierName = claimCarrier.CarrierName,
                        BillingLoadId = lc.BillingLoadId,
                        BillingLoadDisplay = lc.BillingLoadDisplay,
                        VisibilityPhoneNumber = lc.VisibilityPhoneNumber,
                        VisibilityTruckNumber = lc.VisibilityTruckNumber,
                        VisibilityChgDtTm = lc.VisibilityChgDtTm,
                        MobileExternallyEntered = lc.MobileExternallyEntered,
                        // Load entire entity to prevent EF from doing a subselect
                        LoadServiceTypes = l.LoadServiceTypes
                    })
                           .OrderByDescending(l => l.OriginLateDtTm)
                           .ToPageableQuery(shippingLoadList =>
                    {
                        foreach (var l in shippingLoadList)
                        {
                            l.ShowVisibilityWarning =
                                l.OriginLateDtTm > currentDate &&
                                l.OriginLateDtTm <= visibilityPickupWindowDate &&
                                l.DestLateDtTm >= currentDate &&
                                ((topsToGoCarrier && p44Carrier && l.VisibilityPhoneNumber == null && !l.MobileExternallyEntered && l.VisibilityTruckNumber == null) ||
                                 (topsToGoCarrier && !p44Carrier && l.VisibilityPhoneNumber == null && !l.MobileExternallyEntered) ||
                                 (!topsToGoCarrier && p44Carrier && l.VisibilityTruckNumber == null));
                        }
                        return Task.CompletedTask;
                    }, max));
                }
            }

            return(PageableQuery <ShippingLoadViewData> .Empty());
        }