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); }
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); }