Exemplo n.º 1
0
        /// <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());
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 5
0
        /// <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));
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        /// <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());
            }
        }
Exemplo n.º 10
0
        public async Task <IActionResult> Edit([FromQuery] int id, [FromBody] DormitoryViewModel dormitory)
        {
            await _dormitoryManager.Update(dormitory);

            return(Ok());
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Create([FromBody] DormitoryViewModel dormitory)
        {
            var dormitorynew = await _dormitoryManager.Create(dormitory);

            return(Ok(dormitory));
        }