Exemplo n.º 1
0
    public static int CreateUpdateMoodleAccount(string sEmail, string sStudentID)
    {
        int iReturnValue = 0;

        string    sSQL   = "";
        DataTable dtUser = new DataTable("User");
        DataSet   dsUser = new DataSet();


        sSQL  = "SELECT distinct username, password, firstname, lastname";
        sSQL += ", email, auth";
        sSQL += ", country, city, department,userno,moodleuserno";
        sSQL += " FROM Moodle_Import_Students_M_F_Step4";
        sSQL += " WHERE email='" + sEmail + "'";

        //sSQL += " ORDER By userno DESC";

        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.MoodleCreateUser CreateUser = new ClsMoodleAPI.MoodleCreateUser();

        int iMoodleUserNo = 0;
        int iUserNo       = 0;
        int iRequiredToUpdateMoodleUserinDB = 0;

        for (int i = 0; i < dsUser.Tables["User"].Rows.Count; i++) //
        {
            iUserNo = Convert.ToInt32("0" + dsUser.Tables["User"].Rows[i]["userno"].ToString());
            if (iUserNo == 0)
            {
                iUserNo = LibraryMOD.GetStudentUserNo(sStudentID);
            }
            iMoodleUserNo = Convert.ToInt32("0" + dsUser.Tables["User"].Rows[i]["moodleuserno"].ToString());
            if (iMoodleUserNo == 0)
            {
                iRequiredToUpdateMoodleUserinDB = 1;
            }
            CreateUser.username = dsUser.Tables["User"].Rows[i]["username"].ToString(); // + "test"
            CreateUser.email    = dsUser.Tables["User"].Rows[i]["email"].ToString();    // + "test"

            CreateUser.password = dsUser.Tables["User"].Rows[i]["password"].ToString();

            //CreateUser.createpassword = HttpUtility.UrlEncode(createpassword);
            CreateUser.firstname = dsUser.Tables["User"].Rows[i]["firstname"].ToString();
            CreateUser.lastname  = dsUser.Tables["User"].Rows[i]["lastname"].ToString();


            CreateUser.auth      = "oidc"; // oidc or manual
            CreateUser.suspended = 0;
            //CreateUser.idnumber = HttpUtility.UrlEncode(idnumber);
            //CreateUser.lang = HttpUtility.UrlEncode(lang);
            //CreateUser.calendartype = HttpUtility.UrlEncode(calendartype);
            //CreateUser.theme = HttpUtility.UrlEncode(theme);
            //CreateUser.timezone = HttpUtility.UrlEncode(timezone);
            CreateUser.mailformat        = "1";
            CreateUser.description       = "";
            CreateUser.city              = "Abu Dhabi";
            CreateUser.country           = "AE";
            CreateUser.firstnamephonetic = "";
            CreateUser.lastnamephonetic  = "";
            CreateUser.middlename        = "";
            CreateUser.alternatename     = "";

            if (CreateUser.email != "")
            {
                iMoodleUserNo = ClsMoodleAPI.CreateUserInMoodleCheckIfExist(CreateUser);
            }

            if (iMoodleUserNo > 0 && iRequiredToUpdateMoodleUserinDB == 1)
            {
                //save Moodle user number in ECT database
                UpdateMoodleUserNo(iUserNo, iMoodleUserNo);
                iReturnValue = InitializeModule.SUCCESS_RET;
            }
            iRequiredToUpdateMoodleUserinDB = 0;
        }
        return(iReturnValue);
    }
Exemplo n.º 2
0
    private static int CreateUserInMoodleCheckIfExist(ClsMoodleAPI.MoodleCreateUser CreateUser)
    {
        int iResult = InitializeModule.FAIL_RET;
        //Start Check if user exists or not

        string get_users = core_user_get_users("username", CreateUser.username.Trim());
        // Deserialize
        JavaScriptSerializer serializer = new JavaScriptSerializer();

        if (get_users.Contains("exception"))
        {
            // Error
            ClsMoodleAPI.MoodleException moodleError = serializer.Deserialize <ClsMoodleAPI.MoodleException>(get_users);
            // lbl_results.Text += " Error in get user:"******"/" + get_users;
        }
        else
        {
            // Good
            ClsMoodleAPI.ListOfUsers myDeserializedClass = JsonConvert.DeserializeObject <ClsMoodleAPI.ListOfUsers>(get_users);
            if (myDeserializedClass.users.Count > 0)
            {
                //string sReturnedUserName = myDeserializedClass.users[0].username;
                ClsMoodleAPI.MoodleUpdateUser UpdateUser = new ClsMoodleAPI.MoodleUpdateUser();
                UpdateUser.id = myDeserializedClass.users[0].id;
                iResult       = UpdateUser.id;

                UpdateUser.suspended = 0;
                UpdateUser.username  = CreateUser.username;
                UpdateUser.email     = CreateUser.email;
                UpdateUser.password  = CreateUser.password;
                //UpdateUser.=CreateUser.createpassword ;
                UpdateUser.firstname = CreateUser.firstname;
                UpdateUser.lastname  = CreateUser.lastname;
                UpdateUser.auth      = CreateUser.auth; // oidc or manual
                UpdateUser.suspended = CreateUser.suspended;
                //UpdateUser.idnumber =CreateUser.idnumber ;
                //UpdateUser.lang=CreateUser.lang;
                //UpdateUser.calendartype =CreateUser.calendartype ;
                //UpdateUser.theme =CreateUser.theme;
                //UpdateUser.timezone=CreateUser.timezone;
                UpdateUser.mailformat        = CreateUser.mailformat;
                UpdateUser.description       = myDeserializedClass.users[0].description; //CreateUser.description;
                UpdateUser.city              = CreateUser.city;
                UpdateUser.country           = CreateUser.country;
                UpdateUser.firstnamephonetic = CreateUser.firstnamephonetic;
                UpdateUser.lastnamephonetic  = CreateUser.lastnamephonetic;
                UpdateUser.middlename        = CreateUser.middlename;
                UpdateUser.alternatename     = CreateUser.alternatename;
                //if (CreateUser.username.Trim() == sReturnedUserName)
                //{
                //    lbl_results.Text = "User Exists Already";
                //    //should update the User
                //}
                //else
                //{ //else start

                //If user not exists then create a new user with below parameters;
                string created_user = core_user_update_users(UpdateUser);//txt_Username.Text.Trim(), txt_Password.Text.Trim(), txt_FirstName.Text.Trim(), txt_LastName.Text.Trim(), txt_Email.Text.Trim(), txt_Auth.Text.Trim(), txt_Mailformat.Text.Trim(), txt_Description.Text.Trim(), txt_City.Text.Trim(), txt_Country.Text.Trim(), txt_firstnamephonetic.Text.Trim(), txt_lastnamephonetic.Text.Trim(), txt_middlename.Text.Trim(), txt_alternatename.Text.Trim());
                //core_user_update_users
                // Deserialize
                JavaScriptSerializer serializercreated_user = new JavaScriptSerializer();
                if (created_user.Contains("exception"))
                {
                    // Error
                    ClsMoodleAPI.MoodleException moodleError = serializercreated_user.Deserialize <ClsMoodleAPI.MoodleException>(created_user);
                    //lbl_results.Text += "Error in updating user:"******" / " + created_user;
                }
                else
                {
                    List <ClsMoodleAPI.MoodleCreatedUser> newImport = serializercreated_user.Deserialize <List <ClsMoodleAPI.MoodleCreatedUser> >(created_user);
                    //  lbl_results.Text += "User profile Updated Successfully" ;
                }
                //} //else end
            }
            else
            {
                //If user not exists then create a new user with below parameters;
                string created_user = core_user_create_users(CreateUser);//txt_Username.Text.Trim(), txt_Password.Text.Trim(), txt_FirstName.Text.Trim(), txt_LastName.Text.Trim(), txt_Email.Text.Trim(), txt_Auth.Text.Trim(), txt_Mailformat.Text.Trim(), txt_Description.Text.Trim(), txt_City.Text.Trim(), txt_Country.Text.Trim(), txt_firstnamephonetic.Text.Trim(), txt_lastnamephonetic.Text.Trim(), txt_middlename.Text.Trim(), txt_alternatename.Text.Trim());
                // Deserialize
                JavaScriptSerializer serializercreated_user = new JavaScriptSerializer();
                if (created_user.Contains("exception"))
                {
                    // Error
                    ClsMoodleAPI.MoodleException moodleError = serializercreated_user.Deserialize <ClsMoodleAPI.MoodleException>(created_user);
                    //lbl_results.Text += "Error in updating:" + CreateUser.username + " / " + created_user;
                }
                else
                {
                    List <ClsMoodleAPI.MoodleCreatedUser> myserializercreated_user = serializercreated_user.Deserialize <List <ClsMoodleAPI.MoodleCreatedUser> >(created_user);

                    foreach (var value in myserializercreated_user)
                    {
                        iResult = value.id;
                    }
                    // lbl_results.Text += "User:"******" / " + CreateUser.username + " Created Successfully";
                }
            }
        }

        // iResult = InitializeModule.SUCCESS_RET;
        return(iResult);
    }
Exemplo n.º 3
0
    private static string core_user_create_users(ClsMoodleAPI.MoodleCreateUser CreateUser)//string username, string password, string firstname, string lastname, string email, string auth, string mailformat, string description, string city, string country, string firstnamephonetic, string lastnamephonetic, string middlename, string alternatename)
    {
        //users[0][username]= string
        //users[0][password]= string
        //users[0][createpassword]= int
        //users[0][firstname]= string
        //users[0][lastname]= string
        //users[0][email]= string
        //users[0][auth]= string
        //users[0][idnumber]= string
        //users[0][lang]= string
        //users[0][calendartype]= string
        //users[0][theme]= string
        //users[0][timezone]= string
        //users[0][mailformat]= int
        //users[0][description]= string
        //users[0][city]= string
        //users[0][country]= string
        //users[0][firstnamephonetic]= string
        //users[0][lastnamephonetic]= string
        //users[0][middlename]= string
        //users[0][alternatename]= string
        //users[0][preferences][0][type]= string
        //users[0][preferences][0][value]= string
        //users[0][customfields][0][type]= string
        //users[0][customfields][0][value]= string


        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 <ClsMoodleAPI.MoodleCreateUser> groupsList = new List <ClsMoodleAPI.MoodleCreateUser>();

        groupsList.Add(CreateUser);

        Array arrGroups = groupsList.ToArray();

        String postData      = String.Format("users[0][username]={0}&users[0][password]={1}&users[0][firstname]={2}&users[0][lastname]={3}&users[0][email]={4}&users[0][auth]={5}&users[0][mailformat]={6}&users[0][description]={7}&users[0][city]={8}&users[0][country]={9}&users[0][firstnamephonetic]={10}&users[0][lastnamephonetic]={11}&users[0][middlename]={12}&users[0][alternatename]={13}", CreateUser.username, CreateUser.password, CreateUser.firstname, CreateUser.lastname, CreateUser.email, CreateUser.auth, CreateUser.mailformat, CreateUser.description, CreateUser.city, CreateUser.country, CreateUser.firstnamephonetic, CreateUser.lastnamephonetic, CreateUser.middlename, CreateUser.alternatename);
        string createRequest = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_user_create_users");
        // Call Moodle REST Service
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(createRequest);

        req.Timeout     = 200000; //added by bahaa to solve reqImport.GetResponse() timeout error
        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);
    }