コード例 #1
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);
    }
コード例 #2
0
    private static string core_user_update_users(ClsMoodleAPI.MoodleUpdateUser UpdateUser)//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][id]= int                //Add
        //users[0][username]= string
        //users[0][password]= string
        //users[0][firstname]= string
        //users[0][lastname]= string
        //users[0][email]= string
        //users[0][auth]= string
        //users[0][suspended]= int        //Add
        //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][userpicture]= int
        //users[0][customfields][0][type]= string
        //users[0][customfields][0][value]= string
        //users[0][preferences][0][type]= string
        //users[0][preferences][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.MoodleUpdateUser> groupsList = new List <ClsMoodleAPI.MoodleUpdateUser>();

        groupsList.Add(UpdateUser);

        Array arrGroups = groupsList.ToArray();

        String postData      = String.Format("users[0][id]={0}&users[0][username]={1}&users[0][password]={2}&users[0][firstname]={3}&users[0][lastname]={4}&users[0][email]={5}&users[0][auth]={6}&users[0][suspended]={7}&users[0][mailformat]={8}&users[0][description]={9}&users[0][city]={10}&users[0][country]={11}&users[0][firstnamephonetic]={12}&users[0][lastnamephonetic]={13}&users[0][middlename]={14}&users[0][alternatename]={15}", UpdateUser.id, UpdateUser.username, UpdateUser.password, UpdateUser.firstname, UpdateUser.lastname, UpdateUser.email, UpdateUser.auth, UpdateUser.suspended, UpdateUser.mailformat, UpdateUser.description, UpdateUser.city, UpdateUser.country, UpdateUser.firstnamephonetic, UpdateUser.lastnamephonetic, UpdateUser.middlename, UpdateUser.alternatename);
        string createRequest = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_user_update_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);
    }