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