public string core_group_delete_groups(string groupid) { ServicePointManager.Expect100Continue = true; ServicePointManager.DefaultConnectionLimit = 9999; ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; String token = "1b4cb9114197a84985695b19b1164d0a"; MoodleDeleteGroup groups = new MoodleDeleteGroup(); groups.groupid = HttpUtility.UrlEncode(groupid); List <MoodleDeleteGroup> groupsList = new List <MoodleDeleteGroup>(); groupsList.Add(groups); Array arrGroups = groupsList.ToArray(); String postData = String.Format("groupids[0]={0}", groups.groupid); string createRequest = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_group_delete_groups"); // Call Moodle REST Service HttpWebRequest req = (HttpWebRequest)WebRequest.Create(createRequest); 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); }
protected void btn_CreateCourse_Click(object sender, EventArgs e) { ServicePointManager.Expect100Continue = true; ServicePointManager.DefaultConnectionLimit = 9999; ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; String token = "1b4cb9114197a84985695b19b1164d0a"; long start = ToUnixTimestamp(Convert.ToDateTime(txt_StatrtDate.Text)); long end = ToUnixTimestamp(Convert.ToDateTime(txt_EndDate.Text)); //Start Create New Course MoodleCourses courses = new MoodleCourses(); courses.fullname = HttpUtility.UrlEncode(txt_fullname.Text.Trim()); courses.shortname = HttpUtility.UrlEncode(txt_shortname.Text.Trim()); courses.categoryid = HttpUtility.UrlEncode(txt_categoryid.Text.Trim()); courses.idnumber = HttpUtility.UrlEncode(txt_Idnumber.Text.Trim()); courses.summary = HttpUtility.UrlEncode(txt_Summary.Text.Trim()); courses.summaryformat = HttpUtility.UrlEncode(txt_summaryformat.Text.Trim()); courses.format = HttpUtility.UrlEncode(txt_format.Text.Trim()); courses.showgrades = HttpUtility.UrlEncode(txt_showgrades.Text.Trim()); courses.newsitems = HttpUtility.UrlEncode(txt_NewsItems.Text.Trim()); courses.startdate = HttpUtility.UrlEncode(start.ToString()); courses.enddate = HttpUtility.UrlEncode(end.ToString()); courses.numsections = HttpUtility.UrlEncode(txt_numsections.Text.Trim()); courses.maxbytes = HttpUtility.UrlEncode(txt_maxbytes.Text.Trim()); courses.showreports = HttpUtility.UrlEncode(txt_ShowReports.Text.Trim()); courses.visible = HttpUtility.UrlEncode(txt_visible.Text.Trim()); courses.groupmode = HttpUtility.UrlEncode(txt_groupmode.Text.Trim()); courses.groupmodeforce = HttpUtility.UrlEncode(txt_groupmodeforce.Text.Trim()); courses.defaultgroupingid = HttpUtility.UrlEncode(txt_defaultgroupingid.Text.Trim()); courses.enablecompletion = HttpUtility.UrlEncode(txt_enablecompletion.Text.Trim()); courses.completionnotify = HttpUtility.UrlEncode(txt_completionnotify.Text.Trim()); courses.lang = HttpUtility.UrlEncode(txt_lang.Text.Trim()); List <MoodleCourses> coursesList = new List <MoodleCourses>(); coursesList.Add(courses); Array arrCourses = coursesList.ToArray(); //String postData = String.Format("courses[0][fullname]={0}&courses[0][shortname]={1}&courses[0][categoryid]={2}&courses[0][idnumber]={3}&courses[0][summary]={4}&courses[0][summaryformat]={5}&courses[0][format]={6}&courses[0][showgrades]={7}&courses[0][newsitems]={8}&courses[0][showreports]={9}&courses[0][visible]={10}&courses[0][groupmode]={11}&courses[0][groupmodeforce]={12}&courses[0][defaultgroupingid]={13}", courses.fullname, courses.shortname, courses.categoryid, courses.idnumber, courses.summary, courses.summaryformat, courses.format, courses.showgrades, courses.newsitems, courses.showreports, courses.visible, courses.groupmode, courses.groupmodeforce, courses.defaultgroupingid); String postData = String.Format("courses[0][fullname]={0}&courses[0][shortname]={1}&courses[0][categoryid]={2}&courses[0][idnumber]={3}&courses[0][summary]={4}&courses[0][summaryformat]={5}&courses[0][format]={6}&courses[0][showgrades]={7}&courses[0][newsitems]={8}&courses[0][startdate]={9}&courses[0][enddate]={10}&courses[0][numsections]={11}&courses[0][maxbytes]={12}&courses[0][showreports]={13}&courses[0][visible]={14}&courses[0][groupmode]={15}&courses[0][groupmodeforce]={16}&courses[0][defaultgroupingid]={17}&courses[0][enablecompletion]={18}&courses[0][completionnotify]={19}&courses[0][lang]={20}", courses.fullname, courses.shortname, courses.categoryid, courses.idnumber, courses.summary, courses.summaryformat, courses.format, courses.showgrades, courses.newsitems, courses.startdate, courses.enddate, courses.numsections, courses.maxbytes, courses.showreports, courses.visible, courses.groupmode, courses.groupmodeforce, courses.defaultgroupingid, courses.enablecompletion, courses.completionnotify, courses.lang); string createRequest = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_course_create_courses"); // Call Moodle REST Service HttpWebRequest req = (HttpWebRequest)WebRequest.Create(createRequest); 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(); // Deserialize JavaScriptSerializer serializer = new JavaScriptSerializer(); if (contents.Contains("exception")) { // Error MoodleException moodleError = serializer.Deserialize <MoodleException>(contents); lbl_results.Text = contents; } else { // Good List <MoodleCreateCourseResponse> newCourses = serializer.Deserialize <List <MoodleCreateCourseResponse> >(contents); string id = ""; string shortname = ""; foreach (var value in newCourses) { id = value.id; shortname = value.shortname; } //End Create New Course // Deserialize string idimportcourse = ""; string contentsimport = core_course_get_courses_by_field("idnumber", txt_ImportCourseID.Text.Trim()); JavaScriptSerializer serializer1 = new JavaScriptSerializer(); if (contentsimport.Contains("exception")) { // Error MoodleException moodleError = serializer1.Deserialize <MoodleException>(contentsimport); lbl_results.Text = contentsimport; } else { // Good //List<MoodleCourses_Get> newCourses1 = serializer.Deserialize<List<MoodleCourses_Get>>(contents1); //string fullname1 = ""; //foreach (var value in newCourses1) //{ // idimportcourse = value.id; // fullname1 = value.fullname; //} //object yourOjbect = new JavaScriptSerializer().DeserializeObject(contentsimport); DataSet importobject = JsonConvert.DeserializeObject <DataSet>(contentsimport); idimportcourse = importobject.Tables[0].Rows[0]["id"].ToString(); } //Start Import Previous Course Contents to the Created Course Now MoodleImportCourse import = new MoodleImportCourse(); import.importfrom = HttpUtility.UrlEncode(idimportcourse); import.importto = HttpUtility.UrlEncode(id); import.deletecontent = HttpUtility.UrlEncode("0"); import.name = HttpUtility.UrlEncode("activities"); import.value = HttpUtility.UrlEncode("1"); import.name1 = HttpUtility.UrlEncode("blocks"); import.value1 = HttpUtility.UrlEncode("1"); import.name2 = HttpUtility.UrlEncode("filters"); import.value2 = HttpUtility.UrlEncode("1"); List <MoodleImportCourse> importList = new List <MoodleImportCourse>(); importList.Add(import); Array arrImport = importList.ToArray(); String postImportData = String.Format("importfrom={0}&importto={1}&deletecontent={2}&options[0][name]={3}&options[0][value]={4}&options[0][name]={5}&options[0][value]={6}&options[0][name]={7}&options[0][value]={8}", import.importfrom, import.importto, import.deletecontent, import.name, import.value, import.name1, import.value1, import.name2, import.value2); string createRequestImport = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_course_import_course"); // Call Moodle REST Service HttpWebRequest reqImport = (HttpWebRequest)WebRequest.Create(createRequestImport); reqImport.Method = "POST"; reqImport.ContentType = "application/x-www-form-urlencoded"; // Encode the parameters as form data: byte[] formDataImport = UTF8Encoding.UTF8.GetBytes(postImportData); reqImport.ContentLength = formDataImport.Length; // Write out the form Data to the request: using (Stream postImport = reqImport.GetRequestStream()) { postImport.Write(formDataImport, 0, formDataImport.Length); } // Get the Response HttpWebResponse respImport = (HttpWebResponse)reqImport.GetResponse(); Stream resStreamImport = respImport.GetResponseStream(); StreamReader readerImport = new StreamReader(resStreamImport); string contentsImport = readerImport.ReadToEnd(); // Deserialize JavaScriptSerializer serializerImport = new JavaScriptSerializer(); if (contentsImport.Contains("exception")) { // Error MoodleException moodleError = serializerImport.Deserialize <MoodleException>(contentsImport); lbl_results.Text = contentsImport; } else { // Good //End Import Previous Course Contents to the Created Course Now List <string> newImport = serializerImport.Deserialize <List <string> >(contentsImport); //Start Check if any groups were present in the imported course or not; if yes delete all existing groups MoodleGetCourseGroup GetCourse = new MoodleGetCourseGroup(); GetCourse.courseid = HttpUtility.UrlEncode(id); List <MoodleGetCourseGroup> CourseGroupList = new List <MoodleGetCourseGroup>(); CourseGroupList.Add(GetCourse); Array arrCourseGroup = CourseGroupList.ToArray(); String postCourseGroup = String.Format("courseid={0}", GetCourse.courseid); string createRequestCourseGroup = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_group_get_course_groups"); // Call Moodle REST Service HttpWebRequest reqCourseGroup = (HttpWebRequest)WebRequest.Create(createRequestCourseGroup); reqCourseGroup.Method = "POST"; reqCourseGroup.ContentType = "application/x-www-form-urlencoded"; // Encode the parameters as form data: byte[] formCourseGroup = UTF8Encoding.UTF8.GetBytes(postCourseGroup); reqCourseGroup.ContentLength = formCourseGroup.Length; // Write out the form Data to the request: using (Stream postImportCourseGroup = reqCourseGroup.GetRequestStream()) { postImportCourseGroup.Write(formCourseGroup, 0, formCourseGroup.Length); } // Get the Response HttpWebResponse respImportCourseGroup = (HttpWebResponse)reqCourseGroup.GetResponse(); Stream resStreamImportCourseGroup = respImportCourseGroup.GetResponseStream(); StreamReader readerImportCourseGroup = new StreamReader(resStreamImportCourseGroup); string contentsImportCourseGroup = readerImportCourseGroup.ReadToEnd(); JavaScriptSerializer serializerImportCourseGroup = new JavaScriptSerializer(); if (contentsImportCourseGroup.Contains("exception")) { // Error MoodleException moodleError = serializerImportCourseGroup.Deserialize <MoodleException>(contentsImportCourseGroup); lbl_results.Text = contentsImportCourseGroup; } else { // Good List <MoodleGetCourseGroupResponse> newCourseGroup = serializer.Deserialize <List <MoodleGetCourseGroupResponse> >(contentsImportCourseGroup); string groupid = ""; foreach (var value in newCourseGroup) { groupid = value.id; //Start Delete Groups MoodleDeleteGroup DeleteGroup = new MoodleDeleteGroup(); DeleteGroup.groupids = HttpUtility.UrlEncode(groupid); List <MoodleDeleteGroup> DeleteGroupList = new List <MoodleDeleteGroup>(); DeleteGroupList.Add(DeleteGroup); Array arrDeleteGroup = DeleteGroupList.ToArray(); String postDeleteGroup = String.Format("groupids[0]={0}", DeleteGroup.groupids); string createRequestDeleteGroup = string.Format("https://lms.ectmoodle.ae/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_group_delete_groups"); // Call Moodle REST Service HttpWebRequest reqDeleteGroup = (HttpWebRequest)WebRequest.Create(createRequestDeleteGroup); reqDeleteGroup.Method = "POST"; reqDeleteGroup.ContentType = "application/x-www-form-urlencoded"; // Encode the parameters as form data: byte[] formDeleteGroup = UTF8Encoding.UTF8.GetBytes(postDeleteGroup); reqDeleteGroup.ContentLength = formDeleteGroup.Length; // Write out the form Data to the request: using (Stream postImportDeleteGroup = reqDeleteGroup.GetRequestStream()) { postImportDeleteGroup.Write(formDeleteGroup, 0, formDeleteGroup.Length); } // Get the Response--- HttpWebResponse respImportDeleteGroup = (HttpWebResponse)reqDeleteGroup.GetResponse(); Stream resStreamImportDeleteGroup = respImportDeleteGroup.GetResponseStream(); StreamReader readerImportDeleteGroup = new StreamReader(resStreamImportDeleteGroup); string contentsImportDeleteGroup = readerImportDeleteGroup.ReadToEnd(); JavaScriptSerializer serializerImportDeleteGroup = new JavaScriptSerializer(); if (contentsImportDeleteGroup.Contains("exception")) { // Error MoodleException moodleError = serializerImportDeleteGroup.Deserialize <MoodleException>(contentsImportDeleteGroup); lbl_results.Text = contentsImportDeleteGroup; } else { // Good lbl_results.Text = "Course Created & Imported Successfuly-" + id + "/" + shortname + ""; } //End Delete Groups } } } } }