private ReportLineModelOut GetReportLineForAccommodation(Accommodation accommodation, List <Reservation> reservations, ReportModelIn reportModelIn) { ReportLineModelOut reportToReturn = new ReportLineModelOut(accommodation.Name, accommodation.Id); foreach (var reservation in reservations) { if (MatchesRequirementsForReservation(accommodation, reservation, reportModelIn)) { reportToReturn.Reservations++; } } if (reportToReturn.Reservations == 0) { return(null); } return(reportToReturn); }
public List <ReportLineModelOut> GetReports(ReportModelIn reportModelIn) { List <Accommodation> accommodations = this.accommodationLogic.GetAllByTouristSpotName(reportModelIn.TouristSpotName); List <Reservation> reservations = this.reservationLogic.GetAll(); List <ReportLineModelOut> reportsToReturn = new List <ReportLineModelOut>(); foreach (Accommodation accommodation in accommodations) { ReportLineModelOut reporte = this.GetReportLineForAccommodation(accommodation, reservations, reportModelIn); if (reporte != null) { reportsToReturn.Add(reporte); } } var reportsOrderByDescendingResult = from r in reportsToReturn orderby r.Reservations, r.Id descending select r; return(reportsOrderByDescendingResult.ToList <ReportLineModelOut>()); }