示例#1
0
        /// <summary>
        /// 获取教职工信息
        /// </summary>
        /// <param name="id">教职工编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <StaffEditViewModel> GetStaffAsync(long id, ApplicationDbContext context)
        {
            var webModel = new StaffEditViewModel();

            try
            {
                var model = await PSURepository.GetUserByIdAsync(id, context);

                webModel.Id             = model.Id.ToString();
                webModel.IsEnabled      = (Enable)(model.IsEnabled ? 1 : 0);
                webModel.Name           = model.Name;
                webModel.QQ             = model.QQ.ToString();
                webModel.Wechat         = model.Wechat;
                webModel.DepartmentId   = model.DepartmentId;
                webModel.DepartmentName = model.Department;
                webModel.Account        = model.Account;
                webModel.Address        = model.Address;
                webModel.Age            = model.Age;
                webModel.Email          = model.Email;
                webModel.Gender         = model.Gender;
                webModel.IdNumber       = model.IdNumber;
                webModel.IsMaster       = model.IsMaster;
                webModel.Password       = model.Password;
                webModel.Phone          = model.Phone;
            }
            catch (Exception ex)
            {
                _logger.LogError("获取教职工数据失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
            }
            return(webModel);
        }
示例#2
0
        /// <summary>
        /// 查找当前用户报名信息
        /// </summary>
        /// <param name="id">学生编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <InformationViewModel> GetInformationAsync(long id, ApplicationDbContext context)
        {
            var webModel = new InformationViewModel();

            try
            {
                //Get register Data
                var register = await RegisterRepository.GetEntityAsync(id, context);

                if (register != null)
                {
                    webModel.ArriveTime = register.ArriveTime.ToString("yyyy-MM-dd");
                    webModel.ExpressId  = register.ExpressId;
                    webModel.Id         = register.Id.ToString();
                    webModel.IsExpress  = register.IsExpress;
                    webModel.Place      = register.Place;
                    webModel.Remark     = register.Remark;
                    webModel.Way        = register.Way;
                }

                var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

                webModel.SId        = user.Id.ToString();
                webModel.Department = user.Department;
                webModel.MajorClass = user.MajorClass;
                webModel.Name       = user.Name;
            }
            catch (Exception ex)
            {
                _logger.LogError("获取用户报名数据失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
            }
            return(webModel);
        }
示例#3
0
        /// <summary>
        /// 设置当前登录用户
        /// </summary>
        public async Task SetCurrentUser(string oid, IHttpContextAccessor httpContextAccessor, ApplicationDbContext context)
        {
            CurrentUser.Configure(httpContextAccessor);

            var user = await PSURepository.GetUserByOIDAsync(oid, context);

            if (user != null)
            {
                string role = string.Empty;
                switch (user.AccountType)
                {
                case 0:
                    role = "Administrator";
                    break;

                case 1:
                    role = "Instructor";
                    break;

                case 2:
                    role = "Student";
                    break;
                }

                CurrentUser.UserAccount = user.Account;
                CurrentUser.UserId      = user.Id;
                CurrentUser.UserImage   = user.ImageSrc;
                CurrentUser.UserName    = user.Name;
                CurrentUser.UserOID     = user.IdentityUserOID;
                CurrentUser.UserRole    = role;
                CurrentUser.UserPage    = user.HomePage;
            }
        }
示例#4
0
        /// <summary>
        /// 获取个人信息
        /// </summary>
        /// <param name="id">用户编号</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public async Task <ProfileViewModel> GetProfileAsync(long id, ApplicationDbContext context)
        {
            var webModel = new ProfileViewModel();

            try
            {
                var model = await PSURepository.GetUserByIdAsync(id, context);

                webModel.Id         = model.Id.ToString();
                webModel.Name       = model.Name;
                webModel.Address    = model.Address;
                webModel.Age        = model.Age;
                webModel.CreateTime = model.CreatedOn.ToString();
                webModel.Email      = model.Email;
                webModel.Gender     = model.Gender;
                webModel.Phone      = model.Phone;
                webModel.Account    = model.Account;
                webModel.Department = model.Department;
                webModel.QQ         = model.QQ.ToString();
                webModel.Wechat     = model.Wechat;
            }
            catch (Exception ex)
            {
                _logger.LogError("获取用户个人数据失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
            }
            return(webModel);
        }
示例#5
0
        /// <summary>
        /// 获取公告详情页数据
        /// </summary>
        /// <param name="id">公告编号</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public async Task <BulletinDetailViewModel> GetBulletinDetailAsync(long id, ApplicationDbContext context)
        {
            //Get Bulletin Data
            var bulletin = await HomeRepository.GetEntityAsync(id, context);

            //Get Operate Data
            var record = await PSURepository.GetRecordListAsync(id, context);

            var list = new List <Operate>();

            if (record != null && record.Any())
            {
                list.AddRange(record.Select(item => new Operate
                {
                    Name      = item.UserName,
                    DateTime  = item.DateTime.ToString("yyyy-MM-dd HH:mm"),
                    Operating = item.Operate
                }));
            }

            //Bulid Web Model
            var webModel = new BulletinDetailViewModel
            {
                Title       = bulletin.Title,
                Content     = bulletin.Content,
                CreatedOn   = bulletin.CreatedOn,
                OperateName = bulletin.CreatedName,
                OperateList = list.OrderBy(i => i.DateTime).ToList()
            };

            return(webModel);
        }
示例#6
0
        /// <summary>
        /// 获取寝室信息
        /// </summary>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public static async Task <List <Dorm> > GetDormitoryListAsync(ApplicationDbContext context)
        {
            var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

            int gender = user.Gender ? 1 : 2;
            var model  = await context.Dorm.AsNoTracking().Where(i => i.IsEnabled == true && i.Count > i.SelectedCount && (i.Type == 3 || i.Type == gender)).ToListAsync();

            return(model);
        }
示例#7
0
        /// <summary>
        /// 页面加载初始化
        /// </summary>
        /// <param name="id">当前用户编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <IndexViewModel> InitIndexPageAsync(long id, ApplicationDbContext context)
        {
            IndexViewModel webModel = new IndexViewModel();

            try
            {
                webModel.Count = await Repository.Areas.Student.HomeRepository.GetSameCityCountAsync(context);

                webModel.Question = Repository.Areas.Student.HomeRepository.GetQuestionCountAsync(context);
                webModel.Todo     = await Repository.Areas.Student.HomeRepository.GetTodoCountAsync(context);

                webModel.ClassCount = await Repository.Areas.Student.HomeRepository.GetClassCountAsync(context);

                var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

                var majorclass = await SchoolRepository.GetMajorClassAsync(user.MajorClassId, context);

                var instructor = await PSURepository.GetUserByIdAsync(majorclass.InstructorId, context);

                webModel.MyClass = new ClassData
                {
                    Department       = majorclass.DepartmentName,
                    InstructorName   = majorclass.InstructorName,
                    InstructorPhone  = instructor.Phone,
                    InstructorQQ     = instructor.QQ.ToString(),
                    InstructorWechat = string.IsNullOrEmpty(instructor.Wechat) ? "未预留微信号" : instructor.Wechat,
                    Major            = majorclass.MajorName,
                    Name             = majorclass.Name,
                    QQ      = majorclass.QQ,
                    Session = majorclass.SessionNum + "级",
                    Wechat  = string.IsNullOrEmpty(majorclass.Wechat) ? "未预留微信号" : majorclass.Wechat,
                };

                var bulletin = await Repository.Areas.Student.HomeRepository.GetBulletinInfo(context);

                webModel.BulletinInfo = new BulletinData
                {
                    Id      = bulletin.Id.ToString(),
                    Title   = bulletin.Title,
                    Content = bulletin.Content
                };
            }
            catch (Exception ex)
            {
                _logger.LogError("首页初始化失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
            }
            return(webModel);
        }
示例#8
0
        /// <summary>
        /// 选择寝室信息
        /// </summary>
        /// <param name="id">寝室编号</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public static async Task <BunkInfo> InsertAsync(long id, ApplicationDbContext context)
        {
            var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

            var dorm = await DormitoryRepository.GetDormAsync(id, context);

            //数据不准确
            if (user == null || dorm == null)
            {
                return(new BunkInfo
                {
                    Id = -1
                });
            }

            // 寝室已被选完
            if (dorm.SelectedCount == dorm.Count)
            {
                return(new BunkInfo
                {
                    Id = -2
                });
            }

            dorm.SelectedCount = Convert.ToInt16(dorm.SelectedCount + 1);

            BunkInfo model = new BunkInfo
            {
                BuildingId     = dorm.BuildingId,
                BuildingName   = dorm.BuildingName,
                Chosen         = dorm.SelectedCount,
                Count          = dorm.Count,
                DormId         = dorm.Id,
                DormName       = dorm.Name,
                Floor          = dorm.Floor,
                InstructorId   = user.InstructorId,
                MajorClassId   = user.MajorClassId,
                MajorClassName = user.MajorClass,
                StudentId      = user.Id,
                StudentName    = user.Name,
                BunkType       = dorm.BunkName,
            };

            await context.BunkInfo.AddAsync(model);

            return(model);
        }
示例#9
0
        /// <summary>
        /// 获取学生信息
        /// </summary>
        /// <param name="id">学生编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <StudentEditViewModel> GetStudentAsync(long id, ApplicationDbContext context)
        {
            var webModel = new StudentEditViewModel();

            try
            {
                var model = await PSURepository.GetUserByIdAsync(id, context);

                webModel.Id             = model.Id.ToString();
                webModel.Account        = model.Account;
                webModel.Address        = model.Address;
                webModel.Age            = model.Age;
                webModel.Birthday       = model.Birthday.ToString("yyyy-MM-dd");
                webModel.City           = model.City;
                webModel.CityId         = model.CityId;
                webModel.DepartmentId   = model.DepartmentId;
                webModel.DepartmentName = model.Department;
                webModel.District       = model.District;
                webModel.DistrictId     = model.DistrictId;
                webModel.Email          = model.Email;
                webModel.EndDate        = model.EndDate.ToString("yyyy-MM-dd");
                webModel.StartDate      = model.StartDate.ToString("yyyy-MM-dd");
                webModel.TicketId       = model.TicketId.ToString();
                webModel.HighSchool     = model.HighSchool;
                webModel.Hobbies        = model.Hobbies;
                webModel.MajorClass     = model.MajorClass;
                webModel.MajorClassId   = model.MajorClassId;
                webModel.Province       = model.Province;
                webModel.ProvinceId     = model.ProvinceId;
                webModel.Winning        = model.Winning;
                webModel.IsEnabled      = (Enable)(model.IsEnabled ? 1 : 0);
                webModel.Name           = model.Name;
                webModel.QQ             = model.QQ.ToString();
                webModel.Wechat         = model.Wechat;
                webModel.Gender         = model.Gender;
                webModel.IdNumber       = model.IdNumber;
                webModel.Password       = model.Password;
                webModel.Phone          = model.Phone;
            }
            catch (Exception ex)
            {
                _logger.LogError("获取学生数据失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
            }
            return(webModel);
        }
示例#10
0
        /// <summary>
        /// 新增提问信息
        /// </summary>
        /// <param name="content">提问内容</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public static async Task <Question> InsertAsync(string content, ApplicationDbContext context)
        {
            var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

            var instructor = await PSURepository.GetUserByIdAsync(user.InstructorId, context);

            if (user == null || instructor == null)
            {
                return(new Question
                {
                    Id = -1
                });
            }

            Question model = InsertModel(user, instructor, content);

            await context.Question.AddAsync(model);

            return(model);
        }
示例#11
0
        /// <summary>
        ///删除宿舍楼信息
        /// </summary>
        /// <param name="id">宿舍楼编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <bool> DeleteBuildingAsync(long id, ApplicationDbContext context)
        {
            try
            {
                //Delete Building Data
                await DormitoryRepository.DeleteAsync(id, context);

                //Add Operate Information
                var operate = string.Format("删除宿舍楼数据,宿舍楼Id:{0}", id);
                PSURepository.InsertRecordAsync("Building", "DormitoryDomain", "DeleteBuildingAsync", operate, (short)PSURepository.OperateCode.Delete, id, context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("删除宿舍楼失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#12
0
        /// <summary>
        /// 更新宿舍信息
        /// </summary>
        /// <param name="webModel">编辑页视图Model</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <bool> UpdateInformationAsync(InformationEditViewModel webModel, ApplicationDbContext context)
        {
            try
            {
                //Update Building Data
                DormitoryRepository.UpdateAsync(webModel, context);

                //Add Operate Information
                var operate = string.Format("修改宿舍信息,宿舍编号:{0}", webModel.Id);
                PSURepository.InsertRecordAsync("Dorm", "DormitoryDomain", "UpdateInformationAsync", operate, (short)PSURepository.OperateCode.Update, Convert.ToInt64(webModel.Id), context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("更新宿舍失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#13
0
        /// <summary>
        ///删除迎新服务信息
        /// </summary>
        /// <param name="id">迎新服务编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <bool> DeleteServiceAsync(long id, ApplicationDbContext context)
        {
            try
            {
                //Delete Service Data
                await AdmissionRepository.DeleteServiceAsync(id, context);

                //Add Operate Information
                var operate = string.Format("删除迎新服务信息,迎新服务编号:{0}", id);
                PSURepository.InsertRecordAsync("Service", "AdmissionDomain", "DeleteServiceAsync", operate, (short)PSURepository.OperateCode.Delete, id, context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("删除迎新服务失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#14
0
        /// <summary>
        /// 回复学生疑问信息
        /// </summary>
        /// <param name="webModel">回复信息页视图Model</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public async Task <bool> ReplyQuestionAsync(QuestionReplyViewModel webModel, ApplicationDbContext context)
        {
            try
            {
                //Update Question Data
                QuestionRepository.ReplyQuestionAsync(webModel, context);

                //Add Operate Information
                var operate = string.Format("回复学生疑问信息,学生疑问编号:{0}", webModel.Id);
                PSURepository.InsertRecordAsync("Question", "QuestionDomain", "ReplyQuestionAsync", operate, (short)PSURepository.OperateCode.Update, Convert.ToInt64(webModel.Id), context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("回复学生疑问失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#15
0
        /// <summary>
        ///删除学生信息
        /// </summary>
        /// <param name="id">学生编号</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <bool> DeleteStudentAsync(long id, ApplicationDbContext context)
        {
            try
            {
                //Delete staff Data
                await BasicRepository.DeleteStaffAsync(id, context);

                //Add Operate Information
                var operate = string.Format("删除学生数据,学生编号:{0}", id);
                PSURepository.InsertRecordAsync("IdentityUser", "BasicDomain", "DeleteStudentAsync", operate, (short)PSURepository.OperateCode.Delete, id, context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("删除学生失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#16
0
        /// <summary>
        /// 更新物品信息
        /// </summary>
        /// <param name="webModel">编辑页视图Model</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <bool> UpdateGoodsAsync(GoodsEditViewModel webModel, ApplicationDbContext context)
        {
            try
            {
                //Update Service Data
                AdmissionRepository.UpdateAsync(webModel, context);

                //Add Operate Information
                var operate = string.Format("修改物品信息,物品编号:{0}", webModel.Id);
                PSURepository.InsertRecordAsync("Goods", "AdmissionDomain", "UpdateGoodsAsync", operate, (short)PSURepository.OperateCode.Update, Convert.ToInt64(webModel.Id), context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("更新物品信息失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#17
0
        /// <summary>
        /// 更新专业班级数据
        /// </summary>
        /// <param name="webModel">编辑页视图Model</param>
        /// <param name="context">数据库连接上下文对象</param>
        /// <returns></returns>
        public async Task <bool> UpdateMajorClassAsync(MajorClassEditViewModel webModel, ApplicationDbContext context)
        {
            try
            {
                //Update Major Class Data
                SchoolRepository.UpdateAsync(webModel, context);

                //Add Operate Information
                var operate = string.Format("修改专业班级信息,专业班级编号:{0}", webModel.Id);
                PSURepository.InsertRecordAsync("MajorClass", "SchoolDomain", "UpdateMajorClassAsync", operate, (short)PSURepository.OperateCode.Update, Convert.ToInt64(webModel.Id), context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("更新专业班级失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#18
0
        /// <summary>
        /// 更新公告数据
        /// </summary>
        /// <param name="webModel">公告编辑页视图模型</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public async Task <bool> UpdateBulletinAsync(BulletinEditViewModel webModel, ApplicationDbContext context)
        {
            try
            {
                //Update Bulletin Data
                HomeRepository.UpdateAsync(Convert.ToInt64(webModel.Id), webModel.Title, (short)webModel.Target, (short)webModel.Type, webModel.Content, context);

                //Add Operate Information
                var operate = string.Format("修改公告信息,公告编号:{0}", webModel.Id);
                PSURepository.InsertRecordAsync("Bulletin", "HomeDomain", "UpdateBulletinAsync", operate, (short)PSURepository.OperateCode.Update, Convert.ToInt64(webModel.Id), context);

                var index = await context.SaveChangesAsync();

                return(index == 2 ? true : false);
            }
            catch (Exception ex)
            {
                _logger.LogError("更新公告数据失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#19
0
        /// <summary>
        /// 更新个人信息
        /// </summary>
        /// <param name="webModel">个人信息页视图Model</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public async Task <bool> UpdateProfileAsync(ProfileViewModel webModel, ApplicationDbContext context)
        {
            try
            {
                //Update IdentityUser Data
                UserRepository.UpdateAsync(webModel, context);

                //Add Operate Information
                var operate = string.Format("修改个人信息,账户编号:{0}", webModel.Id);
                PSURepository.InsertRecordAsync("IdentityUser", "UserDomain", "UpdateProfileAsync", operate, (short)PSURepository.OperateCode.Update, Convert.ToInt64(webModel.Id), context);

                var index = await context.SaveChangesAsync();

                return(index == 2);
            }
            catch (Exception ex)
            {
                _logger.LogError("更新个人信息失败:{0},\r\n内部错误信息:{1}", ex.Message, ex.InnerException.Message);
                return(false);
            }
        }
示例#20
0
 /// <summary>
 /// 登录系统
 /// </summary>
 /// <param name="account"></param>
 /// <param name="password"></param>
 /// <returns></returns>
 public async Task <IdentityUser> GetUserAsync(string account, string password, ApplicationDbContext context)
 {
     return(await PSURepository.GetUserAsync(account, context));
 }
示例#21
0
        /// <summary>
        /// 判断当前用户名是否存在
        /// </summary>
        /// <param name="account"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task <bool> CheckAccountAsync(string account, ApplicationDbContext context)
        {
            var model = await PSURepository.GetUserByAccountAsync(account, context);

            return(model != null);
        }
示例#22
0
        /// <summary>
        /// 获取班级人数
        /// </summary>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public static async Task <int> GetClassCountAsync(ApplicationDbContext context)
        {
            var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

            return(context.IdentityUser.AsNoTracking().Select(i => i.MajorClassId == user.MajorClassId).ToList().Count());
        }
示例#23
0
        /// <summary>
        /// 获取同一城市的人
        /// </summary>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public static async Task <int> GetSameCityCountAsync(ApplicationDbContext context)
        {
            var user = await PSURepository.GetUserByIdAsync(CurrentUser.UserId, context);

            return(context.IdentityUser.AsNoTracking().Where(i => i.AccountType == 2 && i.CityId == user.CityId && i.Id != user.Id).ToList().Count());
        }