示例#1
0
        public int UpdateATest(string uid, string id, int order, int time, string result)
        {
            OxcoderIFactory.IFactory factory = new OxcoderFactory.SqlSeverFactory();
            OxcoderIDAL.TestInfoIDAL test    = factory.getTestInstance();
            OxcoderIDAL.UserIDAL     user    = factory.getUserInstance();
            string tid = test.GetTestID(id);

            Model.Quiz p1 = searchQuizInfo(id, order);
            if (result.Equals(p1.output) || p1.output == "")
            {
                test.UpdateATest(tid, order, time);
                SqlDataReader rd = user.UserInfo(uid);
                if (rd.Read())
                {
                    int price1 = Convert.ToInt32(rd["User_Level"].ToString());
                    int price  = Convert.ToInt32(rd["User_Price"].ToString()) + time / 10;
                    if ((price - 4000) / 1000 > 0)
                    {
                        user.UpdateUserLevel((price1 + 1).ToString(), price.ToString(), uid);
                    }
                    user.UpdateUserLevel(rd["User_Level"].ToString(), price.ToString(), uid);
                }
            }
            if (order == 2)
            {
                DataRow dr = test.GetTestDetail(tid).Tables[0].Rows[0];
                if (dr["Test_Quiz0_State"].ToString().Equals("-1") && dr["Test_Quiz1_State"].ToString().Equals("-1") && dr["Test_Quiz2_State"].ToString().Equals("-1"))
                {
                    test.SetTestState(tid);
                }
            }
            return(1);
        }
示例#2
0
        public double[] GetUserAbility(string userID)
        {
            OxcoderIFactory.IFactory factory = new OxcoderFactory.SqlSeverFactory();
            OxcoderIDAL.TestInfoIDAL dalTest = factory.getTestInstance();
            string[] abilityTemp             = dalTest.GetUserAbility(userID);
            double   AvaTime  = 500.00;
            double   AvaTime1 = 100.00;
            double   AvaTime2 = 100.00;
            double   AvaTime3 = 100.00;
            double   avarage  = 5.00;
            double   home     = 5.00;

            double[] ability = new double[8];
            //专注度
            ability[0] = Convert.ToDouble(abilityTemp[0]) / AvaTime1 + Convert.ToDouble(abilityTemp[1]) / AvaTime2 + Convert.ToDouble(abilityTemp[1]) / AvaTime3;
            //熟练度
            ability[1] = (Convert.ToDouble(abilityTemp[0]) + Convert.ToDouble(abilityTemp[1]) + Convert.ToDouble(abilityTemp[2])) / AvaTime;
            //偏差值
            ability[2] = ability[1] - avarage;
            ability[3] = home;
            return(ability);
        }