public IActionResult Filter() { var courseFilterInputModel = new CourseFilterInputModel { Drivers = this.driverService.All().ToArray(), Trucks = this.truckService.All().ToArray(), Firms = this.firmService.All().ToArray(), AsphaltBases = this.asphaltBaseService.All().ToArray(), AsphaltMixtures = this.asphaltMixtureService.All().ToArray(), RoadObjects = this.roadObjectService.All().ToArray(), }; return(this.View(courseFilterInputModel)); }
public async Task <IActionResult> GetResult(CourseFilterInputModel courseFilterInputModel) { var filteredCourses = await this.courseService.All(); if (string.IsNullOrWhiteSpace(courseFilterInputModel.FilterFromDateTime)) { courseFilterInputModel.FilterFromDateTime = "Not applied."; } else { var filterFromDateTime = System.DateTime.ParseExact(courseFilterInputModel.FilterFromDateTime, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture); filteredCourses = filteredCourses.Where(c => c.DateTime.CompareTo(filterFromDateTime) >= 1).ToList(); } if (string.IsNullOrWhiteSpace(courseFilterInputModel.FilterToDateTime)) { courseFilterInputModel.FilterToDateTime = "Not applied."; } else { var filterToDateTime = System.DateTime.ParseExact(courseFilterInputModel.FilterToDateTime, "dd.MM.yyyy HH:mm", CultureInfo.InvariantCulture); filteredCourses = filteredCourses.Where(c => c.DateTime.CompareTo(filterToDateTime) <= 1).ToList(); } if (courseFilterInputModel.DriverIds == null) { courseFilterInputModel.DriverFullNames = "Not applied."; } else { courseFilterInputModel.DriverFullNames = string.Join(", ", this.driverService .All() .Where(d => courseFilterInputModel.DriverIds.Contains(d.Id)) .Select(d => d.FullName)); filteredCourses = filteredCourses.Where(c => courseFilterInputModel.DriverIds.Contains(c.DriverId)).ToList(); } if (courseFilterInputModel.TruckIds == null) { courseFilterInputModel.TruckRegistrationNumbers = "Not applied."; } else { courseFilterInputModel.TruckRegistrationNumbers = string.Join(", ", this.truckService .All() .Where(t => courseFilterInputModel.TruckIds.Contains(t.Id)) .Select(t => t.RegistrationNumber)); filteredCourses = filteredCourses.Where(t => courseFilterInputModel.TruckIds.Contains(t.TruckId)).ToList(); } if (courseFilterInputModel.FirmIds == null) { courseFilterInputModel.FirmNames = "Not applied."; } else { courseFilterInputModel.FirmNames = string.Join(", ", this.firmService .All() .Where(f => courseFilterInputModel.FirmIds.Contains(f.Id)) .Select(f => f.Name)); filteredCourses = filteredCourses.Where(f => courseFilterInputModel.FirmIds.Contains(f.FirmId)).ToList(); } if (courseFilterInputModel.AsphaltBaseIds == null) { courseFilterInputModel.AsphaltBaseNames = "Not applied."; } else { courseFilterInputModel.AsphaltBaseNames = string.Join(", ", this.asphaltBaseService .All() .Where(ab => courseFilterInputModel.AsphaltBaseIds.Contains(ab.Id)) .Select(ab => ab.Name)); filteredCourses = filteredCourses.Where(ab => courseFilterInputModel.AsphaltBaseIds.Contains(ab.AsphaltBaseId)).ToList(); } if (courseFilterInputModel.AsphaltMixtureIds == null) { courseFilterInputModel.AsphaltMixtureTypes = "Not applied."; } else { courseFilterInputModel.AsphaltMixtureTypes = string.Join(", ", this.asphaltMixtureService .All() .Where(am => courseFilterInputModel.AsphaltMixtureIds.Contains(am.Id)) .Select(am => am.Type)); filteredCourses = filteredCourses.Where(am => courseFilterInputModel.AsphaltMixtureIds.Contains(am.AsphaltMixtureId)).ToList(); } if (courseFilterInputModel.RoadObjectIds == null) { courseFilterInputModel.RoadObjectNames = "Not applied."; } else { courseFilterInputModel.RoadObjectNames = string.Join(", ", this.roadObjectService .All() .Where(ro => courseFilterInputModel.RoadObjectIds.Contains(ro.Id)) .Select(ro => ro.Name)); filteredCourses = filteredCourses.Where(ro => courseFilterInputModel.RoadObjectIds.Contains(ro.RoadObjectId)).ToList(); } courseFilterInputModel.FilteredCourses = new List <CoursesListingViewModel>(); foreach (var filteredCourse in filteredCourses) { var filteredAllCourseServiceModel = AutoMapperConfig.MapperInstance.Map <AllCoursesServiceModel>(filteredCourse); var filteredCourseListingViewModel = AutoMapperConfig.MapperInstance.Map <CoursesListingViewModel>(filteredAllCourseServiceModel); courseFilterInputModel.FilteredCourses.Add(filteredCourseListingViewModel); } courseFilterInputModel.TotalWeightByDistance = filteredCourses.Sum(fc => fc.WeightByDistance).ToString("f3"); return(this.View(courseFilterInputModel)); }
public IActionResult Filter(CourseFilterInputModel courseFilterInputModel) { return(this.RedirectToAction("GetResult", "Results", courseFilterInputModel)); }