Ejemplo n.º 1
0
        /// <summary>
        /// 注册(有StudentId)
        /// </summary>
        /// <param name="unionId"></param>
        /// <param name="studentId"></param>
        /// <param name="name"></param>
        /// <param name="mobile"></param>
        /// <param name="idNo"></param>
        /// <param name="relation"></param>
        /// <returns></returns>
        public bool Register(string unionId, Guid studentId, string name, string mobile, string idNo, string relation)
        {
            try
            {
                var q        = Db.Parent.Where(x => x.UnionId == unionId);
                var parentId = Guid.NewGuid();
                if (!q.Any())
                {
                    var parent = new Parent();
                    parent.Checkintime    = DateTime.Now;
                    parent.ColorStatus    = 0;
                    parent.HealthyStatus  = 0;
                    parent.IdNo           = idNo;
                    parent.LastAccessTime = DateTime.Now;
                    parent.Mobile         = mobile;
                    parent.Name           = name;
                    parent.ParentId       = parentId;
                    parent.Status         = (byte)EnumDataStatus.Normal;
                    parent.UnionId        = unionId;
                    Db.Parent.Add(parent);
                }
                else
                {
                    parentId = q.SingleOrDefault().ParentId;
                }

                var q1 = Db.StudentParent.Where(x => x.ParentId == parentId && x.StudentId == studentId);
                if (!q1.Any())
                {
                    var sp = new StudentParent();
                    sp.Checkintime  = DateTime.Now;
                    sp.ParentId     = parentId;
                    sp.Relationship = relation;
                    sp.Status       = (byte)EnumDataStatus.Normal;
                    sp.StudentId    = studentId;
                    Db.StudentParent.Add(sp);
                }

                Db.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException dex)
            {
                string error =
                    dex.EntityValidationErrors.FirstOrDefault().ValidationErrors.FirstOrDefault().ErrorMessage;
                SetError(error);
                return(false);
            }
            catch (Exception ex)
            {
                SetError(ex);
                return(false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 家长注册
        /// </summary>
        /// <param name="unionId"></param>
        /// <param name="teamId"></param>
        /// <param name="studentName"></param>
        /// <param name="relationType"></param>
        /// <returns></returns>
        public bool ParentRegister(string unionId, Guid teamId, string studentName, string studentAvatar, string relationType)
        {
            try
            {
                var qUser = Db.WeiXinUser.Where(x => x.UnionId == unionId);
                if (!qUser.Any())
                {
                    ErrorMessage = "用户不存在!";
                    return(false);
                }
                var user  = qUser.SingleOrDefault();
                var qTeam = Db.Team.Where(x => x.TeamId == teamId);
                if (!qTeam.Any())
                {
                    ErrorMessage = "班级不存在!";
                    return(false);
                }
                var  team      = qTeam.SingleOrDefault();
                var  qStudent  = Db.Student.Where(x => x.Name == studentName && x.TeamId == teamId);
                Guid studentId = Guid.NewGuid();
                if (!qStudent.Any())
                {
                    var student = new Student();
                    student.Status         = 1;
                    student.AvatarUrl      = studentAvatar;
                    student.Checkintime    = DateTime.Now;
                    student.LastAccessTime = DateTime.Now;
                    student.Name           = studentName;

                    student.StudentId = studentId;
                    student.No        = 0;
                    student.IdNo      = "";
                    student.TeamId    = teamId;

                    Db.Student.Add(student);
                }
                else
                {
                    var student = qStudent.SingleOrDefault();
                    student.Status = 1;
                }

                var qTs = Db.TeamStudent.Where(x => x.StudentId == studentId && x.TeamId == teamId);

                if (!qTs.Any())
                {
                    var ts = new TeamStudent();
                    ts.Status      = 1;
                    ts.Checkintime = DateTime.Now;
                    ts.StudentId   = studentId;
                    ts.No          = 0;
                    ts.TeamId      = teamId;
                    Db.TeamStudent.Add(ts);
                }
                else
                {
                    var ts = qTs.SingleOrDefault();
                    ts.Status = 1;
                }

                var qPc = Db.StudentParent.Where(x => x.Parent.UnionId == unionId && x.StudentId == studentId);
                if (!qPc.Any())
                {
                    var pc = new StudentParent();
                    pc.Checkintime  = DateTime.Now;
                    pc.Relationship = relationType;
                    pc.Status       = 1;
                    pc.StudentId    = studentId;
                    Db.StudentParent.Add(pc);
                }
                else
                {
                    var pc = qPc.SingleOrDefault();
                    pc.Status = 1;
                }

                Db.SaveChanges();
                return(true);
            }
            catch (DbEntityValidationException dex)
            {
                string error =
                    dex.EntityValidationErrors.FirstOrDefault().ValidationErrors.FirstOrDefault().ErrorMessage;
                SetError(error);
                return(false);
            }
            catch (Exception ex)
            {
                SetError(ex);
                return(false);
            }
        }