public IGridPageDto <IVehicleMakeDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            var rows = Conn.Query <VehicleMakeDto>("Repair.usp_GetVehicleMakes @search", new { search = searchPhrase })
                       .Distinct()
                       .ToList();

            // Create Result.
            var result = new GridPageDto <IVehicleMakeDto>
            {
                Current = pageNumber,
                Total   = rows.Count
            };

            var sorted = !string.IsNullOrEmpty(sort)
                ? rows.OrderBy(sort)
                : rows.OrderBy(d => d.VehicleMakeName);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.Rows     = page;
            result.RowCount = result.Rows.Count();

            return(result);
        }
        internal static IGridPageDto <T> GetGridPageFromCollection <T>(this ICollection <T> results, ServiceArgs args)
        {
            // Load Grid Settings.
            var currentPage = (int)(args?["CurrentPage"] ?? 0);
            var rowCount    = (int)(args?["RowCount"] ?? 0);
            var sortOrder   = args?["SortOrder"]?.ToString();

            // Create Results.
            var result = new GridPageDto <T>
            {
                Current = currentPage,
                Total   = results.Count,
            };

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sortOrder) ? results : results?.OrderBy(sortOrder);

            // Get Page.
            var page = rowCount < 0 ? sorted : sorted.Skip((currentPage - 1) * rowCount).Take(rowCount);

            // Set Page.
            result.Rows     = page.ToList();
            result.RowCount = (int)result.Rows?.Count();

            return(result);
        }
예제 #3
0
        public IGridPageDto <IShopDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Create Result.
            var result = new GridPageDto <IShopDto>
            {
                Current = pageNumber,
                Rows    = new List <IShopDto>()
            };

            if (!UserHasRoles(ApplicationRoles.ShopView, ApplicationRoles.ShopEdit))
            {
                return(result);
            }

            // Search Shops.
            var shops = GetShops(search: searchPhrase);

            // Count Results.
            result.Total = shops.Count();

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? shops?.OrderBy(u => u.Name) : shops?.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.RowCount = page.Count();
            result.Rows     = page;


            return(result);
        }
        public IGridPageDto <IEstimatePlanDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            var rows = Db.EstimatePlans.AsQueryable()
                       .Include(d => d.EstimatePlanVehicles)
                       .Include(i => i.EstimatePlanVehicles.Select(d => d.VehicleMake));

            rows = rows.Where(d => d.Name.Contains(searchPhrase) ||
                              d.Description.Contains(searchPhrase));

            // Create Result.
            var result = new GridPageDto <IEstimatePlanDto>
            {
                Current = pageNumber,
                Total   = rows.Count()
            };

            var sorted = !string.IsNullOrEmpty(sort)
                ? rows.OrderBy(sort)
                : rows.OrderBy(d => d.Name);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.Rows     = Mapper.Map <IEnumerable <IEstimatePlanDto> >(page.ToList());
            result.RowCount = result.Rows.Count();

            return(result);
        }
        public IGridPageDto <IPricingPlanDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Search Database.
            var planDictionary = new Dictionary <int, PricingPlanDto>();
            var rows           = Conn.Query <PricingPlanDto, PricingPlanLineItemDto, PricingPlanDto>("Billing.usp_GetPricingPlans @Offset, @Search",
                                                                                                     (p, c) =>
            {
                PricingPlanDto plan;

                if (!planDictionary.TryGetValue(p.PricingPlanId, out plan))
                {
                    plan           = p;
                    plan.LineItems = new List <PricingPlanLineItemDto>();
                    planDictionary.Add(plan.PricingPlanId, plan);
                }

                if (c == null)
                {
                    return(plan);
                }

                (plan.LineItems as List <PricingPlanLineItemDto>)?.Add(c);

                return(plan);
            },
                                                                                                     new { Offset = User.UserUtcOffset, Search = searchPhrase },
                                                                                                     splitOn: "PlanGroup")
                                 .Distinct()
                                 .ToList();

            // Create Result.
            var result = new GridPageDto <IPricingPlanDto>
            {
                Current = pageNumber,
                Total   = rows.Count
            };

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? rows.OrderBy(s => s.PricingPlanName) : rows.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.Rows     = page;
            result.RowCount = result.Rows.Count();

            return(result);
        }
예제 #6
0
        public IGridPageDto <IAccountDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Create Result
            var result = new GridPageDto <IAccountDto>
            {
                Current = pageNumber,
                Rows    = new List <IAccountDto>()
            };

            if (!UserHasRoles(ApplicationRoles.AccountView, ApplicationRoles.AccountEdit))
            {
                return(result);
            }

            // Search Accounts.
            var shops = string.IsNullOrEmpty(searchPhrase) ? AllowedAccounts
                : AllowedAccounts.Where(s => s.Name.Contains(searchPhrase) || s.Address1.Contains(searchPhrase) ||
                                        s.Address2.Contains(searchPhrase) || s.City.Contains(searchPhrase) ||
                                        s.State.Name.Contains(searchPhrase) || s.Zip.Contains(searchPhrase) ||
                                        (s.EmployeeGuid != null && s.Employee.DisplayName.Contains(searchPhrase)) || s.Phone.Contains(searchPhrase) || s.Fax.Contains(searchPhrase));

            // Count Results.
            result.Total = shops.Count();

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? shops?.OrderBy(u => u.Name) : shops?.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.RowCount = page.Count();
            result.Rows     = page.Include(i => i.AccountUsers)
                              .Include(i => i.AccountUsers.Select(d => d.User))
                              .Include(a => a.State)
                              .Include(a => a.Employee)
                              .Include(a => a.AccountUsers)
                              .Include(a => a.AccountUsers.Select(au => au.User))
                              .ToList().Select(Mapper.Map <AccountDto>);

            return(result);
        }
예제 #7
0
        public IGridPageDto <IGroupDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Create Result
            var result = new GridPageDto <IGroupDto>
            {
                Current = pageNumber,
                Rows    = new List <IGroupDto>()
            };

            if (!UserHasRoles(ApplicationRoles.GroupView, ApplicationRoles.GroupEdit))
            {
                return(result);
            }

            // Search Users.
            var groups = string.IsNullOrEmpty(searchPhrase)
                ? AllowedGroups
                : AllowedGroups.Where(g => g.Name.Contains(searchPhrase) || g.Description.Contains(searchPhrase) ||
                                      g.Roles.Any(r => r.Role.Name.Contains(searchPhrase)));

            // Count Results.
            result.Total = groups.Count();

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? groups?.OrderBy(g => g.Name) : groups?.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.RowCount = page.Count();
            result.Rows     = page
                              .Include(u => u.Roles)
                              .Include(u => u.Roles.Select(r => r.Role))
                              .Include(g => g.GroupUsers)
                              .Include(g => g.GroupUsers.Select(gu => gu.User))
                              .ToList().Select(Mapper.Map <GroupDto>);

            return(result);
        }
예제 #8
0
        public IGridPageDto <IUserDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Create Result.
            var result = new GridPageDto <IUserDto>
            {
                Current = pageNumber,
                Rows    = new List <IUserDto>()
            };

            if (!UserHasRoles(ApplicationRoles.UserView, ApplicationRoles.UserEdit))
            {
                return(result);
            }

            // Search Users.
            var users = string.IsNullOrEmpty(searchPhrase) ? AllowedUsers
                        : AllowedUsers.Where(u => u.Email.Contains(searchPhrase) || u.LastName.Contains(searchPhrase) ||
                                             (u.FirstName + " " + u.LastName).Contains(searchPhrase) ||
                                             (u.LastName + ", " + u.FirstName).Contains(searchPhrase) ||
                                             u.FirstName.Contains(searchPhrase) || u.JobTitle.Contains(searchPhrase) ||
                                             u.ContactNumber.Contains(searchPhrase) || u.PhoneNumber.Contains(searchPhrase) ||
                                             u.UserGroups.Any(g => g.Group.Name.Contains(searchPhrase)) || u.UserRoles.Any(r => r.Role.Name.Contains(searchPhrase)) ||
                                             u.UserAccounts.Any(a => a.Account.Name.Contains(searchPhrase)) || u.UserShops.Any(s => s.Shop.Name.Contains(searchPhrase)));

            // Count Results.
            result.Total = users.Count();

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? users?.OrderBy(u => u.Email) : users?.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.RowCount = page.Count();
            result.Rows     = page.Include(u => u.UserAccounts).Include(u => u.UserShops).Include(u => u.UserGroups).Include(x => x.EmployeeAccounts).Include(x => x.EmployeeShops).Select(Mapper.Map <UserDto>);

            return(result);
        }
예제 #9
0
        public IGridPageDto <IReleaseNoteDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Create Result
            var result = new GridPageDto <IReleaseNoteDto>
            {
                Current = pageNumber,
                Rows    = new List <IReleaseNoteDto>()
            };

            if (!UserHasRoles(ApplicationRoles.ReleaseNoteView, ApplicationRoles.ReleaseNoteEdit))
            {
                return(result);
            }

            var query = GetReleaseNoteQuery();

            // Search Release Notess.
            var releaseNotes = string.IsNullOrEmpty(searchPhrase) ? query
                : query.Where(s => s.ReleaseNote.Contains(searchPhrase) || s.Summary.Contains(searchPhrase) ||
                              s.Version.Contains(searchPhrase) || s.DevelopmentId.Contains(searchPhrase) || s.UpdatedBy.Contains(searchPhrase));

            // Count Results.
            result.Total = releaseNotes.Count();

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? releaseNotes?.OrderBy(u => u.UpdatedDt) : releaseNotes?.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.RowCount = page.Count();
            result.Rows     = page.ToList();

            return(result);
        }
        public IGridPageDto <IWorkTypeGroupDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            // Load Records.
            var rows = Conn.Query <WorkTypeGroupDto>("Scan.usp_GetWorkTypeGroups @Search", new { Search = searchPhrase }).ToList();

            // Create Result.
            var result = new GridPageDto <IWorkTypeGroupDto>
            {
                Current = pageNumber,
                Total   = rows.Count
            };

            // Sort Dataset.
            var sorted = string.IsNullOrEmpty(sort) ? rows.OrderBy(s => s.WorkTypeGroupSortOrder) : rows.OrderBy(sort);

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.Rows     = page;
            result.RowCount = result.Rows.Count();

            return(result);
        }
        public IGridPageDto <ITechnicianProfileDto> GetAllByGridPage(int pageNumber, int pageSize, string sort, string searchPhrase)
        {
            var rows = AvailableProfiles
                       .Include(d => d.User)
                       .Include(d => d.VehicleMakes)
                       .Include(d => d.VehicleMakes.Select(m => m.VehicleMake))
                       .Include(d => d.Schedules)
                       .Include(d => d.TimeOffEntries);

            rows = rows.Where(d => d.DisplayName.Contains(searchPhrase) ||
                              d.EmployeeId.Contains(searchPhrase) ||
                              d.OtherNotes.Contains(searchPhrase) ||
                              d.User.UserName.Contains(searchPhrase) ||
                              d.Location.Name.Contains(searchPhrase) ||
                              d.VehicleMakes.Select(m => m.VehicleMake).Any(m => m.VehicleMakeName.Contains(searchPhrase)));

            // Create Result.
            var result = new GridPageDto <ITechnicianProfileDto>
            {
                Current = pageNumber,
                Total   = rows.Count()
            };

            var sorted = !string.IsNullOrEmpty(sort)
                ? rows.OrderBy(sort)
                : rows.OrderBy("DisplayName");

            // Get Page.
            var page = pageSize < 0 ? sorted : sorted.Skip((pageNumber - 1) * pageSize).Take(pageSize);

            // Set Page.
            result.Rows     = page.ToList().Select(p => Mapper.Map <TechnicianProfileEntityModel, TechnicianProfileDto>(p, opts => opts.Items["TimeZoneInfoId"] = User.TimeZoneInfoId));
            result.RowCount = result.Rows.Count();

            return(result);
        }