Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
 public IActionResult Filter(CourseFilterInputModel courseFilterInputModel)
 {
     return(this.RedirectToAction("GetResult", "Results", courseFilterInputModel));
 }