Example #1
0
        public ActionResult Index(bool?active, int?location, string order, int?page, string query, int?show, string sort, int?trailer, int?type, int?vid)
        {
            IEnumerable <Vehicle> model = CarraraSQL.Vehicles;

            if (string.IsNullOrEmpty(query))
            {
                // Filters
                if (active.HasValue)
                {
                    model = model.Where(x => x.IsActive == active.Value);
                }
                if (location.HasValue)
                {
                    model = model.Where(x => x.LocationID == location.Value);
                }
                if (trailer.HasValue)
                {
                    model = model.Where(x => x.TrailerTypeID == trailer.Value);
                }
                if (type.HasValue)
                {
                    model = model.Where(x => x.VehicleTypeID == type.Value);
                }
                // Sort
                order = string.IsNullOrEmpty(order) ? "asc" : order;
                sort  = string.IsNullOrEmpty(sort) ? "code" : sort;
                bool asc = order == "asc";
                switch (sort)
                {
                case "name":
                    model = asc ? model.OrderBy(x => x.VehicleName) : model.OrderByDescending(x => x.VehicleName);
                    break;

                case "account-number":
                    model = asc ? model.OrderBy(x => x.VehicleNumber) : model.OrderByDescending(x => x.VehicleNumber);
                    break;

                case "vehicle-type":
                    model = asc ? model.OrderBy(x => x.VehicleType.VehicleTypeName) : model.OrderByDescending(x => x.VehicleType.VehicleTypeName);
                    break;

                /*case "driver":
                 *  model = asc ?
                 *      model.OrderBy(x => !x.DefaultDriverID.HasValue).ThenBy(x => x.DefaultDriverID.HasValue ? x.Employee.LastFirst : "") :
                 *      model.OrderByDescending(x => x.DefaultDriverID.HasValue && x.Employee.LastFirst != null).ThenByDescending(x => x.DefaultDriverID.HasValue ? x.Employee.LastFirst : null);
                 *  break;*/
                case "location":
                    model = asc ?
                            model.OrderBy(x => !x.LocationID.HasValue).ThenBy(x => x.LocationID.HasValue ? x.Location.LocationName : "") :
                            model.OrderByDescending(x => x.LocationID.HasValue && x.Location.LocationName != null).ThenByDescending(x => x.LocationID.HasValue ? x.Location.LocationName : null);
                    break;

                case "ezpass":
                    model = asc ? model.OrderBy(x => x.EZPass) : model.OrderByDescending(x => x.EZPass);
                    break;

                case "active":
                    model = asc ? model.OrderBy(x => x.IsActive) : model.OrderByDescending(x => x.IsActive);
                    break;

                case "length":
                    model = asc ? model.OrderBy(x => x.Length) : model.OrderByDescending(x => x.Length);
                    break;

                case "make":
                    model = asc ? model.OrderBy(x => x.Make) : model.OrderByDescending(x => x.Make);
                    break;

                case "registration":
                    model = asc ? model.OrderBy(x => x.Registration) : model.OrderByDescending(x => x.Registration);
                    break;

                case "registration-date":
                    model = asc ? model.OrderBy(x => x.RegistrationDate) : model.OrderByDescending(x => x.RegistrationDate);
                    break;

                case "registration-expiration":
                    model = asc ? model.OrderBy(x => x.RegistrationExpiration) : model.OrderByDescending(x => x.RegistrationExpiration);
                    break;

                case "vin":
                    model = asc ? model.OrderBy(x => x.VIN) : model.OrderByDescending(x => x.VIN);
                    break;

                case "weight":
                    model = asc ? model.OrderBy(x => x.Weight) : model.OrderByDescending(x => x.Weight);
                    break;

                case "year":
                    model = asc ? model.OrderBy(x => x.Year) : model.OrderByDescending(x => x.Year);
                    break;

                case "trailer-type":
                    model = asc ?
                            model.OrderBy(x => !x.TrailerTypeID.HasValue).ThenBy(x => x.LocationID.HasValue ? x.TrailerType.TrailerTypeName : "") :
                            model.OrderByDescending(x => x.TrailerTypeID.HasValue && x.TrailerType.TrailerTypeName != null).ThenByDescending(x => x.TrailerTypeID.HasValue ? x.TrailerType.TrailerTypeName : null);
                    break;

                case "next-oil":
                    model = asc ? model.OrderBy(x => x.NextOil) : model.OrderByDescending(x => x.NextOil);
                    break;

                case "next-grease":
                    model = asc ? model.OrderBy(x => x.NextGrease) : model.OrderByDescending(x => x.NextGrease);
                    break;

                case "next-service":
                    model = asc ? model.OrderBy(x => x.NextService) : model.OrderByDescending(x => x.NextService);
                    break;

                case "current-meter-reading":
                    model = asc ? model.OrderBy(x => x.CurrentMeterReading) : model.OrderByDescending(x => x.CurrentMeterReading);
                    break;

                case "last-oil":
                    model = asc ? model.OrderBy(x => x.LastOil) : model.OrderByDescending(x => x.LastOil);
                    break;

                case "last-grease":
                    model = asc ? model.OrderBy(x => x.LastGrease) : model.OrderByDescending(x => x.LastGrease);
                    break;

                case "last-service":
                    model = asc ? model.OrderBy(x => x.LastService) : model.OrderByDescending(x => x.LastService);
                    break;

                case "should-export-usage":
                    model = asc ? model.OrderBy(x => x.ShouldExportUsage) : model.OrderByDescending(x => x.ShouldExportUsage);
                    break;

                case "is-on-road":
                    model = asc ? model.OrderBy(x => x.IsOnRoad) : model.OrderByDescending(x => x.IsOnRoad);
                    break;

                case "number-of-axles":
                    model = asc ? model.OrderBy(x => x.NumberOfAxles) : model.OrderByDescending(x => x.NumberOfAxles);
                    break;

                case "gross-axle-weight-rating":
                    model = asc ? model.OrderBy(x => x.GrossAxleWeightRating) : model.OrderByDescending(x => x.GrossAxleWeightRating);
                    break;

                case "gross-vehicle-weight-rating":
                    model = asc ? model.OrderBy(x => x.GrossVehicleWeightRating) : model.OrderByDescending(x => x.GrossVehicleWeightRating);
                    break;

                default:
                    model = asc ? model.OrderBy(x => x.VehicleCode) : model.OrderByDescending(x => x.VehicleCode);
                    break;
                }
            }
            else
            {
                if (vid.HasValue)
                {
                    Vehicle vehicle = CarraraSQL.Vehicles.Find(vid);
                    if (vehicle != null)
                    {
                        RouteValueDictionary parameters = Request.QueryString.ToRouteValues();
                        return(RedirectToAction("Edit", parameters.CopyAndAdd("guid", vid)));
                    }
                }
                // Search by query
                Search.Results <Vehicle> search = Search.Vehicles(active, CarraraSQL, query);
                model           = search.List;
                Page.Title      = TempData["Page.Title"] != null ? TempData["Page.Title"].ToString() : string.IsNullOrEmpty(search.DidYouMean) ? "Found " + search.TotalHits + " result" + (search.TotalHits == 1 ? "" : "s") + " for ‘" + query + "’" : "Did You Mean ‘" + search.DidYouMean + "’?";
                ViewBag.Results = search.TotalHits;
            }
            // Return Results
            Page.Title = TempData["Page.Title"] != null ? TempData["Page.Title"].ToString() : "Manage Vehicles";
            page       = page ?? 1;
            show       = show ?? 40;
            int count = model.Count() == 0 ? 1 : model.Count();

            if (show.Value > count || show == 0)
            {
                show = count;
                page = 1;
            }
            int?max = (count / show) + 1;

            if (page > max)
            {
                page = max;
            }
            return(View(model.ToPagedList(page.Value, show.Value)));
        }
Example #2
0
        public ActionResult Index(bool?active, int?department, int?location, string order, int?page, string query, int?show, string sort, int?status, string uid)
        {
            IEnumerable <Employee> model = CarraraSQL.Employees;

            if (string.IsNullOrEmpty(query))
            {
                // Filter
                if (department.HasValue)
                {
                    model = model.Where(x => x.DepartmentID == department.Value);
                }
                if (location.HasValue)
                {
                    model = model.Where(x => x.LocationID == location.Value);
                }
                if (status.HasValue)
                {
                    model = model.Where(x => x.EmployeeStatusID == status.Value);
                }
                else
                {
                    model = model.Where(x => x.EmployeeStatusID.Value != 2);
                }
                // Sort
                order = string.IsNullOrEmpty(order) ? "asc" : order;
                sort  = string.IsNullOrEmpty(sort) ? "employee-number" : sort;
                bool asc = order == "asc";
                switch (sort)
                {
                case "last":
                    model = asc ? model.OrderBy(x => x.LastName).ThenBy(x => x.FirstName) : model.OrderByDescending(x => x.LastName).ThenByDescending(x => x.FirstName);
                    break;

                case "first":
                    model = asc ? model.OrderBy(x => x.FirstName).ThenBy(x => x.LastName) : model.OrderByDescending(x => x.FirstName).ThenBy(x => x.LastName);
                    break;

                case "mobile":
                    model = asc ? model.OrderBy(x => x.Mobile) : model.OrderByDescending(x => x.Mobile);
                    break;

                case "phone":
                    model = asc ? model.OrderBy(x => x.Phone) : model.OrderByDescending(x => x.Phone);
                    break;

                case "street":
                    model = asc ? model.OrderBy(x => x.Street) : model.OrderByDescending(x => x.Street);
                    break;

                case "city":
                    model = asc ? model.OrderBy(x => x.City) : model.OrderByDescending(x => x.City);
                    break;

                case "state":
                    model = asc ? model.OrderBy(x => x.State) : model.OrderByDescending(x => x.State);
                    break;

                case "zip":
                    model = asc ? model.OrderBy(x => x.Zip) : model.OrderByDescending(x => x.Zip);
                    break;

                case "birth-date":
                    model = asc ? model.OrderByDescending(x => x.BirthDate) : model.OrderBy(x => x.BirthDate);
                    break;

                case "department":
                    model = asc ?
                            model.OrderBy(x => !x.DepartmentID.HasValue).ThenBy(x => x.DepartmentID.HasValue ? x.Department.DepartmentName : "") :
                            model.OrderByDescending(x => x.DepartmentID.HasValue && x.Department.DepartmentName != null).ThenByDescending(x => x.DepartmentID.HasValue ? x.Department.DepartmentName : null);
                    break;

                case "location":
                    model = asc ?
                            model.OrderBy(x => !x.LocationID.HasValue).ThenBy(x => x.LocationID.HasValue ? x.Location.LocationName : "") :
                            model.OrderByDescending(x => x.LocationID.HasValue && x.Location.LocationName != null).ThenByDescending(x => x.LocationID.HasValue ? x.Location.LocationName : null);
                    break;

                case "default-cost-center":
                    model = asc ? model.OrderBy(x => x.DefaultCostCenterID) : model.OrderByDescending(x => x.DefaultCostCenterID);
                    break;

                case "shift-start-time":
                    model = asc ? model.OrderBy(x => x.ShiftStartTime) : model.OrderByDescending(x => x.ShiftStartTime);
                    break;

                case "shift-end-time":
                    model = asc ? model.OrderBy(x => x.ShiftEndTime) : model.OrderByDescending(x => x.ShiftEndTime);
                    break;

                case "hourly":
                    model = asc ? model.OrderBy(x => x.IsHourly) : model.OrderByDescending(x => x.IsHourly);
                    break;

                case "project-manager":
                    model = asc ? model.OrderBy(x => x.IsProjectManager) : model.OrderByDescending(x => x.IsProjectManager);
                    break;

                case "driver":
                    model = asc ? model.OrderBy(x => x.IsDriver) : model.OrderByDescending(x => x.IsDriver);
                    break;

                case "employee-status":
                    model = asc ?
                            model.OrderBy(x => !x.EmployeeStatusID.HasValue).ThenBy(x => x.EmployeeStatusID.HasValue ? x.EmployeeStatus.EmployeeStatusName : "") :
                            model.OrderByDescending(x => x.EmployeeStatusID.HasValue && x.EmployeeStatus.EmployeeStatusName != null).ThenByDescending(x => x.EmployeeStatusID.HasValue ? x.EmployeeStatus.EmployeeStatusName : null);
                    break;

                case "start-date":
                    model = asc ? model.OrderByDescending(x => x.StartDate) : model.OrderBy(x => x.StartDate);
                    break;

                case "end-date":
                    model = asc ? model.OrderByDescending(x => x.EndDate) : model.OrderBy(x => x.EndDate);
                    break;

                case "vacation-hours":
                    model = asc ? model.OrderBy(x => x.VacationHours) : model.OrderByDescending(x => x.VacationHours);
                    break;

                case "years-of-service":
                    model = asc ? model.OrderBy(x => x.YearsOfService) : model.OrderByDescending(x => x.YearsOfService);
                    break;

                case "vehicle":
                    model = asc ?
                            model.OrderBy(x => !x.VehicleID.HasValue).ThenBy(x => x.VehicleID.HasValue ? x.Vehicle.VehicleLabel : "") :
                            model.OrderByDescending(x => x.VehicleID.HasValue && x.Vehicle.VehicleLabel != null).ThenByDescending(x => x.VehicleID.HasValue ? x.Vehicle.VehicleLabel : null);
                    break;

                case "rate":
                    model = asc ? model.OrderBy(x => x.Rate) : model.OrderByDescending(x => x.Rate);
                    break;

                case "emergency-contact-name":
                    model = asc ? model.OrderBy(x => x.EmergencyContactName) : model.OrderByDescending(x => x.EmergencyContactName);
                    break;

                case "emergency-contact-phone":
                    model = asc ? model.OrderBy(x => x.EmergencyContactPhone) : model.OrderByDescending(x => x.EmergencyContactPhone);
                    break;

                default:
                    model = asc ? model.OrderBy(x => x.EmployeeNumber) : model.OrderByDescending(x => x.EmployeeNumber);
                    break;
                }
                Page.Title = TempData["Page.Title"] != null ? TempData["Page.Title"].ToString() : "Manage Employees";
            }
            else
            {
                if (!string.IsNullOrEmpty(uid))
                {
                    Employee employee = CarraraSQL.Employees.Find(uid);
                    if (employee != null)
                    {
                        RouteValueDictionary parameters = Request.QueryString.ToRouteValues();
                        return(RedirectToAction("Edit", parameters.CopyAndAdd("guid", uid)));
                    }
                }
                // Search by query
                Search.Results <Employee> search = Search.Employees(CarraraSQL, query);
                model           = search.List;
                Page.Title      = TempData["Page.Title"] != null ? TempData["Page.Title"].ToString() : string.IsNullOrEmpty(search.DidYouMean) ? "Found " + search.TotalHits + " result" + (search.TotalHits == 1 ? "" : "s") + " for ‘" + query + "’" : "Did You Mean ‘" + search.DidYouMean + "’?";
                ViewBag.Results = search.TotalHits;
            }
            page = page ?? 1;
            show = show ?? 40;
            int count = model.Count() == 0 ? 1 : model.Count();

            if (show.Value > count || show == 0)
            {
                show = count;
                page = 1;
            }
            int?max = (count / show) + 1;

            if (page > max)
            {
                page = max;
            }
            return(View(model.ToPagedList(page.Value, show.Value)));
        }
        public ActionResult Index(int?jid, string order, int?page, string query, int?show, int?status, string sort)
        {
            IEnumerable <Job> model = CarraraSQL.Jobs;

            if (string.IsNullOrEmpty(query))
            {
                // Filter
                if (status.HasValue)
                {
                    if (status.Value != 0)
                    {
                        model = model.Where(x => x.JobStatusID == status.Value);
                    }
                }
                else
                {
                    model = model.Where(x => x.JobStatusID == 1);
                }
                // Sort
                order = string.IsNullOrEmpty(order) ? "asc" : order;
                sort  = string.IsNullOrEmpty(sort) ? "job-id" : sort;
                bool asc = order == "asc";
                switch (sort)
                {
                case "job-number":
                    model = asc ? model.OrderBy(x => x.JobNumber) : model.OrderByDescending(x => x.JobNumber);
                    break;

                case "job-name":
                    model = asc ? model.OrderBy(x => x.JobName) : model.OrderByDescending(x => x.JobName);
                    break;

                case "erector":
                    model = asc ?
                            model.OrderBy(x => !x.ErectorID.HasValue).ThenBy(x => x.ErectorID.HasValue ? x.Contact.DisplayName : "") :
                            model.OrderByDescending(x => x.ErectorID.HasValue && x.Contact.DisplayName != null).ThenByDescending(x => x.ErectorID.HasValue ? x.Contact.DisplayName : null);
                    break;

                case "project-manager":
                    model = asc ?
                            model.OrderBy(x => !x.ProjectManagerID.HasValue).ThenBy(x => x.ProjectManagerID.HasValue ? x.Employee.LastName : "").ThenBy(x => x.ProjectManagerID.HasValue ? x.Employee.FirstName : "") :
                            model.OrderByDescending(x => x.ProjectManagerID.HasValue && x.Employee.LastName != null).ThenByDescending(x => x.ProjectManagerID.HasValue ? x.Employee.LastName : null).ThenByDescending(x => x.ProjectManagerID.HasValue ? x.Employee.FirstName : null);
                    break;

                case "street":
                    model = asc ? model.OrderBy(x => x.Street) : model.OrderByDescending(x => x.Street);
                    break;

                case "city":
                    model = asc ? model.OrderBy(x => x.City) : model.OrderByDescending(x => x.City);
                    break;

                case "state":
                    model = asc ? model.OrderBy(x => x.State) : model.OrderByDescending(x => x.State);
                    break;

                case "zip-code":
                    model = asc ? model.OrderBy(x => x.ZIP) : model.OrderByDescending(x => x.ZIP);
                    break;

                case "general-contractor":
                    model = asc ? model.OrderBy(x => x.GeneralContractor) : model.OrderByDescending(x => x.GeneralContractor);
                    break;

                case "status":
                    model = asc ?
                            model.OrderBy(x => !x.JobStatusID.HasValue).ThenBy(x => x.JobStatusID.HasValue ? x.JobStatu.JobStatusName : "") :
                            model.OrderByDescending(x => x.JobStatusID.HasValue && x.JobStatu.JobStatusName != null).ThenByDescending(x => x.JobStatusID.HasValue ? x.JobStatu.JobStatusName : null);
                    break;

                case "travel-time":
                    model = asc ? model.OrderBy(x => x.TravelTime) : model.OrderByDescending(x => x.TravelTime);
                    break;

                case "route":
                    model = asc ? model.OrderBy(x => x.State) : model.OrderByDescending(x => x.State);
                    break;

                default:
                    model = asc ? model.OrderBy(x => x.JobID) : model.OrderByDescending(x => x.JobID);
                    break;
                }
            }
            else
            {
                if (jid.HasValue)
                {
                    Job job = CarraraSQL.Jobs.Find(jid);
                    if (job != null)
                    {
                        RouteValueDictionary parameters = Request.QueryString.ToRouteValues();
                        return(RedirectToAction("Edit", parameters.CopyAndAdd("guid", jid)));
                    }
                }
                // Search by query
                Search.Results <Job> search = Search.Jobs(null, CarraraSQL, query);
                model           = search.List;
                Page.Title      = TempData["Page.Title"] != null ? TempData["Page.Title"].ToString() : string.IsNullOrEmpty(search.DidYouMean) ? "Found " + search.TotalHits + " result" + (search.TotalHits == 1 ? "" : "s") + " for ‘" + query + "’" : "Did You Mean ‘" + search.DidYouMean + "’?";
                ViewBag.Results = search.TotalHits;
            }
            // Return Results
            Page.Title = TempData["Page.Title"] != null ? TempData["Page.Title"].ToString() : "Manage Jobs";
            page       = page ?? 1;
            show       = show ?? 40;
            int count = model.Count() == 0 ? 1 : model.Count();

            if (show.Value > count || show == 0)
            {
                show = count;
                page = 1;
            }
            int?max = (count / show) + 1;

            if (page > max)
            {
                page = max;
            }
            return(View(model.ToPagedList(page.Value, show.Value)));
        }