예제 #1
0
        public Result <bool> ReadNotification(int userId, int notificationId)
        {
            try
            {
                var model = new NotificationEntity
                {
                    Id         = notificationId,
                    IsSeen     = true,
                    ReceiverId = userId,
                };

                Update(model, n => n.IsSeen);
                var result = SaveChanges();

                if (!result)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(result));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed(false, message: e.Message));
            }
        }
예제 #2
0
        public Result <List <CommentViewModel> > GetItemComments(int itemId, int pageNo, int pageSize)
        {
            try
            {
                var comments = GetAllPaginated(c => c.ItemId == itemId, pageNo, pageSize, "User");
                if (comments.Data == null)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                var result = comments.Data.Select(c => new CommentViewModel
                {
                    Id      = c.Id,
                    Content = c.Content,
                    Date    = c.Date,
                    User    = new UserViewModel
                    {
                        Id      = c.User.Id,
                        Name    = c.User.Name,
                        Picture = c.User.Picture
                    }
                }).ToList();

                return(ResultHelper.Succeeded(result, result.Count));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <List <CommentViewModel> >(message: e.Message));
            }
        }
예제 #3
0
        public Result <bool> ChangePassword(int userId, UserPasswordViewModel password)
        {
            try
            {
                if (password.NewPassword != password.RepeatedNewPassword)
                {
                    throw new Exception(EResultMessage.InvalidData.ToString());
                }

                var user = Get(u => u.Id == userId);
                if (user == null)
                {
                    throw new Exception(EResultMessage.NotFound.ToString());
                }

                if (!Protected.Validate(password.OldPassword, user.HashPassword))
                {
                    throw new Exception(EResultMessage.WrongPassword.ToString());
                }

                user.HashPassword = Protected.CreatePasswordHash(password.NewPassword);
                Update(user);

                if (!SaveChanges())
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(true, message: EResultMessage.RegistrationDone.ToString()));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
예제 #4
0
 public HttpResponseMessage DelStudent([FromBody] DelStuOrTch m)
 {
     lock (_locker)
     {
         var exam = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);//找到这次考试
         if (exam == null)
         {
             return(ResultHelper.Failed("未找到该次考试"));
         }
         St_Info st = MongoDbHelper.FindOne <St_Info>(m.UserID, DbName.St_Info);//找到这个学生
         if (st == null)
         {
             return(ResultHelper.Failed("未找到该考生信息"));
         }
         var ppnm = MongoDbHelper.QueryOne <Pp_Nm>(DbName.Pp_Nm, w => w.sid == st.sid && w.eid == exam._id);//找到这个学校试卷数量
         ppnm.ct--;
         for (int i = 0; i < st.subEs.Count; i++)
         {
             var sb = exam.sbs.Where(w => w._id == st.subEs[i].sbid).FirstOrDefault();
             var pp = ppnm.sbnms.Where(w => w.sbid == st.subEs[i].sbid).FirstOrDefault();
             sb.stct--;
             pp.sct--;
         }
         MongoDbHelper.ReplaceOne(ppnm._id.ToString(), ppnm, DbName.Pp_Nm);
         MongoDbHelper.ReplaceOne(m.ExamID, exam, DbName.E_Info);
         MongoDbHelper.DeleteOne <St_Info>(m.UserID, DbName.St_Info);
         return(ResultHelper.OK());
     }
 }
예제 #5
0
        public Result <List <MessageViewModel> > GetMessages(int chatId)
        {
            try
            {
                var Messages = GetAll(i => i.ChatId == chatId);

                if (Messages == null)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                var result = Messages.Select(i =>
                {
                    return(new MessageViewModel
                    {
                        Id = i.Id,
                        Content = i.Content,
                        Time = i.Time,
                        Type = i.Type,
                        SenderId = i.UserId
                    });
                }).ToList();

                return(ResultHelper.Succeeded(result));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <List <MessageViewModel> >(message: e.Message));
            }
        }
예제 #6
0
 /// <summary>
 /// 删除学校所有学生导入结束也可以删
 /// </summary>
 /// <param name="m"></param>
 /// <returns></returns>
 public HttpResponseMessage DelSchStudent1([FromBody] DelStuOrTch m)
 {
     lock (_locker)
     {
         var exam = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);//找到这次考试
         if (exam == null)
         {
             return(ResultHelper.Failed("未找到该次考试"));
         }
         var sts  = MongoDbHelper.QueryBy <St_Info>(DbName.St_Info, w => w.sid == m.UserID && w.eid == exam._id); //找到这个学校学生
         var ppnm = MongoDbHelper.QueryOne <Pp_Nm>(DbName.Pp_Nm, w => w.sid == m.UserID && w.eid == exam._id);    //找到这个学校试卷数量
         if (ppnm != null)
         {
             MongoDbHelper.DeleteOne <Pp_Nm>(ppnm._id.ToString(), DbName.Pp_Nm);
         }
         foreach (var st in sts)
         {
             for (int i = 0; i < st.subEs.Count; i++)
             {
                 var sb = exam.sbs.Where(w => w._id == st.subEs[i].sbid).FirstOrDefault();
                 sb.stct--;
             }
             MongoDbHelper.DeleteOne <St_Info>(st._id.ToString(), DbName.St_Info);
         }
         var filter = new BsonDocument();
         filter.Add("sid", m.UserID);
         filter.Add("eid", exam._id);
         MongoDbHelper.DeleteByBson <St_Info>(filter, DbName.St_Info);
         MongoDbHelper.ReplaceOne(m.ExamID, exam, DbName.E_Info);
         return(ResultHelper.OK());
     }
 }
예제 #7
0
        public Result <List <NotificationViewModel> > GetUserNotifications(int userId, int pageNo, int pageSize)
        {
            try
            {
                var notifications = GetAllPaginated(n => n.ReceiverId == userId, pageNo, pageSize, "Sender");

                if (notifications.Data == null)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                var result = notifications.Data.Select(n => new NotificationViewModel
                {
                    Id      = n.Id,
                    Content = n.Content,
                    IsSeen  = n.IsSeen,
                    Link    = n.Link,
                    Type    = n.Type,
                    Date    = n.Date,
                    Sender  = n.Sender != null ? new UserViewModel
                    {
                        Id      = n.Sender.Id,
                        Name    = n.Sender.Name,
                        Picture = n.Sender.Picture
                    } : null
                }).ToList();

                return(ResultHelper.Succeeded(result, notifications.Count));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <List <NotificationViewModel> >(message: e.Message));
            }
        }
예제 #8
0
        public HttpResponseMessage Login([FromBody] UserLogin m)
        {
            var info = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == m.Account);

            if (info != null)
            {
                if (m.Password == CommonHelper.SecurityHelper.DecryptString(info.pwd))
                {
                    Models.User su = new Models.User()
                    {
                        ID             = info._id,
                        Email          = info.em,
                        PersonName     = info.pnm,
                        QQ             = info.qq,
                        SchoolFullName = info.sfnm,
                        SchoolName     = info.snm,
                        Tel            = info.ph,
                        AreaID         = info.area,
                        Area           = info.tp == 0 ? null : Dict.Area.GetVal(info.area),
                        Type           = info.tp,
                        SchoolID       = info.tp != 1 ? null : info._id
                    };
                    return(ResultHelper.OK(su));
                }
                else
                {
                    return(ResultHelper.Failed("密码不正确"));
                }
            }
            else
            {
                return(ResultHelper.Failed("用户不存在"));
            }
        }
예제 #9
0
        public Result <bool> Confirm(int?id, string token)
        {
            try
            {
                if (id == null || token == null)
                {
                    throw new Exception("Wrong Link");
                }
                var user = Get(u => u.Id == id);
                if (user == null)
                {
                    throw new Exception("Not found User");
                }

                int userId = _tokenManager.ValidateToken(token, user.Type).Id;
                if (userId != id)
                {
                    throw new Exception("Wrong Link");
                }

                user.IsConfirmed = true;
                Update(user);
                SaveChanges();
                return(ResultHelper.Succeeded(data: true));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
예제 #10
0
        public Result <UserViewModel> Login(LoginViewModel user)
        {
            try
            {
                var userResult = Get(u => u.Email.ToUpper() == user.Email.ToUpper());

                if (userResult == null)
                {
                    throw new Exception(EResultMessage.EmailOrPasswordWrong.ToString());
                }
                if (!userResult.IsConfirmed)
                {
                    throw new Exception(EResultMessage.UserNotConfirmed.ToString());
                }

                if (!Protected.Validate(user.Password, userResult.HashPassword))
                {
                    throw new Exception(EResultMessage.EmailOrPasswordWrong.ToString());
                }

                return(ResultHelper.Succeeded(_tokenManager.GenerateUserToken(userResult)));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <UserViewModel>(message: e.Message));
            }
        }
예제 #11
0
        public HttpResponseMessage SendScore([FromBody] SendScore m)
        {
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未查到当前考试"));
            }
            if (m.School.ToLower() == "all")
            {
                var allsch = MongoDbHelper.QueryBy <Sch_Sc>(DbName.Sch_Sc, w => w.eid == eInfo._id);
                for (int i = 0; i < allsch.Count; i++)
                {
                    allsch[i].state = 1;
                    MongoDbHelper.ReplaceOne(allsch[i]._id.ToString(), allsch[i], DbName.Sch_Sc);
                }
                return(ResultHelper.OK());
            }
            var sch = MongoDbHelper.QueryOne <Sch_Sc>(DbName.Sch_Sc, w => w.eid == eInfo._id && w.sid == m.School);

            if (sch != null)
            {
                sch.state = 1;
                MongoDbHelper.ReplaceOne(sch._id.ToString(), sch, DbName.Sch_Sc);
                return(ResultHelper.OK());
            }
            return(ResultHelper.Failed("未找到该学校"));
        }
예제 #12
0
        public async Task <Result <bool> > ContactUs(int userId, ContactUsViewModel contactUs)
        {
            try
            {
                var body = File.ReadAllText("wwwroot/html/contactus.html");
                body = body.Replace("{user-email}", contactUs.Email);
                body = body.Replace("{user-id}", userId.ToString());
                body = body.Replace("{user-message}", contactUs.Message);

                await _mailProvider.SendAsync(new MailMessageViewModel
                {
                    From       = contactUs.Email,
                    To         = MailProvider.SMTP_USER,
                    Subject    = contactUs.Subject,
                    Body       = body,
                    IsBodyHtml = true
                });

                return(ResultHelper.Succeeded(true));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
예제 #13
0
        public Result <bool> EditItem(int userId, int itemId, ItemViewModel item)
        {
            try
            {
                var data = new ItemEntity
                {
                    Id      = itemId,
                    Content = item.Content,
                    UserId  = userId
                };

                Update(data, i => i.Content);

                var result = SaveChanges();

                if (!result)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(result));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
예제 #14
0
        public Result <List <ItemDetailsViewModel> > GetItems(int?userId, bool isLost, int pageNo, int pageSize)
        {
            try
            {
                var items = GetAllPaginated(i => i.UserId == (userId ?? i.UserId) && i.IsLost == isLost && i.MatchDate == null, pageNo, pageSize,
                                            "Images", "Attributes", "User");

                if (items.Data == null)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                var result = items.Data.Select(i => new ItemDetailsViewModel
                {
                    Id           = i.Id,
                    Content      = i.Content,
                    CreationDate = i.CreationDate,
                    Type         = i.Type,
                    Attributes   = i.Attributes.ToDictionary(i => i.Key, i => i.Value),
                    Images       = i.Images.Select(i => i.Image).ToList(),
                    User         = new UserViewModel
                    {
                        Name    = i.User.Name,
                        Picture = i.User.Picture
                    }
                }).OrderByDescending(i => i.CreationDate).ToList();

                return(ResultHelper.Succeeded(result, items.Count));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <List <ItemDetailsViewModel> >(message: e.Message));
            }
        }
예제 #15
0
        public Result <bool> AddFeedback(int userId, FeedbackViewModel feedbackViewModel)
        {
            try
            {
                var feedback = new FeedbackEntity
                {
                    Rate    = feedbackViewModel.Rate,
                    Opinion = feedbackViewModel.Opinion,
                    UserId  = userId
                };

                Add(feedback);

                var result = SaveChanges();

                if (!result)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(data: true));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed(data: false, message: e.Message));
            }
        }
예제 #16
0
        public Result <int> AddComment(int userId, int itemId, CommentViewModel comment)
        {
            try
            {
                var data = new CommentEntity
                {
                    Content = comment.Content,
                    Date    = DateTime.UtcNow,
                    ItemId  = itemId,
                    UserId  = userId
                };
                var result = Add(data);

                if (result == null || !SaveChanges())
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(result.Id));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <int>(message: e.Message));
            }
        }
예제 #17
0
        public HttpResponseMessage SelStudentNum([FromBody] ExamAndID m)
        {
            var      eInfo    = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);
            ObjectId objectId = new ObjectId();

            if (ObjectId.TryParse(m.ExamID, out objectId))
            {
                var data = MongoDbHelper.QueryOne <Pp_Nm>(DbName.Pp_Nm, w => w.sid == m.ID && w.eid == objectId);
                if (data == null)
                {
                    return(ResultHelper.OK(new { Data = new List <PaperNum>(), Count = 0 }));
                }
                PaperNum t = new PaperNum();
                t.IsSure = data.iss;
                for (int j = 0; j < eInfo.sbs.Count; j++)
                {
                    SubNum sub = new SubNum();
                    var    s   = data.sbnms.Where(w => w.sbid == eInfo.sbs[j]._id).FirstOrDefault();
                    sub.SubID    = s.sbid.ToString();
                    sub.SubName  = s.sbnm;
                    sub.SubCount = s.sct;
                    sub.AcCount  = s.ac;
                    t.Subs.Add(sub);
                }
                return(ResultHelper.OK(t));
            }
            return(ResultHelper.Failed("未找到该次考试"));
        }
예제 #18
0
        public Result <bool> EditSettings(int userId, UserViewModel user)
        {
            try
            {
                var data = new UserEntity
                {
                    Id          = userId,
                    Name        = user.Name,
                    Picture     = user.Picture,
                    Address     = user.Address,
                    PhoneNumber = user.PhoneNumber
                };

                Update(data, i => i.Name, i => i.Picture, i => i.Address, i => i.PhoneNumber);

                var result = SaveChanges();

                if (!result)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                return(ResultHelper.Succeeded(result));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <bool>(message: e.Message));
            }
        }
예제 #19
0
        public HttpResponseMessage ExportPaperExcel([FromBody] ExportPaper m)
        {
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未查到当前考试"));
            }
            var filter = new BsonDocument();

            filter.Add("eid", eInfo._id);
            if (!string.IsNullOrEmpty(m.School))
            {
                int id = -1;
                if (int.TryParse(m.School, out id))
                {
                    filter.Add("sid", m.School);
                }
                else
                {
                    filter.Add("snm", m.School);
                }
            }
            var           sts  = MongoDbHelper.GetPagedList1 <Pp_Nm, string>(DbName.Pp_Nm, 0, 0, filter, w => w.sid);
            List <string> data = ExcelBLL.GetPaperColumn(eInfo);
            DataTable     dt   = new DataTable();

            for (int j = 0; j < data.Count; j++)
            {
                dt.Columns.Add(data[j]);
            }
            for (int i = 0; i < sts.Count; i++)
            {
                DataRow dr    = dt.NewRow();
                var     count = 0;
                dr[0] = sts[i].sid;
                dr[1] = sts[i].snm;
                for (int j = 0; j < eInfo.sbs.Count; j++)
                {
                    var pp = sts[i].sbnms.Where(w => w.sbnm == eInfo.sbs[j].sbnm).FirstOrDefault();
                    if (pp != null)
                    {
                        dr[3 + j] = pp.sct;
                        count    += pp.sct;
                    }
                    else
                    {
                        dr[3 + j] = 0;
                    }
                }
                dr[2] = count;
                dt.Rows.Add(dr);
            }
            string file = ExcelBLL.BuildExcel1(data.ToArray(), dt);
            string url  = RequestContext.Url.Request.RequestUri.Authority + "\\" + file;

            return(ResultHelper.OK(url));
        }
예제 #20
0
        public HttpResponseMessage ImportScore([FromBody] ExamID m)
        {
            try
            {
                var exam = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info);
                if (exam == null)
                {
                    return(ResultHelper.Failed("未找到考试信息"));
                }
                if (exam.btstate == 1)
                {
                    var exam2 = MongoDbHelper.QueryOne <E_Info>(DbName.E_Info, w => w.btstate == 0 && w.IsDel == 0);
                    if (exam2 != null)
                    {
                        return(ResultHelper.Failed("考试已结束,无法再次导入成绩"));
                    }
                }
                var filter = new BsonDocument();
                filter.Add("eid", exam._id);

                string path    = AppDomain.CurrentDomain.BaseDirectory + "ftp\\";
                string path1   = AppDomain.CurrentDomain.BaseDirectory + "ScoreBackUp\\";
                string zipfile = path + "StudentScore.zip";
                //Function.UnZipFile(zipfile, path);
                if (!File.Exists(zipfile))
                {
                    return(ResultHelper.Failed("暂未发布成绩"));
                }
                if (!Function.UnRarOrZip(zipfile, path, null))
                {
                    return(ResultHelper.Failed("成绩获取失败,请联系管理员"));
                }
                //File.Delete(zipfile);
                string filepath  = path + "StudentScore.xls";
                string filepath1 = path1 + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                if (!System.IO.Directory.Exists(path1))
                {
                    // 目录不存在,建立目录
                    System.IO.Directory.CreateDirectory(path1);
                }
                System.IO.File.Copy(filepath, filepath1, true);
                MongoDbHelper.DeleteByBson <St_Sc>(filter, DbName.St_Sc);
                exam.btstate = 1;
                MongoDbHelper.ReplaceOne(exam._id.ToString(), exam, DbName.E_Info);
                int    errnum = 0;
                string msg    = BLL.ExcelBLL.ImportScoreExcel(filepath, exam, out errnum);
                if (msg != "")
                {
                    string url = RequestContext.Url.Request.RequestUri.Authority + "\\" + msg;
                    return(ResultHelper.Failed("导入失败" + errnum + "条--" + url));
                }
                return(ResultHelper.OK());
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed("导入失败" + e.Message));
            }
        }
예제 #21
0
        public HttpResponseMessage ExportTchExcel([FromBody] ExportTchInfo m)
        {
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未查到当前考试"));
            }
            var filter = new BsonDocument();

            filter.Add("eid", eInfo._id);
            if (!string.IsNullOrEmpty(m.School))
            {
                int id = -1;
                if (int.TryParse(m.School, out id))
                {
                    filter.Add("sid", m.School);
                }
                else
                {
                    filter.Add("snm", m.School);
                }
            }
            if (!string.IsNullOrEmpty(m.Subject))
            {
                filter.Add("sb", m.Subject);
            }
            if (!string.IsNullOrEmpty(m.Name))
            {
                filter.Add("nm", m.Name);
            }
            var           tchs = MongoDbHelper.GetPagedList1 <Tch_Info, string>(DbName.Tch_Info, 0, 0, filter, w => w.nm);
            List <string> data = ExcelBLL.GetTchColumn();
            DataTable     dt   = new DataTable();

            for (int j = 0; j < data.Count; j++)
            {
                dt.Columns.Add(data[j]);
            }
            for (int i = 0; i < tchs.Count; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = tchs[i].sid;
                dr[1] = tchs[i].snm;
                dr[2] = tchs[i].sb;
                dr[3] = tchs[i].nm;
                dr[4] = tchs[i].sx == 0 ? "女" : "男";
                dr[5] = tchs[i].zc;
                dr[6] = tchs[i].ph;
                dt.Rows.Add(dr);
            }
            string file = ExcelBLL.BuildExcel1(data.ToArray(), dt);
            string url  = RequestContext.Url.Request.RequestUri.Authority + "\\" + file;

            return(ResultHelper.OK(url));
        }
예제 #22
0
        public HttpResponseMessage DelExam([FromBody] ExamID m)
        {
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未找到该次考试信息"));
            }
            eInfo.IsDel = 1;
            MongoDbHelper.ReplaceOne <E_Info>(m.ID, eInfo, DbName.E_Info);
            return(ResultHelper.OK());
        }
예제 #23
0
        public HttpResponseMessage ReadMsg([FromBody] ExamID m)
        {
            var mg = MongoDbHelper.FindOne <Msg_S>(m.ID, DbName.Msg_S);

            if (mg == null)
            {
                return(ResultHelper.Failed("未找到该消息"));
            }
            mg.ir = 1;
            MongoDbHelper.ReplaceOne(m.ID, mg, DbName.Msg_S);
            return(ResultHelper.OK());
        }
예제 #24
0
        public HttpResponseMessage DelUser([FromBody] ExamID m)
        {
            var sch = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == m.ID);

            if (sch != null)
            {
                var filter = new BsonDocument();
                filter.Add("_id", m.ID);
                MongoDbHelper.DeleteByBson <U_Info>(filter, DbName.U_Info);
                return(ResultHelper.OK());
            }
            return(ResultHelper.Failed("未找到该学校"));
        }
예제 #25
0
        public HttpResponseMessage EditStudent([FromBody] StudentInfo m)
        {
            St_Info st = MongoDbHelper.FindOne <St_Info>(m.ID, DbName.St_Info);

            if (st == null)
            {
                return(ResultHelper.Failed("未找到该学生信息"));
            }
            if (m.StudentID != st.stid)
            {
                St_Info st1 = MongoDbHelper.QueryOne <St_Info>(DbName.St_Info, w => w.stid == m.StudentID);
                if (st1 != null)
                {
                    return(ResultHelper.Failed("考号已存在"));
                }
            }
            if (!Function.MathIdCard(m.IdCard))
            {
                return(ResultHelper.Failed("身份证号不正确"));
            }
            if (m.IdCard != st.idcd)
            {
                St_Info st1 = MongoDbHelper.QueryOne <St_Info>(DbName.St_Info, w => w.idcd == m.IdCard);
                if (st1 != null)
                {
                    return(ResultHelper.Failed("身份证号已存在"));
                }
            }
            st.cls  = m.Class;
            st.idcd = m.IdCard;
            st.nm   = m.Name;
            st.stid = m.StudentID;
            //st.subEs = new List<SubE>();
            //for (int i = 0; i < m.Subs.Count; i++)
            //{
            //    ObjectId objectid1 = new ObjectId();
            //    if (ObjectId.TryParse(m.Subs[i].SubID, out objectid1))
            //    {
            //        SubE sb = new SubE();
            //        sb.sbid = objectid1;
            //        sb.sbnm = m.Subs[i].SubName;
            //        sb.sbrm = m.Subs[i].SubRoom;
            //        sb.sbst = m.Subs[i].SubSite;
            //        sb.sbtch = m.Subs[i].SubTeacher;
            //        st.subEs.Add(sb);
            //    }
            //}
            MongoDbHelper.ReplaceOne(m.ID, st, DbName.St_Info);
            return(ResultHelper.OK());
        }
예제 #26
0
        public HttpResponseMessage SelectExam([FromBody] ExamID m)
        {
            if (m == null)
            {
                return(ResultHelper.Failed("类容不能为空"));
            }
            var eInfo = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info);

            if (eInfo == null)
            {
                return(ResultHelper.Failed("未找到该次考试信息"));
            }
            ExamInfo e = new ExamInfo();

            e.ID           = eInfo._id.ToString();
            e.PublishID    = eInfo.ppid;
            e.PublishTime  = eInfo.pt;
            e.PublishName  = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid) == null ? "未知" : MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid).pnm;
            e.ExamName     = eInfo.enm;
            e.StuStartTime = eInfo.sst;
            e.StuEndTime   = eInfo.set;
            e.TchStartTime = eInfo.tst;
            e.TchEndTime   = eInfo.tet;
            e.StuConfirm   = eInfo.stcfm;
            e.TchConfirm   = eInfo.tchcfm;
            e.ButtonState  = eInfo.btstate;
            e.StuStart     = Function.ConvertDateI(DateTime.Now) > eInfo.sst ? 1 : 0;
            e.TchStart     = Function.ConvertDateI(DateTime.Now) > eInfo.tst ? 1 : 0;
            e.StuEnd       = Function.ConvertDateI(DateTime.Now) > eInfo.set ? 1 : 0;
            e.TchEnd       = Function.ConvertDateI(DateTime.Now) > eInfo.tet ? 1 : 0;
            if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst)
            {
                e.IsScan = 0;
            }
            else
            {
                e.IsScan = 1;
            }
            foreach (var item in eInfo.sbs)
            {
                e.subNames.Add(item._id, item.sbnm);
            }
            foreach (var item in eInfo.stps)
            {
                e.stuTypes += item.tp + ",";
            }
            e.stuTypes = e.stuTypes.Remove(e.stuTypes.Length - 1);
            return(ResultHelper.OK(e));
        }
예제 #27
0
        public HttpResponseMessage ReSetPwd([FromBody] ReSetPwd m)
        {
            var info = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == m.Account);

            if (info != null)
            {
                info.pwd = SecurityHelper.EncryptString("666666");
                MongoDbHelper.ReplaceOne1 <U_Info>(m.Account, info, DbName.U_Info);
                return(ResultHelper.OK());
            }
            else
            {
                return(ResultHelper.Failed("用户不存在"));
            }
        }
예제 #28
0
        public Result <List <ChatViewModel> > GetChatList(int userId)
        {
            try
            {
                var chatList = GetAll(i => i.Users.Any(j => j.UserId == userId),
                                      "Messages.User", "Users.User");

                if (chatList == null)
                {
                    throw new Exception(EResultMessage.DatabaseError.ToString());
                }

                var result = chatList.Select(i =>
                {
                    var user        = i.Users.FirstOrDefault(j => userId != j.UserId).User;
                    var lastMessage = i.Messages.OrderByDescending(j => j.Time).FirstOrDefault();

                    return(new ChatViewModel
                    {
                        Id = i.Id,
                        User = new UserViewModel
                        {
                            Id = user.Id,
                            Name = user.Name,
                            Picture = user.Picture
                        },
                        LastMessage = lastMessage == null ? null : new MessageViewModel
                        {
                            Content = lastMessage.Content,
                            Time = lastMessage.Time,
                            Type = lastMessage.Type,
                            Sender = new UserViewModel
                            {
                                Id = lastMessage.User.Id,
                                Name = lastMessage.User.Name,
                                Picture = lastMessage.User.Picture
                            }
                        }
                    });
                }).ToList();

                return(ResultHelper.Succeeded(result));
            }
            catch (Exception e)
            {
                return(ResultHelper.Failed <List <ChatViewModel> >(message: e.Message));
            }
        }
예제 #29
0
        public HttpResponseMessage EditAdmin([FromBody] AdminUser m)
        {
            if (m == null || m.Account == "")
            {
                return(ResultHelper.Failed("账号不能为空"));
            }
            var u = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == m.Account);

            if (u == null)
            {
                return(ResultHelper.Failed("该用户不存在"));
            }
            u.pnm = m.Name;
            MongoDbHelper.ReplaceOne1 <U_Info>(m.Account, u, DbName.U_Info);
            return(ResultHelper.OK());
        }
예제 #30
0
        public HttpResponseMessage Update0([FromBody] ExamID m)
        {
            ObjectId objectid = new ObjectId();

            if (ObjectId.TryParse(m.ID, out objectid))
            {
                var stus = MongoDbHelper.QueryBy <St_Info>(DbName.St_Info, w => w.eid == objectid);
                for (int i = 0; i < stus.Count; i++)
                {
                    stus[i].stid = stus[i].stid.PadLeft(10, '0');
                    MongoDbHelper.ReplaceOne(stus[i]._id.ToString(), stus[i], DbName.St_Info);
                }
                return(ResultHelper.OK());
            }
            return(ResultHelper.Failed("考试ID不对"));
        }