예제 #1
0
 public LewisLogin()
 {
     InitializeComponent();
     authUrl = BbQuery.getBbLoginUrl();
     Console.WriteLine("");
     Console.WriteLine("authurl = {0}", authUrl);
 }
예제 #2
0
 private void btnLogout_Click(object sender, EventArgs e)
 {
     Cursor.Current = Cursors.WaitCursor;
     Application.DoEvents();
     BbQuery.BbLogout();
     Cursor.Current = Cursors.Default;
 }
예제 #3
0
        private void btnLogNB_Click(object sender, EventArgs e)
        {
            DMClient dmc = new DMClient(((myListItem)cbClients.SelectedItem).id, c);

            BbQuery.cc          = new System.Net.CookieContainer();
            BbQuery.cc.Capacity = 1000;
            BbQuery.BbUrl       = dmc.origUrl;
            if (BbQuery.isMoodle(BbQuery.BbUrl))
            {
                MoodleLogin lg = new MoodleLogin();
                lg.ShowDialog();
                lg.Dispose();
                lg = null;
            }
            else
            {
                // Login lg = new Login();
                BbQuery.getBbParams();
                LoginXPXB lg = new LoginXPXB();

                lg.ShowDialog();
                lg.Dispose();
                lg = null;
            }
            GC.Collect();
        }
예제 #4
0
        private void btnFillCats_Click(object sender, EventArgs e)
        {
            if (dmc.token == null)
            {
                dmc.token = dmc.getToken();
            }
            cats                = BbQuery.getCMSCats(dmc.origUrl, dmc.token);
            cats.TableName      = "cats";
            catsGrid.DataSource = cats;



            //DataSet myCats = new DataSet();
            //myCats.Tables.Add(cats);
            //myCats.Tables.Add(items);
            //DataRelation catItem = new DataRelation("catItem", cats.Columns["description"], items.Columns["description"]);
            ////Category c = new Category();
            ////DataTableReader dtr = c.CreateDataReader(cats, items);
            ////c.Load(dtr, LoadOption.OverwriteChanges, c.CATEGORY, c.ITEM_CATEGORY, c.client);

            //BindingSource masterBindingSource = new BindingSource();
            //masterBindingSource.DataSource = myCats;
            //masterBindingSource.DataMember = "cats";
            //BindingSource detailsBindingSource = new BindingSource();
            //detailsBindingSource.DataSource = masterBindingSource;
            //detailsBindingSource.DataMember = "catItem";
            //catsGrid.DataSource = masterBindingSource;
            //itemsGrid.DataSource = detailsBindingSource;
        }
예제 #5
0
        private void aGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            qpk1 = aGrid.Rows[e.RowIndex].Cells["QPK1"].Value.ToString();
            DataTable dt = BbQuery.getAssessment(aGrid.Rows[e.RowIndex].Cells["QPK1"].Value.ToString(), dmc.origUrl, dmc.token);

            qGrid.DataSource = dt;
        }
예제 #6
0
        private void btnFillCats_Click(object sender, EventArgs e)
        {
            if (dmc.token == null)
            {
                dmc.token = dmc.getToken();
            }
            DataTable cats = BbQuery.getCMSCats(dmc.origUrl, dmc.token);

            cats.TableName = "cats";
            DataTable items = BbQuery.getCMSItemCats(dmc.origUrl, dmc.token);

            items.TableName = "items";
            DataSet myCats = new DataSet();

            myCats.Tables.Add(cats);
            myCats.Tables.Add(items);

            Category        c   = new Category();
            DataTableReader dtr = c.CreateDataReader(cats, items);

            c.Load(dtr, LoadOption.OverwriteChanges, c.CATEGORY, c.ITEM_CATEGORY, c.client);

            BindingSource masterBindingSource = new BindingSource();

            masterBindingSource.DataSource = c;
            masterBindingSource.DataMember = c.CATEGORY.TableName;
            BindingSource detailsBindingSource = new BindingSource();

            detailsBindingSource.DataSource = masterBindingSource;
            detailsBindingSource.DataMember = c.Relations[0].RelationName;
            catsGrid.DataSource             = masterBindingSource;
            itemsGrid.DataSource            = detailsBindingSource;
        }
예제 #7
0
파일: Form1.cs 프로젝트: pheisen/EacSurveys
        private void Lbox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            string tt = lbox2.Items[lbox2.SelectedIndex].ToString();
            var    r  = c.DMClients.OrderBy(t => t.Name).AsEnumerable().Where(t => t.Name.Equals(tt)).FirstOrDefault();

            dmc       = new DMClient(r.id, c);
            dmc.token = BbQuery.getToken(dmc.origUrl);
            // authUrl_2.Replace("auth_2", "auth_sha");
            var stem = dmc.origUrl.Substring(0, dmc.origUrl.LastIndexOf('/'));

            authUrl_sha = stem + "/auth_sha.jsp";
            dbtype      = "oracle";
            db          = DMClient.getSqldt("SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'course_main' and COLUMN_NAME='pk1'", dmc);
            string dbt = db.Rows[0][0].ToString();

            /*pgsql
             *  oracle
             *  mssql
             */
            if (dbt.Equals("bigint"))
            {
                dbtype = "pgsql";
            }
            else if (dbt.Equals("int"))
            {
                dbtype = "mssql";
            }
        }
예제 #8
0
        private void cGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            // get gradebook stuff
            DataTable dt = BbQuery.getGradebookDetail(cGrid.Rows[e.RowIndex].Cells["PK1"].Value.ToString(), dmc.origUrl, dmc.token);

            // present in second grid
            gGrid.DataSource = dt;
        }
예제 #9
0
        public LoginMobile()
        {
            InitializeComponent();
            authUrl = BbQuery.getBbLoginUrl();
            Uri LoginUrl = new Uri(BbQuery.BbUrl);

            loginUrl = LoginUrl.Scheme + "://" + LoginUrl.Host + ":" + LoginUrl.Port + loginStem;
        }
예제 #10
0
        private void cGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            // fill aGrid with clinical forms
            course_pk = cGrid.Rows[e.RowIndex].Cells["PK1"].Value.ToString();
            DataTable dt = BbQuery.getGradebookAssessments(cGrid.Rows[e.RowIndex].Cells["PK1"].Value.ToString(), dmc.origUrl, dmc.token);

            aGrid.DataSource = dt;
        }
예제 #11
0
 public LoginX()
 {
     InitializeComponent();
     ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
     authUrl                = BbQuery.getBbLoginUrl();
     bw                     = new BackgroundWorker();
     bw.DoWork             += new DoWorkEventHandler(bw_DoWork);
     bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
 }
예제 #12
0
        private void btnFillCMS_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            int adds = BbQuery.updateCMSCatLibrary(cats, dmc.isOracle, dmc.origUrl, dmc.token);

            lbAdds.Text    = adds.ToString();
            Cursor.Current = Cursors.Default;
            Application.DoEvents();
        }
예제 #13
0
        private void catsGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            DataTable items = BbQuery.getCMSCatsByDescriptionDetails(catsGrid.Rows[e.RowIndex].Cells["Category"].Value.ToString(), dmc.origUrl, dmc.token);

            items.TableName = "items";

            // present in second grid
            itemsGrid.DataSource = items;
        }
예제 #14
0
        public LoginXP()
        {
            InitializeComponent();
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

            authUrl     = BbQuery.getBbLoginUrl();
            authUrl_2   = BbQuery.getBbLoginUrl2();
            authUrl_sha = authUrl_2.Replace("auth_2", "auth_sha");
        }
예제 #15
0
        private void btnGetCourses_Click(object sender, EventArgs e)
        {
            if (dmc.token == null)
            {
                dmc.token = dmc.getToken();
            }
            DataTable courses = BbQuery.GetEACSpecialCourses("NU-", dmc.origUrl, dmc.token);

            cGrid.DataSource = courses;
        }
예제 #16
0
 private void btnGo_Click(object sender, EventArgs e)
 {
     if (!String.IsNullOrEmpty(tbData.Text))
     {
         tbMemo.AppendText(BbQuery.getStringFromData(tbData.Text));
     }
     else
     {
         MessageBox.Show("Need some data.");
     }
 }
예제 #17
0
        private void Attempts_Load(object sender, EventArgs e)
        {
            dmc = (DMClient)this.Tag;
            DataTable dt = BbQuery.getAttempts(course_pk, dmc.origUrl, dmc.token);

            //  atGrid.AutoGenerateColumns = false;
            atGrid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
            atGrid.DataSource = dt;
            atGrid.Columns["attempt_date"].DefaultCellStyle.Format = "d";
            atGrid.Columns["score"].DefaultCellStyle.Format        = "N2";
            atGrid.Columns["score"].ValueType = typeof(Single);
        }
예제 #18
0
        private void btnFillCourses_Click(object sender, EventArgs e)
        {
            DateTime fDate = DateTime.Now.AddYears(-1);

            string fd = fDate.ToString("yyyy-MM-dd");

            fd = "{d '" + fd + "'}";
            if (dmc.token == null)
            {
                dmc.token = dmc.getToken();
            }
            DataTable courses = BbQuery.GetRecentCourses(fd, dmc.origUrl, dmc.token);

            cGrid.DataSource = courses;
        }
예제 #19
0
        public string getToken()
        {
            string retvalue = null;
            string url      = BbQuery.getBbCheckUrl();

            string tokenString = getResponse(url);

            if (tokenString.Split('=').Length > 1)
            {
                string[] tokens = tokenString.Split('=');
                retvalue   = tokens[1].Trim();
                this.token = retvalue;
            }
            else
            {
                retvalue = tokenString;
            }
            return(retvalue);
        }
예제 #20
0
        /*if (ds.Tables.Count > 0)
         *          {
         *              string name = "";
         *              string firstname = "";
         *              string lastname = "";
         *              string username = "";
         *              if (ds.Tables.Contains("user"))
         *              {
         *                  DataTable user = ds.Tables["user"];
         *                  id = Convert.ToInt32(user.Rows[0]["id"]);
         *                  firstname = user.Rows[0]["firstname"].ToString();
         *                  lastname = user.Rows[0]["lastname"].ToString();
         *                  name = user.Rows[0]["firstname"].ToString() + " " + user.Rows[0]["lastname"];
         *                  username = user.Rows[0]["username"].ToString();
         *
         *              }
         *              if (!firstname.Equals("") && !lastname.Equals("")
         *                  && (!lastname.ToUpper().Equals("GUEST")) && (!username.ToUpper().Equals("GUEST")))
         *              {
         *
         *                  retValue = true;
         *                  BbQuery.BbLoginString = name + " logged in.";
         *                  BbQuery.BbLoggedInName = name;
         *                  BbQuery.BbloggedIn = true;
         *                  BbQuery.BbInstructor_id = id;
         *                  BbQuery.BbUsername = username;
         *              }
         *          }*/
        private bool Check(string user_id, string session_id)
        {
            bool retValue = false;

            BbQuery.getBbParams();

            user_id = user_id.ToUpper();
            StringBuilder sb = new StringBuilder();

            sb.Append("select u.pk1 as id, u.firstname, u.lastname,u.user_id as username ");
            sb.Append(" from sessions s ");
            sb.Append(" inner join users u on u.user_id = s.user_id ");
            sb.Append(" where upper(s.user_id) = '" + user_id + "' and s.md5 = '" + session_id + "' ");
            RequesterAsync rr   = new RequesterAsync(sb.ToString(), BbQuery.BbUrl, BbQuery.BbToken, true);
            DataTable      user = rr.execute();

            if (user != null && user.Rows.Count > 0)
            {
                string name      = "";
                string firstname = "";
                string lastname  = "";
                string username  = "";

                id        = Convert.ToInt32(user.Rows[0]["id"]);
                firstname = user.Rows[0]["firstname"].ToString();
                lastname  = user.Rows[0]["lastname"].ToString();
                name      = user.Rows[0]["firstname"].ToString() + " " + user.Rows[0]["lastname"];
                username  = user.Rows[0]["username"].ToString();
                if (!firstname.Equals("") && !lastname.Equals("") &&
                    (!lastname.ToUpper().Equals("GUEST")) && (!username.ToUpper().Equals("GUEST")))
                {
                    retValue = true;
                    BbQuery.BbLoginString   = name + " logged in.";
                    BbQuery.BbLoggedInName  = name;
                    BbQuery.BbloggedIn      = true;
                    BbQuery.BbInstructor_id = id;
                    BbQuery.BbUsername      = username;
                }
            }

            return(retValue);
        }
예제 #21
0
        private void qGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            string theQpk1     = qGrid.Rows[e.RowIndex].Cells["QPK1"].Value.ToString();
            string theQuestion = qGrid.Rows[e.RowIndex].Cells["Question"].Value.ToString();
            string path        = dmc.origUrl.Substring(0, dmc.origUrl.LastIndexOf('/'));

            path           = path + "/" + BbQuery.BbSpecialFunctionsUrl;
            Cursor.Current = Cursors.WaitCursor;
            if (BbQuery.UpdateData(course_pk, theQpk1, theQuestion, path, dmc.origUrl, dmc.token))
            {
                DataTable dt = BbQuery.getOneAssessment(theQpk1, dmc.origUrl, dmc.token);
                object[]  vs = new object[dt.Columns.Count];
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    vs[i] = dt.Rows[0][i].ToString();
                }
                qGrid.Rows[e.RowIndex].SetValues(vs);
            }
            Cursor.Current = Cursors.Default;
        }
예제 #22
0
        private void btnGetPreceptors_Click(object sender, EventArgs e)
        {
            preceptors            = BbQuery.getPreceptors(oledbConnection);
            pSource1.DataSource   = preceptors;
            pGrid.DataSource      = pSource1;
            pNav1.BindingSource   = pSource1;
            btnCheckThem          = new Button();
            btnCheckThem.Image    = Properties.Resources.undo_16;
            btnCheckThem.Location = new System.Drawing.Point(pGrid.RowHeadersWidth, 0);
            btnCheckThem.Name     = "btnCheckThem";
            btnCheckThem.Size     = new System.Drawing.Size(new Point(pGrid.Columns[0].HeaderCell.Size.Width, pGrid.Columns[0].HeaderCell.Size.Height));
            btnCheckThem.TabIndex = 3;
            btnCheckThem.UseVisualStyleBackColor = true;
            btnCheckThem.Click += new EventHandler(btnCheckThem_Click);
            pGrid.Controls.Add(btnCheckThem);
            pGrid.Columns["user_pk"].ReadOnly   = true;
            pGrid.Columns["user_id"].ReadOnly   = true;
            pGrid.Columns["dtcreated"].ReadOnly = true;

            //pGrid.Columns["check"] = new DataGridViewCheckBoxColumn();
        }
예제 #23
0
        private void itemsGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            XElement node = BbQuery.getQData(itemsGrid.Rows[e.RowIndex].Cells["qpk1"].Value.ToString(), dmc.origUrl, dmc.token);
            XElement el1  = node.XPathSelectElement(BbQuery.QuestionText);
            XElement el2  = node.XPathSelectElement(BbQuery.QuestionType);

            if (el1 != null)
            {
                MessageBox.Show(Utilities.StripTags(el1.Value), el2.Value);
            }
            else
            {
                MessageBox.Show("Null");
            }
            //StringBuilder sb = new StringBuilder();
            //StringWriter sw = new StringWriter(sb);

            //node.Save(sw);
            //MessageBox.Show(sb.ToString());
            //sw.Close();
        }
예제 #24
0
        public static multipleChoiceItem fromExisting(string BbUrl, string token, int qdpk1, DataTable students)
        {
            bool               doHex = false;
            DataTable          theData;
            string             theXml   = null;
            int                row      = 0;
            multipleChoiceItem retValue = null;
            multipleChoiceItem mc       = null;
            StringBuilder      sql      = new StringBuilder();

            sql.Append("select qd.data ");
            sql.Append("from qti_asi_data qd ");

            sql.Append(" where qd.pk1 = " + qdpk1.ToString());
            RequesterAsync rr = new RequesterAsync(sql.ToString(), BbUrl, token, true);

            theData = rr.execute();
            if (theData != null && !theData.TableName.Equals("error"))
            {
                string data = theData.Rows[0]["data"].ToString();
                if (!data.StartsWith("P"))
                {
                    doHex = true;
                }
                theXml = BbQuery.getStringFromData(data);
            }
            if (!String.IsNullOrEmpty(theXml))
            {
                theXml = theXml.Replace("<item ", "<multipleChoiceItem ").Replace("</item>", "</multipleChoiceItem>");
                mc     = multipleChoiceItem.Parse(theXml);
            }

            var names = mc.presentation.flow.flow.Where(t => [email protected]("RESPONSE_BLOCK"));

            foreach (var n in names)
            {
                //n.response_lid.render_choice.flow_label.
                var labels = n.response_lid.render_choice.flow_label;
                foreach (var l in labels)
                {
                    string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                    row++;
                    l.response_label.flow_mat.material.mat_extension.mat_formattedtext.TypedValue = stuName;
                    l.response_label.ident = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                }
                multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType m = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType();
                if (row < students.Rows.Count)
                {
                    // multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType m = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType();
                    string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                    m.@class                           = "Block";
                    m.response_label                   = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType.response_labelLocalType();
                    m.response_label.ident             = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                    m.response_label.shuffle           = "Yes";
                    m.response_label.rarea             = "Ellipse";
                    m.response_label.rrange            = "Exact";
                    m.response_label.flow_mat          = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType.response_labelLocalType.flow_matLocalType();
                    m.response_label.flow_mat.@class   = "FORMATTED_TEXT_BLOCK";
                    m.response_label.flow_mat.material = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType.response_labelLocalType.flow_matLocalType.materialLocalType();
                    m.response_label.flow_mat.material.mat_extension = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType.response_labelLocalType.flow_matLocalType.materialLocalType.mat_extensionLocalType();
                    m.response_label.flow_mat.material.mat_extension.mat_formattedtext            = new multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType.response_labelLocalType.flow_matLocalType.materialLocalType.mat_extensionLocalType.mat_formattedtextLocalType();
                    m.response_label.flow_mat.material.mat_extension.mat_formattedtext.TypedValue = stuName;
                    //<mat_formattedtext type="HTML">Boxer, Barbara (barb)</mat_formattedtext>
                    m.response_label.flow_mat.material.mat_extension.mat_formattedtext.type = "HTML";
                    n.response_lid.render_choice.flow_label.Add(m);
                    row++;
                }
                while (row < students.Rows.Count)
                {
                    multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType mcc = (multipleChoiceItem.presentationLocalType.flowLocalType.flowLocalType1.response_lidLocalType.render_choiceLocalType.flow_labelLocalType)m.Clone();
                    string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                    mcc.response_label.ident = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                    n.response_lid.render_choice.flow_label.Add(mcc);
                    row++;
                }
            }
            row = 0;
            var    vcorrect = mc.resprocessing.respcondition.Where(t => t.title.Equals("correct")).FirstOrDefault().conditionvar.varequal;
            string thisName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";

            vcorrect.TypedValue = QTIUtility.Utilities.Md5HashUtilityUTF8(thisName).ToLower();
            vcorrect.respident  = "response";
            //<respcondition title="correct">
            var resps = mc.resprocessing.respcondition.Where(t => t.conditionvar != null && String.IsNullOrEmpty(t.title));

            /*<respcondition title="correct">
             * <conditionvar>
             * <varequal respident="response" case="No">0e1fffe32c27424094f9e85c12c55bfb</varequal>
             * </conditionvar>
             * <setvar variablename="SCORE" action="Set">SCORE.max</setvar>
             * <displayfeedback linkrefid="correct" feedbacktype="Response"/>
             * </respcondition>*/

            /*<respcondition>
             * <conditionvar>
             * <varequal respident="55394393588c4bb5927a67b4f0846048" case="No"/>
             * </conditionvar>
             * <setvar variablename="SCORE" action="Set">100</setvar>
             * <displayfeedback linkrefid="55394393588c4bb5927a67b4f0846048" feedbacktype="Response"/>
             * </respcondition>*/
            foreach (var r in resps)
            {
                if (r.conditionvar.varequal == null)
                {
                    continue;
                }
                string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                r.conditionvar.varequal.respident = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                r.displayfeedback.linkrefid       = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                row++;
            }
            while (row < students.Rows.Count)
            {
                string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                multipleChoiceItem.resprocessingLocalType.respconditionLocalType res = new multipleChoiceItem.resprocessingLocalType.respconditionLocalType();
                res.conditionvar                    = new multipleChoiceItem.resprocessingLocalType.respconditionLocalType.conditionvarLocalType();
                res.conditionvar.varequal           = new multipleChoiceItem.resprocessingLocalType.respconditionLocalType.conditionvarLocalType.varequalLocalType();
                res.conditionvar.varequal.respident = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                res.conditionvar.varequal.@case     = "No";
                res.setvar = new multipleChoiceItem.resprocessingLocalType.respconditionLocalType.setvarLocalType();
                res.setvar.variablename          = "SCORE";
                res.setvar.action                = "Set";
                res.setvar.TypedValue            = "0.0";
                res.displayfeedback              = new multipleChoiceItem.resprocessingLocalType.respconditionLocalType.displayfeedbackLocalType();
                res.displayfeedback.linkrefid    = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                res.displayfeedback.feedbacktype = "Response";
                mc.resprocessing.respcondition.Add(res);
                row++;
            }

            row = 0;

            /*should have
             * <itemfeedback ident="correct" view="All">
             * <flow_mat class="Block">
             * <flow_mat class="FORMATTED_TEXT_BLOCK">
             * <material>
             *  <mat_extension>
             *    <mat_formattedtext type="HTML"/>
             *  </mat_extension>
             * </material>
             * </flow_mat>
             * </flow_mat>
             * </itemfeedback>
             * <itemfeedback ident="incorrect" view="All">
             * <flow_mat class="Block">
             * <flow_mat class="FORMATTED_TEXT_BLOCK">
             * <material>
             *  <mat_extension>
             *    <mat_formattedtext type="HTML"/>
             *  </mat_extension>
             * </material>
             * </flow_mat>
             * </flow_mat>
             * </itemfeedback>
             */
            var itf = mc.itemfeedback.Where(t => !t.ident.Contains("correct"));

            foreach (var itp in itf)
            {
                string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                itp.ident = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                row++;
            }

            /*
             * <itemfeedback ident="0e1fffe32c27424094f9e85c12c55bfb" view="All">
             * <solution view="All" feedbackstyle="Complete">
             * <solutionmaterial>
             * <flow_mat class="Block">
             *  <flow_mat class="FORMATTED_TEXT_BLOCK">
             *    <material>
             *      <mat_extension>
             *        <mat_formattedtext type="HTML"/>
             *      </mat_extension>
             *    </material>
             *  </flow_mat>
             * </flow_mat>
             * </solutionmaterial>
             * </solution>
             * </itemfeedback>
             *
             * <itemfeedback ident="55394393588c4bb5927a67b4f0846048" view="All">
             * <solution view="All" feedbackstyle="Complete">
             * <solutionmaterial>
             * <flow_mat class="Block">
             * <flow_mat class="FORMATTED_TEXT_BLOCK">
             * <material>
             * <mat_extension>
             * <mat_formattedtext type="HTML"/>
             * </mat_extension>
             * </material>
             * </flow_mat>
             * </flow_mat>
             * </solutionmaterial>
             * </solution>
             * </itemfeedback>*/
            multipleChoiceItem.itemfeedbackLocalType it = null;
            if (row < students.Rows.Count)
            {
                it      = new multipleChoiceItem.itemfeedbackLocalType();
                it.view = "All";
                string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                it.ident                                                = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                it.solution                                             = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType();
                it.solution.view                                        = "All";
                it.solution.feedbackstyle                               = "Complete";
                it.solution.solutionmaterial                            = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType.solutionmaterialLocalType();
                it.solution.solutionmaterial.flow_mat                   = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType.solutionmaterialLocalType.flow_matLocalType();
                it.solution.solutionmaterial.flow_mat.@class            = "Block";
                it.solution.solutionmaterial.flow_mat.flow_mat          = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType.solutionmaterialLocalType.flow_matLocalType.flow_matLocalType1();
                it.solution.solutionmaterial.flow_mat.flow_mat.@class   = "FORMATTED_TEXT_BLOCK";
                it.solution.solutionmaterial.flow_mat.flow_mat.material = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType.solutionmaterialLocalType.flow_matLocalType.flow_matLocalType1.materialLocalType();
                it.solution.solutionmaterial.flow_mat.flow_mat.material.mat_extension = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType.solutionmaterialLocalType.flow_matLocalType.flow_matLocalType1.materialLocalType.mat_extensionLocalType();
                it.solution.solutionmaterial.flow_mat.flow_mat.material.mat_extension.mat_formattedtext      = new multipleChoiceItem.itemfeedbackLocalType.solutionLocalType.solutionmaterialLocalType.flow_matLocalType.flow_matLocalType1.materialLocalType.mat_extensionLocalType.mat_formattedtextLocalType();
                it.solution.solutionmaterial.flow_mat.flow_mat.material.mat_extension.mat_formattedtext.type = "HTML";
                mc.itemfeedback.Add(it);
                row++;
            }
            while (row < students.Rows.Count)
            {
                multipleChoiceItem.itemfeedbackLocalType itc = (multipleChoiceItem.itemfeedbackLocalType)it.Clone();
                string stuName = students.Rows[row]["lastname"].ToString() + ", " + students.Rows[row]["firstname"].ToString() + " (" + students.Rows[row]["user_id"].ToString() + ")";
                itc.ident = QTIUtility.Utilities.Md5HashUtilityUTF8(stuName).ToLower();
                mc.itemfeedback.Add(itc);
                row++;
            }

            StringBuilder xm = new StringBuilder();
            XmlWriter     xr = XmlWriter.Create(xm);

            mc.Save(xr);
            xr.Flush();
            xr.Close();
            string ix = xm.ToString();

            ix = ix.Replace("<multipleChoiceItem ", "<item ").Replace("</multipleChoiceItem>", "</item>");
            ix = ix.Replace("<?xml version=\"1.0\" encoding=\"utf-16\"?>", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

            //xm.Length = 0;
            //xm.Append(ix);
            string xmf = String.Empty;

            byte[] b = UTF8Encoding.UTF8.GetBytes(ix);
            if (doHex)
            {
                xmf = BitConverter.ToString(b).Replace("-", string.Empty);
            }
            else
            {
                xmf = Convert.ToBase64String(b);
            }

            sql.Length = 0;
            sql.Append("update qti_asi_data set ");
            sql.Append("data =cast('" + ix + "' AS varbinary(max))");

            sql.Append(" where pk1 = " + qdpk1.ToString());
            string theSql = sql.ToString();

            rr       = new RequesterAsync(theSql, BbUrl, token, true);
            theData  = rr.execute();
            retValue = mc;
            return(retValue);
        }
예제 #25
0
 private void btnGo_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(tbInput.Text) || string.IsNullOrEmpty(tbPattern.Text))
     {
         MessageBox.Show("Fill input boxes.");
         return;
     }
     //  getCQCourses(tbInput.Text.Trim())
     tbMemo.AppendText(BbQuery.getCQCourses(tbInput.Text.Trim()) + "\n\n");
     try
     {
         Regex           rgx = new Regex(tbPattern.Text.Trim(), RegexOptions.IgnoreCase);
         MatchCollection mc  = rgx.Matches(tbInput.Text.Trim());
         tbMemo.AppendText(tbInput.Text.Trim() + " yields " + mc.Count.ToString() + " matches\n");
         tbMemo.AppendText("school: " + mc[0].Groups[1].Captures[0].Value + "\n");
         string schl = mc[0].Groups[1].Captures[0].Value;
         int    l    = mc[0].Groups.Count - 2;
         tbMemo.AppendText("tail: " + mc[0].Groups[l + 1].Captures[0].Value + "\n");
         string   tail     = mc[0].Groups[l + 1].Captures[0].Value;
         string   groups   = mc[0].Groups.Count.ToString();
         string[] sections = new string[mc[0].Groups[l].Captures.Count];
         for (int z = 0; z < mc[0].Groups[l].Captures.Count; z++)
         {
             sections[z] = mc[0].Groups[l].Captures[z].Value;
         }
         tbMemo.AppendText("Groups: " + groups + "\n");
         StringBuilder sb      = new StringBuilder();
         string[]      delim   = { "-" };
         List <string> doubles = new List <string>();
         List <string> singles = new List <string>();
         for (int g = 0; g < mc[0].Groups.Count; g++)
         {
             // tbMemo.AppendText("g: " +g.ToString()+" "+ mc[0].Groups[g].Value + "\n");
             for (int c = 0; c < mc[0].Groups[g].Captures.Count; c++)
             {
                 Capture cc = mc[0].Groups[g].Captures[c];
                 tbMemo.AppendText("g: " + g.ToString() + " c: " + c.ToString() + " " + cc.Value + " " + cc.Index.ToString() + " " + cc.Length.ToString() + "\n");
                 if (g >= 2 && g < (mc[0].Groups.Count - 2))
                 {
                     if ((cc.Value.Split('-')).Length > 2)
                     {
                         if (!doubles.Contains(cc.Value))
                         {
                             doubles.Add(cc.Value);
                             tbMemo.AppendText("double: " + cc.Value + "\n");
                         }
                     }
                     else
                     {
                         if (!singles.Contains(cc.Value))
                         {
                             singles.Add(cc.Value);
                             tbMemo.AppendText("single: " + cc.Value + "\n");
                         }
                     }
                 }
             }
         }
         foreach (string d in doubles)
         {
             foreach (string s in sections)
             {
                 sb.Append("," + schl + d + s + tail);
             }
         }
         for (int p = 0; p < singles.Count - 1; p++)
         {
             for (int q = 1; q < singles.Count; q++)
             {
                 if (p != q)
                 {
                     if (!doubles.Contains(singles[p] + "-" + singles[q]))
                     {
                         foreach (string s in sections)
                         {
                             sb.Append("," + schl + singles[p] + "-" + singles[q] + s + tail);
                         }
                     }
                 }
             }
         }
         string bigCourseid = sb.ToString();
         tbMemo.AppendText(bigCourseid + "\n");
     }
     catch (Exception ex)
     {
         tbMemo.AppendText(ex.Message + "\n");
     }
 }
예제 #26
0
        private void btnEnroll_Click(object sender, EventArgs e)
        {
            bool      isChecked = false;
            DataTable enroll    = ((DataTable)((BindingSource)pGrid.DataSource).DataSource).Clone();

            enroll.Columns.Add("course_pk", typeof(string));
            for (int i = 0; i < pGrid.Rows.Count; i++)
            {
                if ((pGrid.Rows[i].Cells[0] as DataGridViewCheckBoxCell).Value != null && ((bool)(pGrid.Rows[i].Cells[0] as DataGridViewCheckBoxCell).Value == true))
                {
                    isChecked = true;
                    DataRow en = enroll.NewRow();
                    en.ItemArray    = ((DataRowView)pGrid.Rows[i].DataBoundItem).Row.ItemArray;
                    en["course_pk"] = course_pk;
                    enroll.Rows.Add(en);
                }
            }
            if (!isChecked)
            {
                MessageBox.Show("No preceptors checked.");
                return;
            }
            DataSet enrollment = new DataSet("enrollment");

            enroll.TableName = "enrollee";
            enrollment.Tables.Add(enroll);
            StringBuilder     sb = new StringBuilder();
            XmlWriterSettings ws = new XmlWriterSettings();

            ws.Indent          = false;
            ws.NewLineHandling = NewLineHandling.Replace;
            ws.NewLineChars    = "";
            XmlWriter xw        = XmlWriter.Create(sb, ws);
            string    tableName = enroll.TableName;

            enrollment.WriteXml(xw);
            xw.Close();
            string deploys = sb.ToString();
            // get enroll url
            string path = dmc.origUrl.Substring(0, dmc.origUrl.LastIndexOf('/'));

            path = path + "/" + BbQuery.BbSpecialFunctionsUrl;
            DataTable enrollees = BbQuery.enroll(path, deploys);

            if (preceptors.PrimaryKey == null)
            {
                preceptors.PrimaryKey = new DataColumn[] { preceptors.Columns["localId"] };
            }
            foreach (DataRow en in enrollees.Rows)
            {
                DataRow pr = preceptors.Select("localid = " + en["localid"].ToString())[0];
                if (pr != null)
                {
                    pr["user_id"]   = en["user_id"];
                    pr["user_pk"]   = en["user_pk"];
                    pr["dtcreated"] = en["dtcreated"];
                }
            }

            //Update underlying datasource
            BbQuery.updatePreceptors(oledbConnection, preceptors);
            pGrid.Refresh();
            return;
        }
예제 #27
0
 public Login()
 {
     InitializeComponent();
     ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
     authUrl = BbQuery.getBbLoginUrl();
 }