/// <summary> /// 搜索宿舍类型信息 /// </summary> /// <param name="webModel">列表页视图Model</param> /// <param name="context">数据库连接上下文对象</param> /// <returns></returns> public async Task <BunkViewModel> SearchBunkAsync(BunkViewModel webModel, ApplicationDbContext context) { try { //Source Data List var list = await DormitoryRepository.GetListAsync(webModel, context); //Return Data List var dataList = new List <BunkData>(); if (list != null && list.Any()) { dataList.AddRange(list.Select(item => new BunkData { Id = item.Id.ToString(), Name = item.Name, ImageSrc = item.ImageSrc, Number = item.Number + "人", Toward = item.Toward, IsEnabled = item.IsEnabled })); } webModel.BunkList = dataList; webModel.Total = await DormitoryRepository.GetListCountAsync(webModel, context); } catch (Exception ex) { _logger.LogError("获取宿舍类型列表失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message); } return(webModel); }
/// <summary> /// 根据搜索条件获取宿舍类型列表 /// </summary> /// <param name="webModel">列表页视图模型</param> /// <param name="context">数据库上下文对象</param> /// <returns></returns> public static async Task <List <Bunk> > GetListAsync(BunkViewModel webModel, ApplicationDbContext context) { if (string.IsNullOrEmpty(webModel.SName) && string.IsNullOrEmpty(webModel.SDirection) && webModel.SEnable == -1) { return(await context.Set <Bunk>().AsNoTracking().Skip(webModel.Start).Take(webModel.Limit).OrderByDescending(i => i.CreatedOn).ToListAsync()); } else { IQueryable <Bunk> bunks = context.Bunk.AsQueryable(); var predicate = PredicateBuilder.New <Bunk>(); //宿舍类型名称 if (!string.IsNullOrEmpty(webModel.SName)) { predicate = predicate.And(i => i.Name == webModel.SName); } //宿舍朝向 if (!string.IsNullOrEmpty(webModel.SDirection)) { predicate = predicate.And(i => i.Toward == webModel.SDirection); } //宿舍类型是否启用 if (webModel.SEnable != -1) { bool flag = webModel.SEnable == 1; predicate = predicate.And(i => i.IsEnabled == flag); } return(await bunks.AsExpandable().Where(predicate).ToListAsync()); } }
public async Task <IActionResult> SearchBunk(string search) { BunkViewModel webModel = JsonUtility.ToObject <BunkViewModel>(search); webModel = await _service.SearchBunkAsync(webModel, _context); //Search Or Init bool flag = string.IsNullOrEmpty(webModel.SName) && string.IsNullOrEmpty(webModel.SDirection) && webModel.SEnable == -1; var returnData = new { data = webModel.BunkList, limit = webModel.Limit, page = flag ? webModel.Page : 1, total = webModel.Total }; return(Json(returnData)); }
public BunkWindow() { InitializeComponent(); this.DataContext = (bunkviewmodel = new BunkViewModel()); }