Beispiel #1
0
        public ActionResult FutureInspections(string sortOrder, string searchString)
        {
            var futureNotifications        = _inspectionService.GetFutureInspections();
            var futureInspectionsViewModel = new List <NotificationViewModel>();

            foreach (var notification in futureNotifications)
            {
                var model = new NotificationViewModel()
                {
                    CarId              = notification.CarId,
                    InspectionId       = notification.Id,
                    InspectionDate     = notification.InspectionDate.AddYears(notification.NextInspectionYears),
                    Make               = notification.Car.Make,
                    Model              = notification.Car.Model,
                    Customer           = notification.Car.User.LastName + " " + notification.Car.User.FirstName,
                    ContactDetails     = "P1: " + notification.Car.User.Phone1 + ",P2: " + notification.Car.User.Phone2 + ",E: " + notification.Car.User.Email,
                    Comment            = notification.Comments,
                    RegistrationNumber = notification.Car.RegistrationNumber
                };
                futureInspectionsViewModel.Add(model);
            }

            ViewBag.SortOrder = sortOrder;
            ViewBag.InspectionDateSortParm     = String.IsNullOrEmpty(sortOrder) ? "InspectionDate_desc" : "";
            ViewBag.MakeSortParm               = sortOrder == "Make" ? "Make_desc" : "Make";
            ViewBag.ModelSortParm              = sortOrder == "Model" ? "Model_desc" : "Model";
            ViewBag.CustomerSortParm           = sortOrder == "Customer" ? "Customer_desc" : "Customer";
            ViewBag.ContactDetailsSortParm     = sortOrder == "ContactDetails" ? "ContactDetails_desc" : "ContactDetails";
            ViewBag.CommentSortParm            = sortOrder == "Comment" ? "Comment_desc" : "Comment";
            ViewBag.RegistrationNumberSortParm = sortOrder == "RegistrationNumber" ? "RegistrationNumber_desc" : "RegistrationNumber";

            var futureInspections = from futureInspection in futureInspectionsViewModel
                                    select futureInspection;

            if (!String.IsNullOrEmpty(searchString))
            {
                futureInspections = futureInspections.Where(futureInspection => (futureInspection.InspectionDate != null && futureInspection.InspectionDate.ToString().Contains(searchString)) ||
                                                            futureInspection.Make.Contains(searchString) ||
                                                            futureInspection.Model.Contains(searchString) ||
                                                            futureInspection.Customer.Contains(searchString) ||
                                                            futureInspection.ContactDetails.Contains(searchString) ||
                                                            (futureInspection.Comment != null && futureInspection.Comment.Contains(searchString)) ||
                                                            futureInspection.RegistrationNumber.Contains(searchString));
            }
            switch (sortOrder)
            {
            case "InspectionDate_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.InspectionDate);
                break;

            case "Make":
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.Make);
                break;

            case "Make_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.Make);
                break;

            case "Model":
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.Model);
                break;

            case "Model_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.Model);
                break;

            case "Customer":
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.Customer);
                break;

            case "Customer_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.Customer);
                break;

            case "ContactDetails":
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.ContactDetails);
                break;

            case "ContactDetails_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.ContactDetails);
                break;

            case "Comment":
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.Comment);
                break;

            case "Comment_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.Comment);
                break;

            case "RegistrationNumber":
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.RegistrationNumber);
                break;

            case "RegistrationNumber_desc":
                futureInspections = futureInspections.OrderByDescending(futureInspection => futureInspection.RegistrationNumber);
                break;

            default:
                futureInspections = futureInspections.OrderBy(futureInspection => futureInspection.InspectionDate);
                break;
            }

            return(View(futureInspections.ToList()));
        }