public List <Dto.RestroomsByRoutes> GetAllRestroomsByRoutes() { var restrooms = UnitOfWork.GetRestroomsByDivision().OrderBy(r => r.Route); var restroomsByRoutes = new List <Dto.RestroomsByRoutes>(); foreach (var items in restrooms.GroupBy(r => r.Route)) { var restroomInfo = items.FirstOrDefault(); if (restroomInfo != null) { var r = new Dto.RestroomsByRoutes() { Route = restroomInfo.Route, DestinationName = restroomInfo.DestinationName, Restrooms = items.Select(Converter.ToModel).ToList() }; restroomsByRoutes.Add(r); } } return(restroomsByRoutes); }
public RestroomsPrint GetRestroomsByDivision() { var restroomsByDivision = new List <Dto.RestroomsByDivision>(); var restrooms = UnitOfWork.GetRestroomsByDivision().ToList(); var version = DateTime.Now.ToString("yy.MMdd.HHmm"); foreach (var rDivision in restrooms.GroupBy(r => r.Division)) { var rr = new List <Dto.RestroomsByRoutes>(); foreach (var items in rDivision.GroupBy(r => r.Route)) { var restroomInfo = items.FirstOrDefault(); if (restroomInfo != null) { var r = new Dto.RestroomsByRoutes() { Route = restroomInfo.Route, DestinationName = restroomInfo.DestinationName, Restrooms = items.Select(Converter.ToModel).ToList() }; rr.Add(r); } } var rd = new Dto.RestroomsByDivision() { Division = rDivision.FirstOrDefault()?.Division, RestroomsByRoutes = rr, CurrentVersion = version + "." + rDivision.FirstOrDefault()?.Division }; restroomsByDivision.Add(rd); } var restroomsByRoutes = new List <Dto.RestroomsByRoutes>(); foreach (var items in restrooms.OrderByNatural(r => r.Route).GroupBy(r => r.Route)) { var restroomInfo = items.FirstOrDefault(); if (restroomInfo != null) { var r = new Dto.RestroomsByRoutes() { Route = restroomInfo.Route, DestinationName = restroomInfo.Division + " " + restroomInfo.DestinationName, Restrooms = items.Select(Converter.ToModel).ToList() }; restroomsByRoutes.Add(r); } } var restroomsById = restrooms.GroupBy(r => r.RestroomId).ToList(); var uniqueRestrooms = new List <RestroomReport>(); foreach (var restroom in restroomsById) { var restroomInfo = restroom.FirstOrDefault(); if (restroomInfo != null) { uniqueRestrooms.Add(restroomInfo); } } var results = new RestroomsPrint { Restrooms = uniqueRestrooms.Select(Converter.ToModel).ToPagedList(), RestroomsByRoutes = restroomsByRoutes, RestroomsByDivision = restroomsByDivision }; return(results); }