示例#1
0
文件: Core.cs 项目: freebr/signup-sys
        public static int addSignupUserItem(ref SignupUserItem item)
        {
            item.Name   = item.Name.Replace(" ", "").Trim();
            item.CardID = item.CardID.Replace(" ", "").Trim();
            item.Mobile = item.Mobile.Replace(" ", "").Trim();
            if (item.Name.Length == 0 || item.CardID.Length == 0 || item.Mobile.Length == 0)
            {
                throw new Exception("请填写您的姓名、身份证号码和手机号码!");
            }
            else if (item.CardID.Length > 0 && !Regex.Match(item.CardID, @"^\d{17}(\d|X)$", RegexOptions.IgnoreCase).Success)
            {
                throw new Exception("身份证号码格式不正确,请检查是否有误!");
            }
            else if (item.Mobile.Length > 0 && !Regex.Match(item.Mobile, @"^\d{11}$").Success)
            {
                throw new Exception("手机号码格式不正确,请检查是否有误!");
            }

            List <AnswerItem>   answers = item.Answers;
            List <QuestionItem> ques;

            DbSelect.getQuestionList(out ques, null);
            if (!ques.TrueForAll((QuestionItem q) => answers.Exists((AnswerItem ans) => ans.Question.ID == q.ID)))
            {
                throw new Exception("请确认是否已回答所有问题!");
            }

            List <SignupUserItem>         list;
            Dictionary <String, String[]> conditions = new Dictionary <String, String[]>();

            conditions.Add("Name", new String[] { new Operator(OperatorTypeEnum.Equal), item.Name });
            conditions.Add("CardID", new String[] { new Operator(OperatorTypeEnum.Equal), item.CardID });
            conditions.Add("Mobile", new String[] { new Operator(OperatorTypeEnum.Equal), item.Mobile });
            int ret = DbSelect.getSignupList(out list, conditions);

            if (ret != OK)
            {
                return(FAILED);
            }
            if (list.Count == 0)  // 无匹配用户
            {
                throw new Exception("考生信息不符,无法查询!");
            }
            else
            {
                item         = list[0];
                item.Answers = answers;
                if (list[0].SignupSequence.Length != 0) // 已签到
                {
                    return(CANCELLED);
                }
            }
            return(DbEdit.updateSignupUserItem(ref item));
        }
示例#2
0
        // 查询签到用户信息
        public static int getSignupList(out List <SignupUserItem> list, Dictionary <String, String[]> conditions)
        {
            list = null;
            try
            {
                using (SqlConnection conn = ConnectDb())
                {
                    SqlParameter[] pms;
                    String         sql = String.Format(sql_GetSignupList, getSignupUserItemFilter(conditions, out pms));
                    SqlCommand     cmd = new SqlCommand(sql, conn);
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    SqlDataReader dr = cmd.ExecuteReader();
                    list = new List <SignupUserItem>();
                    while (dr.Read())
                    {
                        SignupUserItem item = new SignupUserItem();
                        item.ID             = (int)dr["ID"];
                        item.SignupSequence = dr["SignupSequence"].ToString();
                        item.AssignID       = dr["AssignID"].ToString();
                        item.Name           = dr["Name"].ToString();
                        item.CardID         = dr["CardID"].ToString();
                        item.Mobile         = dr["Mobile"].ToString();
                        item.ImportTime     = dr["ImportTime"].ToString();
                        item.SignupTime     = dr["SignupTime"].ToString();
                        item.SignupPage     = dr["SignupPage"].ToString();

                        List <AnswerItem> listAnswers;
                        getUserAnswerList(out listAnswers, item.ID);
                        item.Answers = listAnswers;
                        list.Add(item);
                    }
                    dr.Close();
                    dr.Dispose();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(String.Format("查询签到用户信息时出错:{0}", ex.Message));
            }
            return(OK);
        }
示例#3
0
        // 导入待签到用户信息到数据库
        public static int importSignupUserList(String excelFile, out int importedCount)
        {
            List <SignupUserItem> list = new List <SignupUserItem>();

            importedCount = 0;
            try
            {
                using (OleDbConnection conn = ConnectDb(excelFile))
                {
                    // 获取可访问的表名
                    DataTableReader dtr = new DataTableReader(conn.GetSchema("Tables", new string[] { null, null, null, "TABLE" }));
                    String          table_used;
                    if (dtr.Read())
                    {
                        table_used = dtr["TABLE_NAME"].ToString();
                    }
                    else
                    {
                        throw new Exception("该Excel文件不包含可用的表格。");
                    }
                    // 查询分组编号记录
                    OleDbCommand    cmd = new OleDbCommand(String.Format(sql_ImportInterviewIDList_QueryAll, table_used), conn);
                    OleDbDataReader dr  = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        SignupUserItem item = new SignupUserItem();
                        item.Name     = dr[0].ToString();
                        item.CardID   = dr[1].ToString();
                        item.Mobile   = dr[2].ToString();
                        item.AssignID = dr[3].ToString();
                        list.Add(item);
                    }
                    dr.Close();
                    dr.Dispose();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(String.Format("读取Excel文件时出错:{0}", ex.Message));
            }
            importedCount = list.Count;
            return(DbEdit.batchAddSignupUserItems(list));
        }
示例#4
0
        // 写入用户签到信息并返回签到信息
        public static int updateSignupUserItem(ref SignupUserItem item)
        {
            SqlConnection conn;

            try
            {
                conn = ConnectDb();
                // 更新签到记录
                SqlParameter[] pms = new SqlParameter[] {
                    new SqlParameter("@Name", item.Name),
                    new SqlParameter("@Mobile", item.Mobile)
                };
                SqlCommand cmd = new SqlCommand(sql_UpdateSignupUserItem_Exec, conn);
                cmd.Parameters.AddRange(pms);
                SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.SingleRow);
                sdr.Read();
                item.SignupSequence = sdr.GetInt32(0).ToString();
                item.SignupPage     = sdr.GetString(1);
                sdr.Close();

                int user_id = item.ID;
                item.Answers.ForEach((AnswerItem ans) =>
                {
                    pms = new SqlParameter[] {
                        new SqlParameter("@UserID", user_id),
                        new SqlParameter("@QuestionID", ans.Question.ID),
                        new SqlParameter("@AnswerID", ans.ID)
                    };
                    cmd = new SqlCommand(sql_UpdateSignupUserItem_Exec2, conn);
                    cmd.Parameters.AddRange(pms);
                    cmd.ExecuteNonQuery();
                });
            }
            catch (Exception ex)
            {
                throw new Exception(String.Format("写入签到信息时出错:{0}", ex.Message));
            }
            return(OK);
        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SiteSettings.init(Server);
            try
            {
                String         person_name    = Request.Form["person_name"];
                String         person_card_id = Request.Form["person_card_id"];
                String         person_mobile  = Request.Form["person_mobile"];
                String         url_Signup     = null;
                SignupUserItem item           = new SignupUserItem();
                Application["lastRequestTime"] = DateTime.Now.Ticks;
                Application.Lock();
                item.Name    = person_name;
                item.CardID  = person_card_id;
                item.Mobile  = person_mobile;
                item.Answers = new List <AnswerItem>();
                foreach (string key in Request.Form.Keys)
                {
                    if (!key.StartsWith("ques"))
                    {
                        continue;
                    }
                    int q_id = Int32.Parse(key.Substring(4));
                    item.Answers.Add(new AnswerItem()
                    {
                        ID       = Int32.Parse(Request.Form[key]),
                        Question = new QuestionItem()
                        {
                            ID = q_id
                        }
                    });
                }
                int ret = Core.addSignupUserItem(ref item);
                Application.UnLock();

                if (ret == Core.OK)
                {
                    NameValueCollection vars = new NameValueCollection();
                    vars.Add("$person_name", item.Name);
                    vars.Add("$person_card_id", item.CardID);
                    vars.Add("$person_mobile", item.Mobile);
                    vars.Add("$assign_id", item.AssignID);
                    vars.Add("$signup_seq", item.SignupSequence);
                    ret = Misc.generateNoticePage(item.SignupPage, vars);
                }
                else if (ret == Core.CANCELLED)
                {
                    url_Signup = item.SignupPage;
                    if (url_Signup.Length == 0)
                    {
                        throw new Exception("签到页面信息丢失!");
                    }
                }
                // 跳转到通知页
                url_Signup = Misc.url(SiteSettings.SITE_ROOT, SiteSettings.DIR_GENERATED, item.SignupPage);
                Response.Redirect(url_Signup, false);
            }
            catch (Exception ex)
            {
                Misc.doPageJump(this, "javascript:history.go(-1);", ex.Message);
            }
        }