예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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());
            }
        }
예제 #3
0
        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());
 }