public IEnumerable <AreaTestInfo> QueryAreaTestInfos(int fileId) { var townIds = _boundaryRepository.GetAllList(x => x.AreaName == null).Select(x => x.TownId).Distinct().ToList(); return(from info in _areaTestInfoRepository.GetAllList(x => x.FileId == fileId) join id in townIds on info.TownId equals id select info); }
private TownAreaTestFileView QueryAreaTestFileViewsInTowns(List <CsvFilesInfo> allInfos, Town town) { var views = from info in allInfos join file in _areaTestInfoRepository.GetAllList(x => x.TownId == town.Id) on info.Id equals file.FileId select new { Info = info, File = file }; return(new TownAreaTestFileView { District = town.DistrictName, Town = town.TownName, Distance = views.Sum(x => x.File.Distance), Count = views.Sum(x => x.File.Count), CoverageCount = views.Sum(x => x.File.CoverageCount), Views = views.Select(x => { var fileView = x.File.MapTo <AreaTestFileView>(); fileView.CsvFileName = x.Info.CsvFileName; fileView.TestDate = x.Info.TestDate; fileView.AreaName = town.CityName + town.DistrictName + town.TownName; return fileView; }) }); }