public IActionResult ParkingList(ParkingQueryPayload payload)
 {
     using (_dbContext)
     {
         var response = ResponseModelFactory.CreateInstance;
         var list     = _dbContext.Attractions.Where(x => x.UserUuid == payload.UserUuid).Select(x => x.SceientUuid).ToList();
         var alllist  = _dbContext.ScenicSpot.Where(x => x.IsDelete == 0 && x.State == 1).Select(x => x.ScenicSpotUuid).ToList();
         for (int i = 0; i < list.Count; i++)
         {
             alllist.Remove(list[i].Value);
         }
         int ranking = alllist.Count();
         var paiming = 0;
         if (ranking == 0)
         {
             if (_dbContext.AttractRanking.Count(x => x.UserUuid == payload.UserUuid) <= 0)
             {
                 var entity = new AttractRanking();
                 entity.AttractRankingUuid = Guid.NewGuid();
                 entity.UserUuid           = payload.UserUuid;
                 _dbContext.AttractRanking.Add(entity);
                 _dbContext.SaveChanges();
                 //int num  = _dbContext.SaveChanges();
                 //if (num >0) {
                 //    var querys = _dbContext.AttractRanking.FirstOrDefault(x => x.UserUuid == payload.UserUuid);
                 //    paiming = querys.Id;
                 //}
             }
             var querys = _dbContext.AttractRanking.FirstOrDefault(x => x.UserUuid == payload.UserUuid);
             paiming = querys.Id;
         }
         if (payload.Type == 0)
         {
             var query = _dbContext.ScenicSpot.Where(x => x.IsDelete == 0 && x.State == 1 && list.Contains(x.ScenicSpotUuid)).Select(x => new { x.Name, x.Address, Picture = GetDistance(x.Picture), ranking, paiming });
             response.SetData(query.ToList());
         }
         else if (payload.Type == 1)
         {
             var query = _dbContext.ScenicSpot.Where(x => x.IsDelete == 0 && x.State == 1 && alllist.Contains(x.ScenicSpotUuid)).Select(x => new { x.Name, x.Address, Picture = GetDistance(x.Picture) });
             response.SetData(query.ToList());
         }
         return(Ok(response));
     }
 }
 public IActionResult ParkingList(ParkingQueryPayload payload)
 {
     using (_dbContext)
     {
         var response = ResponseModelFactory.CreateInstance;
         var query    = _dbContext.CarPark.Where(x => x.IsDelete == 0 && x.State == 1);
         var querydc  = _dbContext.Sharing.Where(x => x.IsDelete == 0 && x.State == 1);
         var querybus = _dbContext.Bus.Where(x => x.IsDelete == 0 && x.State == 1);
         if (!string.IsNullOrEmpty(payload.Kw))
         {
             if (payload.Type == 2)
             {
                 querydc = querydc.Where(x => x.Name.Contains(payload.Kw));
             }
             if (payload.Type == 1)
             {
                 query = query.Where(x => x.Name.Contains(payload.Kw));
             }
             else
             {
                 querybus = querybus.Where(x => x.BegainSite.Contains(payload.Kw));
             }
         }
         //List<ParkingLot> parkingLots = new List<ParkingLot>();
         var query2 = query.Select(x => new ParkingLot
         {
             Lon         = x.Lon.Value,
             Lat         = x.Lat.Value,
             Id          = x.Id,
             CarParkUuid = x.CarParkUuid,
             Name        = x.Name,
             Picture     = x.Picture,
             TruckSpace  = x.TruckSpace,
             SurplusTs   = x.SurplusTs,
             Distance    = (int)(GetDistance2(payload.Lat, payload.Lon, (double)x.Lat.Value, (double)x.Lon.Value) / 1000)
         });
         var query3 = querydc.Select(x => new Sharing
         {
             Id          = x.Id,
             SharingUuid = x.SharingUuid,
             Name        = x.Name,
             Address     = x.Address,
             Picture     = x.Picture,
             Lon         = x.Lon,
             Lat         = x.Lat,
         });
         var query4 = querybus.Select(x => new Bus
         {
             Id           = x.Id,
             BusUuid      = x.BusUuid,
             Introduction = x.Introduction,
             Picture      = x.Picture,
             BegainSite   = x.BegainSite,
             EndSite      = x.EndSite,
         });
         if (payload.Type == 1)
         {
             var list = query2.ToList().AsQueryable().OrderBy(x => x.Distance).Paged(payload.CurrentPage, payload.PageSize).ToList();
             response.SetData(list);
         }
         else if (payload.Type == 2)
         {
             var list = query3.Paged(payload.CurrentPage, payload.PageSize).ToList();
             response.SetData(list);
             //var list = query2.ToList().AsQueryable().OrderByDescending(x => x.SurplusTs).Paged(payload.CurrentPage, payload.PageSize).ToList();
             //response.SetData(list);
         }
         else
         {
             var list = query4.Paged(payload.CurrentPage, payload.PageSize).ToList();
             response.SetData(list);
         }
         return(Ok(response));
     }
 }