public static List <CarParkingResult> GetParkGrantByPlateNo(string plateNo) { if (plateNo.IsEmpty()) { throw new ArgumentNullException("plateNo"); } List <CarParkingResult> models = new List <CarParkingResult>(); IParkGrant factory = ParkGrantFactory.GetFactory(); List <ParkGrant> grants = factory.GetParkGrantByPlateNo(plateNo); if (grants.Count > 0) { List <ParkCarType> carTypes = ParkCarTypeServices.QueryParkCarTypeByRecordIds(grants.Select(p => p.CarTypeID).ToList()); List <BaseParkinfo> parkings = ParkingServices.QueryParkingByRecordIds(grants.Select(p => p.PKID).ToList()); List <BaseVillage> villages = new List <BaseVillage>(); if (parkings.Count > 0) { IVillage factoryVillage = VillageFactory.GetFactory(); villages = factoryVillage.QueryVillageByRecordIds(parkings.Select(p => p.VID).ToList()); } foreach (var item in grants) { CarParkingResult model = new CarParkingResult(); model.PlateNo = plateNo; BaseParkinfo parking = parkings.FirstOrDefault(p => p.PKID == item.PKID); if (parking != null) { model.ParkingName = parkings != null ? parking.PKName : string.Empty; BaseVillage village = villages.FirstOrDefault(p => p.VID == parking.VID); model.VillageName = village != null ? village.VName : string.Empty; } ParkCarType carType = carTypes.FirstOrDefault(p => p.CarTypeID == item.CarTypeID); if (carType != null) { model.CarTypeName = carType.CarTypeName; } model.StartTime = item.BeginDate; model.EndTime = item.EndDate; models.Add(model); } } return(models); }