/// <summary> /// 根据搜索条件获取物品预定信息 /// </summary> /// <param name="webModel">列表页视图模型</param> /// <param name="context">数据库上下文对象</param> /// <returns></returns> public static async Task <List <BunkInfo> > GetListAsync(DormitoryViewModel webModel, ApplicationDbContext context) { if (string.IsNullOrEmpty(webModel.SName) && string.IsNullOrEmpty(webModel.SBuilding) && string.IsNullOrEmpty(webModel.SStudent)) { return(await context.Set <BunkInfo>().AsNoTracking().Skip(webModel.Start).Take(webModel.Limit).OrderByDescending(i => i.DateTime).ToListAsync()); } else { IQueryable <BunkInfo> bunkInfos = context.BunkInfo.AsQueryable(); var predicate = PredicateBuilder.New <BunkInfo>(); //宿舍名称 if (!string.IsNullOrEmpty(webModel.SName)) { predicate = predicate.And(i => i.DormName == webModel.SName); } //宿舍楼名称 if (!string.IsNullOrEmpty(webModel.SBuilding)) { predicate = predicate.And(i => i.BuildingName.Contains(webModel.SBuilding)); } //学生姓名 if (!string.IsNullOrEmpty(webModel.SStudent)) { predicate = predicate.And(i => i.StudentName.Contains(webModel.SStudent)); } return(await bunkInfos.AsExpandable().Where(predicate).ToListAsync()); } }
/// <summary> /// 搜索宿舍预定信息 /// </summary> /// <param name="webModel">列表页视图Model</param> /// <param name="context">数据库连接上下文对象</param> /// <returns></returns> public async Task <DormitoryViewModel> SearchDormitoryAsync(DormitoryViewModel webModel, ApplicationDbContext context) { try { //Source Data List var list = await StatisticsRepository.GetListAsync(webModel, context); //Return Data List var dataList = new List <DormitoryData>(); if (list != null && list.Any()) { dataList.AddRange(list.Select(item => new DormitoryData { Building = item.BuildingName, DateTime = item.DateTime.ToString("yyyy-MM-dd HH:mm:ss"), Dorm = item.DormName, Floor = item.Floor, MajorClass = item.MajorClassName, Name = item.StudentName, StudentId = item.StudentId.ToString() })); } webModel.DormitoryList = dataList; webModel.Total = await StatisticsRepository.GetListCountAsync(webModel, context); } catch (Exception ex) { _logger.LogError("获取宿舍预定列表失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message); } return(webModel); }
public async Task <DormitoryViewModel> Update(DormitoryViewModel updatedDormitory) { var existingDormitory = await _dbContext.Dormitories.FirstOrDefaultAsync(x => x.Id == updatedDormitory.Id) ?? throw new NotImplementedException(); _mapper.Map(updatedDormitory, existingDormitory); await _dbContext.SaveChangesAsync(); return(updatedDormitory); }
public async Task <IActionResult> Create(DormitoryViewModel vm) { if (ModelState.IsValid) { var result = await _services.CreateAsync(_mapper.Map <DormitoryDTO>(vm)); return(result.IsValid ? RedirectToAction("Index") : _oops.OutPutError("Dormitory", "Index", result.ErrorsList)); } return(View(vm)); }
/// <summary> /// 获取寝室信息 /// </summary> /// <param name="context">数据库连接上下文对象</param> /// <returns></returns> public async Task <DormitoryViewModel> GetDormitoryAsync(ApplicationDbContext context) { DormitoryViewModel webModel = new DormitoryViewModel(); try { //Source Data List var list = await RegisterRepository.GetDormitoryListAsync(context); //Return Data List var dataList = new List <InformationData>(); if (list != null && list.Any()) { foreach (var item in list) { var model = new InformationData { Id = item.Id.ToString(), Name = item.Name, BuildingName = item.BuildingName, Count = item.Count, Floor = item.Floor, SelectedCount = item.SelectedCount, Type = item.BunkName, }; dataList.Add(model); } } webModel.InformationList = dataList; var dorm = await RegisterRepository.GetDormitoryAsync(context); webModel.IsChosen = dorm != null; if (dorm != null) { webModel.DormitoryInfo = new DormitoryInfo { BuildingName = dorm.BuildingName, Floor = (short)dorm.Floor, Id = dorm.Id.ToString(), Name = dorm.DormName, Type = dorm.BunkType, DateTime = dorm.DateTime.ToString("yyyy-MM-dd HH:mm:ss") }; } } catch (Exception ex) { _logger.LogError("获取物品信息列表失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message); } return(webModel); }
public async Task <IActionResult> UpdateConfirmed(DormitoryViewModel vm) { if (ModelState.IsValid) { if (vm.HashId == null) { return(NotFound()); } var result = await _services.UpdateAsync(_mapper.Map <DormitoryDTO>(vm)); return(result.IsValid ? RedirectToAction("Index") : _oops.OutPutError("Dormitory", "Index", result.ErrorsList)); } return(View(vm)); }
public async Task <DormitoryViewModel> Create(DormitoryViewModel newDormitoryDto) { var oldDormitory = await GetByName(newDormitoryDto.Name); if (oldDormitory != null) { //Conflict throw new InvalidOperationException("Conflict"); } var newDormitory = _mapper.Map <Dormitory>(newDormitoryDto); await _dbContext.AddAsync(newDormitory); await _dbContext.SaveChangesAsync(); newDormitoryDto.Id = newDormitory.Id; return(newDormitoryDto); }
public async Task <IActionResult> SearchDormitory(string search) { DormitoryViewModel webModel = JsonUtility.ToObject <DormitoryViewModel>(search); webModel = await _service.SearchDormitoryAsync(webModel, _context); //Search Or Init bool flag = string.IsNullOrEmpty(webModel.SName) && string.IsNullOrEmpty(webModel.SStudent) && string.IsNullOrEmpty(webModel.SBuilding); var returnData = new { data = webModel.DormitoryList, limit = webModel.Limit, page = flag ? webModel.Page : 1, total = webModel.Total }; return(Json(returnData)); }
/// <summary> /// 根据搜索条件获取新生宿舍选择信息列表个数 /// </summary> /// <param name="webModel">列表页视图模型</param> /// <param name="context">数据库上下文对象</param> /// <returns></returns> public static async Task <int> GetListCountAsync(DormitoryViewModel webModel, ApplicationDbContext context) { if (string.IsNullOrEmpty(webModel.SName) && string.IsNullOrEmpty(webModel.SStudent) && string.IsNullOrEmpty(webModel.SBuilding)) { var list = await context.Set <BunkInfo>().Where(i => i.InstructorId == CurrentUser.UserId).Skip(webModel.Start).Take(webModel.Limit).OrderByDescending(i => i.DateTime).ToListAsync(); return(list.Count()); } else { IQueryable <BunkInfo> bunkInfos = context.BunkInfo.AsQueryable(); var predicate = PredicateBuilder.New <BunkInfo>(); //当前登录人数据 predicate = predicate.And(i => i.InstructorId == CurrentUser.UserId); //学生姓名 if (!string.IsNullOrEmpty(webModel.SStudent)) { predicate = predicate.And(i => i.StudentName == webModel.SStudent); } //寝室号 if (!string.IsNullOrEmpty(webModel.SName)) { predicate = predicate.And(i => i.DormName == webModel.SName); } //寝室楼 if (!string.IsNullOrEmpty(webModel.SBuilding)) { predicate = predicate.And(i => i.BuildingName == webModel.SBuilding); } var list = await bunkInfos.AsExpandable().Where(predicate).ToListAsync(); return(list.Count()); } }
public async Task <IActionResult> Edit([FromQuery] int id, [FromBody] DormitoryViewModel dormitory) { await _dormitoryManager.Update(dormitory); return(Ok()); }
public async Task <IActionResult> Create([FromBody] DormitoryViewModel dormitory) { var dormitorynew = await _dormitoryManager.Create(dormitory); return(Ok(dormitory)); }