Пример #1
0
    public static int EnrollStudentinMoodleCourses(string sEmail, string sStudentID)
    {
        int       iResult = InitializeModule.FAIL_RET;
        string    sSQL    = "";
        DataTable dtUser  = new DataTable("User");
        DataSet   dsUser  = new DataSet();


        sSQL  = "SELECT username, password, firstname, lastname";
        sSQL += ", course1, role1, group1, email, auth";
        sSQL += ", country, city, department,MoodleUserNo,MoodleCourseNo";
        sSQL += " FROM Moodle_Import_Students_M_F_Step4";
        sSQL += " WHERE email='" + sEmail + "'";
        //sSQL += " ORDER By course1,username ASC";


        //sSQL = "SELECT  S.username, S.password, S.firstname";
        //sSQL += ", S.lastname";
        //sSQL += ", S.course1";
        //sSQL += ", S.role1";
        //sSQL += ", S.group1, S.email";
        //sSQL += ", S.auth, S.country";
        //sSQL += ", S.city, S.department";
        //sSQL += ", S.MoodleUserNo, S.MoodleCourseNo";
        //sSQL += " FROM Moodle_Import_Students_M_F_Step4 AS S INNER JOIN";
        //sSQL += " AddTransactionsFromDate_MF ON S.sStudentNumber = AddTransactionsFromDate_MF.lngStudentNumber";
        //sSQL += " ORDER BY S.course1, S.username";

        Connection_StringCLS MyConnection_string = new Connection_StringCLS(InitializeModule.EnumCampus.Males);
        SqlConnection        Conn = new SqlConnection(MyConnection_string.Conn_string.ToString());

        Conn.Open();
        SqlDataAdapter adapter;

        adapter = new SqlDataAdapter(sSQL, Conn);
        adapter.SelectCommand.CommandTimeout = 2000;
        dsUser.Tables.Add(dtUser);
        adapter.Fill(dtUser);
        adapter.Dispose();

        ClsMoodleAPI.MoodleManualEnrol enroluser = new ClsMoodleAPI.MoodleManualEnrol();

        int    iSuspend   = 0;
        int    iUserID    = 0;
        string sUsername  = "";
        string sCourse    = "";
        int    iCourseID  = 0;
        string sGroupName = "";
        int    iGroupID   = 0;

        iSuspend = 0;

        DataSet dsGroups = new DataSet();


        string Token = "1b4cb9114197a84985695b19b1164d0a";

        for (int i = 0; i < dsUser.Tables["User"].Rows.Count; i++) //i < dsUser.Tables["User"].Rows.Count
        {
            enroluser.roleid = Convert.ToInt32(dsUser.Tables["User"].Rows[i]["role1"].ToString());
            //get userid from username

            sUsername = dsUser.Tables["User"].Rows[i]["username"].ToString();
            iUserID   = Convert.ToInt32("0" + dsUser.Tables["User"].Rows[i]["MoodleUserNo"].ToString());
            if (iUserID == 0)
            {
                iUserID = LibraryMOD.GetStudentMoodleUserNo(sStudentID);
            }

            iCourseID = Convert.ToInt32("0" + dsUser.Tables["User"].Rows[i]["MoodleCourseNo"].ToString());

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            enroluser.userid   = iUserID;
            sCourse            = dsUser.Tables["User"].Rows[i]["course1"].ToString();
            enroluser.courseid = iCourseID;
            enroluser.suspend  = iSuspend;
            if (iCourseID == 2455) //ESL_Gen_20201
            {
                //enroll student in course 2541
                iCourseID          = 2541; // ESL_Gen_155_20201
                enroluser.courseid = iCourseID;
            }
            iGroupID = 0;
            string contents = enrol_manual_enrol_users(enroluser);
            // Deserialize
            serializer = new JavaScriptSerializer();
            if (contents.Contains("exception"))
            {
                // Error
                ClsMoodleAPI.MoodleException moodleError = serializer.Deserialize <ClsMoodleAPI.MoodleException>(contents);
                //lbl_results.Text += "Error in enrolling user in course: " + enroluser.courseid + " / " + contents;
            }
            else
            {
                // Good
                List <string> newGroups = serializer.Deserialize <List <string> >(contents);
                // lbl_results.Text += "User Enrolled Successfuly - ";
                sGroupName = dsUser.Tables["User"].Rows[i]["group1"].ToString().Trim();

                if (iGroupID == 0)
                {
                    //get group no from moodle
                    iGroupID = GetGroupIDFromGroupName(Token, iCourseID, sGroupName);
                }
                //add to group

                contents = core_group_add_group_members(iGroupID, iUserID);

                //Deserialize
                serializer = new JavaScriptSerializer();
                if (contents.Contains("exception"))
                {
                    // Error
                    ClsMoodleAPI.MoodleException moodleError = serializer.Deserialize <ClsMoodleAPI.MoodleException>(contents);
                    // lbl_results.Text += "Error in adding member to group:" + sGroupName + "in course:" + sCourse + " / " + contents;
                }
                else
                {
                    // Good
                    //List<string> newGroups = serializer.Deserialize<List<string>>(contents);
                    // lbl_results.Text += "Member Added Successfuly";
                    iResult = InitializeModule.SUCCESS_RET;
                }
            }
        } //for
        return(iResult);
    }
Пример #2
0
    public static int EnrollStudentinMoodleCourses_CourseCode(string sEmail, string sStudentID, string cousreshortcode, int Moodle_CourseNo, int roleid, string groupname)
    {
        int iResult = InitializeModule.FAIL_RET;

        ClsMoodleAPI.MoodleManualEnrol enroluser = new ClsMoodleAPI.MoodleManualEnrol();

        int    iSuspend   = 0;
        int    iUserID    = 0;
        string sUsername  = "";
        string sCourse    = "";
        int    iCourseID  = 0;
        string sGroupName = "";
        int    iGroupID   = 0;

        iSuspend = 0;

        DataSet dsGroups = new DataSet();

        string Token = "1b4cb9114197a84985695b19b1164d0a";

        enroluser.roleid = roleid;
        //get userid from username

        sUsername = sEmail;
        iUserID   = 0;
        if (iUserID == 0)
        {
            iUserID = LibraryMOD.GetStudentMoodleUserNo(sStudentID);
        }

        iCourseID = Moodle_CourseNo;

        JavaScriptSerializer serializer = new JavaScriptSerializer();

        enroluser.userid   = iUserID;
        sCourse            = cousreshortcode;
        enroluser.courseid = iCourseID;
        enroluser.suspend  = iSuspend;
        if (iCourseID == 2455)     //ESL_Gen_20201
        {
            //enroll student in course 2541
            iCourseID          = 2541; // ESL_Gen_155_20201
            enroluser.courseid = iCourseID;
        }
        iGroupID = 0;
        string contents = enrol_manual_enrol_users(enroluser);

        // Deserialize
        serializer = new JavaScriptSerializer();
        if (contents.Contains("exception"))
        {
            // Error
            ClsMoodleAPI.MoodleException moodleError = serializer.Deserialize <ClsMoodleAPI.MoodleException>(contents);
            //lbl_results.Text += "Error in enrolling user in course: " + enroluser.courseid + " / " + contents;
        }
        else
        {
            // Good
            List <string> newGroups = serializer.Deserialize <List <string> >(contents);
            // lbl_results.Text += "User Enrolled Successfuly - ";
            sGroupName = groupname;

            if (iGroupID == 0)
            {
                //get group no from moodle
                iGroupID = GetGroupIDFromGroupName(Token, iCourseID, sGroupName);
            }
            //add to group

            contents = core_group_add_group_members(iGroupID, iUserID);

            //Deserialize
            serializer = new JavaScriptSerializer();
            if (contents.Contains("exception"))
            {
                // Error
                ClsMoodleAPI.MoodleException moodleError = serializer.Deserialize <ClsMoodleAPI.MoodleException>(contents);
                // lbl_results.Text += "Error in adding member to group:" + sGroupName + "in course:" + sCourse + " / " + contents;
            }
            else
            {
                // Good
                //List<string> newGroups = serializer.Deserialize<List<string>>(contents);
                // lbl_results.Text += "Member Added Successfuly";
                iResult = InitializeModule.SUCCESS_RET;
            }
        }
        //for
        return(iResult);
    }
Пример #3
0
    private static string enrol_manual_enrol_users(ClsMoodleAPI.MoodleManualEnrol enrol)
    {
        //enrolments[0][roleid]= int
        //enrolments[0][userid]= int
        //enrolments[0][courseid]= int
        //enrolments[0][timestart]= int
        //enrolments[0][timeend]= int
        //enrolments[0][suspend]= int

        ServicePointManager.Expect100Continue      = true;
        ServicePointManager.DefaultConnectionLimit = 9999;
        ServicePointManager.SecurityProtocol       = (SecurityProtocolType)3072;

        //===========
        //to fix the following error:
        //The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.
        ServicePointManager.DefaultConnectionLimit  = 100;
        ServicePointManager.MaxServicePointIdleTime = 200000;

        //req.KeepAlive = false;
        //=====================

        String token = "1b4cb9114197a84985695b19b1164d0a";


        //List<MoodleManualEnrol> groupsList = new List<MoodleManualEnrol>();
        //groupsList.Add(enrol);

        //Array arrGroups = groupsList.ToArray();

        String postData      = String.Format("enrolments[0][roleid]={0}&enrolments[0][userid]={1}&enrolments[0][courseid]={2}&enrolments[0][suspend]={3}", enrol.roleid, enrol.userid, enrol.courseid, enrol.suspend);
        string createRequest = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "enrol_manual_enrol_users");
        // Call Moodle REST Service
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(createRequest);

        req.Timeout = 200000;  //added by bahaa to solve reqImport.GetResponse() timeout error

        //req.KeepAlive = false;

        req.Method      = "POST";
        req.ContentType = "application/x-www-form-urlencoded";

        // Encode the parameters as form data:
        byte[] formData =
            UTF8Encoding.UTF8.GetBytes(postData);
        req.ContentLength = formData.Length;

        // Write out the form Data to the request:
        using (Stream post = req.GetRequestStream())
        {
            post.Write(formData, 0, formData.Length);
        }

        // Get the Response
        HttpWebResponse resp      = (HttpWebResponse)req.GetResponse();
        Stream          resStream = resp.GetResponseStream();
        StreamReader    reader    = new StreamReader(resStream);
        string          contents  = reader.ReadToEnd();

        return(contents);
    }