Przeglądaj źródła

Merge branch 'develop' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop

XW 1 rok temu
rodzic
commit
ac11970193

+ 1 - 1
TEAMModelOS.SDK/Models/Cosmos/School/CourseBase.cs

@@ -134,7 +134,7 @@ namespace TEAMModelOS.SDK.Models
     /// code CourseTask-hbcn
     /// 个人课程
     /// id $"{_courseId}";
-    ///  $"CourseTask-{tmdid}";
+    ///  $"CourseTask";
     /// </summary>
     public class CourseTask : CosmosEntity
     {

+ 73 - 79
TEAMModelOS/ClientApp/public/index.html

@@ -1,84 +1,78 @@
 <!DOCTYPE html>
 <html lang="en">
-
-<head>
-	<meta charset="utf-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<meta name="viewport" content="width=device-width,initial-scale=1.0">
-	<!--设置不缓存页面-->
-	<meta http-equiv="Pragma" content="no-cache">
-	<!--设置不修改消息存储-->
-	<meta http-equiv="Cache-control" content="no-cache">
-	<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-	<!--同上-->
-	<meta http-equiv="Cache" content="no-cache">
-	<link rel="icon" href="<%= BASE_URL %>favicon.ico">
-	<link id="theme" type="text/css" rel="stylesheet" href="<%= BASE_URL %>theme/dark-theme.css">
-	<title></title>
-	<script>
-		// 自动根据浏览器系统语言设置语言(优先判断本地设置的语言,如果有则使用本地设置的语言,如果没有则使用浏览器系统语言)
-		const curLang = localStorage.getItem('cloudSetting') ? JSON.parse(localStorage.getItem('cloudSetting')).curLang : null
-		const navLang = curLang || navigator.language.toLowerCase()
-		const localLang = (navLang === 'zh' || navLang === 'zh-tw' || navLang === 'zh-cn' || navLang === 'zh-hk') ? navLang : false
-		const lang = localLang || 'en-us'
-		const timestamp = new Date().getTime()
-		const langJsUrl = 'https://' + window.location.host + '/lang/' + lang + '.js?t=' + timestamp
-		document.write('<script  src="' + langJsUrl + '"><\/script>')
-		// 公式MathJax配置
-		MathJax = {
-			loader: {
-				load: ["input/tex", "output/svg"]
-			},
-			tex: {
-				inlineMath: [
-					['$', '$'],
-					['\\(', '\\)']
-				],
-				displayMath: [
-					["$$", "$$"],
-					["\\[", "\\]"]
-				]
-			},
-			svg: {
-				fontCache: 'local'
-			},
-			skipTags: ["script", "noscript", "style", "textarea", "pre", "code", "a"] //避开某些标签
-		};
-		// 本地设置赋值
-		let cloudSetting = localStorage.getItem('cloudSetting')
-		if (cloudSetting) {
-			cloudSetting = JSON.parse(cloudSetting)
-			document.documentElement.setAttribute('lang', cloudSetting.curLang || navigator.language);
-			if (cloudSetting.curTheme && cloudSetting.curTheme == 'light') {
-				document.getElementById('theme').href = '/theme/light-theme.css'
+	<head>
+		<meta charset="utf-8" />
+		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+		<meta name="viewport" content="width=device-width,initial-scale=1.0" />
+		<meta http-equiv="Pragma" content="no-cache" />
+		<meta http-equiv="Cache-control" content="no-cache" />
+		<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
+		<!--同上-->
+		<meta http-equiv="Cache" content="no-cache" />
+		<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
+		<link id="theme" type="text/css" rel="stylesheet" href="<%= BASE_URL %>theme/dark-theme.css" />
+		<title></title>
+		<script>
+			const curLang = localStorage.getItem("cloudSetting") ? JSON.parse(localStorage.getItem("cloudSetting")).curLang : null;
+			const navLang = curLang || navigator.language.toLowerCase();
+			const localLang = navLang === "zh" || navLang === "zh-tw" || navLang === "zh-cn" || navLang === "zh-hk" ? navLang : false;
+			const lang = localLang || "en-us";
+			const timestamp = new Date().getTime();
+			const langJsUrl = "https://" + window.location.host + "/lang/" + lang + ".js?t=" + timestamp;
+			document.write('<script  src="' + langJsUrl + '"><\/script>');
+			MathJax = {
+				loader: {
+					load: ["input/tex", "output/svg"]
+				},
+				tex: {
+					inlineMath: [
+						["$", "$"],
+						["\\(", "\\)"]
+					],
+					displayMath: [
+						["$$", "$$"],
+						["\\[", "\\]"]
+					]
+				},
+				svg: {
+					fontCache: "local"
+				},
+				skipTags: ["script", "noscript", "style", "textarea", "pre", "code", "a"] //避开某些标签
+			};
+			let cloudSetting = localStorage.getItem("cloudSetting");
+			if (cloudSetting) {
+				cloudSetting = JSON.parse(cloudSetting);
+				document.documentElement.setAttribute("lang", cloudSetting.curLang);
+				if (cloudSetting.curTheme && cloudSetting.curTheme == "light") {
+					document.getElementById("theme").href = "/theme/light-theme.css";
+				}
+			} else {
+				document.documentElement.setAttribute("lang", navigator.language);
 			}
-		}
-		// 判断是否为国际站
-		let isGlobalSite = window.location.origin.includes('teammodel.net')
-		let blobHost = isGlobalSite ? 'https://teammodel.blob.core.windows.net' : 'https://teammodelos.blob.core.chinacloudapi.cn'
-		document.write('<script id="vue"  src="' + blobHost + '/0-public/js/vue.js"><\/script>')
-		document.write('<script id="iview"  src="' + blobHost + '/0-public/js/iview.min.js"><\/script>')
-		document.write('<script id="fabric"  src="' + blobHost + '/0-public/js/fabric.min.js"><\/script>')
-		document.write('<script id="vueRouter"  src="' + blobHost + '/0-public/js/vue-router.min.js"><\/script>')
-		document.write('<script id="echarts"  src="' + blobHost + '/0-public/js/echarts.490.js"><\/script>')
-		document.write('<script id="jspdf"  src="' + blobHost + '/0-public/js/jspdf.umd.min.js"><\/script>')
-		document.write('<script id="mathjax"  src="' + blobHost + '/0-public/js/tex-mml-svg.js"><\/script>')
-		document.write('<script id="mediaInfo"  src="' + blobHost + '/0-public/js/checkMedia.js"><\/script>')
-		document.write('<script id="e_theme_macarons"  src="<%= BASE_URL %>theme/e_theme_macarons.js"><\/script>')
-		
-		window.onload = function() {
-			// 在页面加载完毕后执行代码
-			let bodyElement = document.body;
-			bodyElement.style.fontFamily = localStorage.local === 'zh-tw' ? '微软雅黑,' : localStorage.local === 'zh-cn' ? 'Hm' : 'Hm'   //7.18日  与杰哥讨论 cn使用Hm  TW使用微软雅黑;
-	};
-	</script>
-</head>
 
-<body>
-	<noscript>
-		<strong>IES5</strong>
-	</noscript>
-	<div id="app"></div>
-</body>
+			let isGlobalSite = window.location.origin.includes("teammodel.net");
+			let blobHost = isGlobalSite ? "https://teammodel.blob.core.windows.net" : "https://teammodelos.blob.core.chinacloudapi.cn";
+			document.write('<script id="vue"  src="' + blobHost + '/0-public/js/vue.js"><\/script>');
+			document.write('<script id="iview"  src="' + blobHost + '/0-public/js/iview.min.js"><\/script>');
+			document.write('<script id="fabric"  src="' + blobHost + '/0-public/js/fabric.min.js"><\/script>'); 
+			document.write('<script id="vueRouter"  src="' + blobHost + '/0-public/js/vue-router.min.js"><\/script>');
+			document.write('<script id="echarts"  src="' + blobHost + '/0-public/js/echarts.490.js"><\/script>');
+			document.write('<script id="jspdf"  src="' + blobHost + '/0-public/js/jspdf.umd.min.js"><\/script>');
+			document.write('<script id="mathjax"  src="' + blobHost + '/0-public/js/tex-mml-svg.js"><\/script>');
+			document.write('<script id="mediaInfo"  src="' + blobHost + '/0-public/js/checkMedia.js"><\/script>');
+			document.write('<script id="e_theme_macarons"  src="<%= BASE_URL %>theme/e_theme_macarons.js"><\/script>');
+
+			window.onload = function () {
+				let bodyElement = document.body;
+				bodyElement.style.fontFamily = localStorage.local === "zh-tw" ? "NotoSerif" : "Hm";
+			};
+		</script>
+	</head>
 
-</html>
+	<body>
+		<noscript>
+			<strong>IES5</strong>
+		</noscript>
+		<div id="app"></div>
+	</body>
+</html>

+ 13 - 18
TEAMModelOS/ClientApp/src/common/BaseLayout.vue

@@ -124,11 +124,11 @@
 			<slot name="content"></slot>
 		</Layout>
 		<Modal v-model="updateModal" :title="'更新内容 v' + version" width="600" footer-hide>
-			<Carousel v-model="updateIndex" loop style="width: 560px;height: 448px">
-				<CarouselItem v-for="(item,index) in updateImgArr" :key="index">
+			<Carousel v-model="updateIndex" loop style="width: 560px; height: 448px">
+				<CarouselItem v-for="(item, index) in updateImgArr" :key="index">
 					<div class="demo-carousel">
-            <img :src="item" alt="" style="width: 560px;height: 448px">
-          </div>
+						<img :src="item" alt="" style="width: 560px; height: 448px" />
+					</div>
 				</CarouselItem>
 			</Carousel>
 		</Modal>
@@ -140,14 +140,9 @@
 	export default {
 		data() {
 			return {
-        version:'',
-        updateImgArr:[
-          'https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0001.png',
-          'https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0002.png',
-          'https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0003.png',
-          'https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0004.png',
-        ],
-        updateIndex:0,
+				version: "",
+				updateImgArr: ["https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0001.png", "https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0002.png", "https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0003.png", "https://teammodeltest.blob.core.chinacloudapi.cn/download/version/0004.png"],
+				updateIndex: 0,
 				edition: "",
 				updateModal: false,
 				isPro: false, // 是否为专业版
@@ -187,13 +182,13 @@
 				if (res.version) {
 					console.error("最新版本", res.version);
 					let oldVersion = localStorage.version || "";
-          let isTestSite = window.location.host.includes('test.teammodel');
-          this.$EventBus.$emit('versionUpdate', res.version)
-					if (oldVersion !== res.version && isTestSite) {
+					let isTestSite = window.location.host.includes("test.teammodel.cn");
+					this.$EventBus.$emit("versionUpdate", res.version);
+					if (oldVersion !== res.version) {
 						this.$Notice.warning({
 							title: "版本更新通知(20s后自动关闭)",
 							duration: 20,
-              name:'update',
+							name: "update",
 							render: (h) => {
 								return h("span", [
 									`当前云平台版本已更新到 ${res.version}`,
@@ -217,7 +212,7 @@
 							}
 						});
 					}
-          this.version = res.version;
+					this.version = res.version;
 					localStorage.setItem("version", res.version);
 				}
 			});
@@ -225,7 +220,7 @@
 		methods: {
 			showUpdateDetails() {
 				this.updateModal = true;
-        this.$Notice.close('update')
+				this.$Notice.close("update");
 			},
 			mouseOver() {
 				if (!this.isLock) this.isCollapsed = false;

+ 2 - 2
TEAMModelOS/ClientApp/src/common/BaseSelectSchool.vue

@@ -48,7 +48,7 @@
 					<div v-for="(item, index) in semesterList" :key="index">
 						<DropdownItem :name="index">
 							<div class="school-item">
-								<span :style="{ color: yearColorArr[getYearStatus(item.year)], fontWeight: getYearStatus(item.year) === 1 ? '600' : '400' }">{{ item.year + $t("unit.year") + item.name }}</span>
+								<span :style="{ color: yearColorArr[getYearStatus(item.year)]}">{{ item.year + $t("unit.year") + item.name }}</span>
 							</div>
 						</DropdownItem>
 					</div>
@@ -66,7 +66,7 @@
 		inject: ["reload"],
 		data() {
 			return {
-				yearColorArr: ["#969696", "#16b1f3", "#19be6b"],
+				yearColorArr: ["#969696", "#19be6b", "#16b1f3"],
 				curSchool: {
 					logo: ""
 				},

+ 9 - 2
TEAMModelOS/ClientApp/src/view/joinclass/JoinClass.vue

@@ -53,8 +53,8 @@
                 <router-link v-show="(isJoin || isRep) && isPC" :to="{name:'login', query:{code,identity:'student'}}" style="margin-top:50px;display:block">{{$t('cusMgt.join.toTeammodel')}}</router-link>
             </div>
 
-            <div class="join-btn" @click="toLogin()" v-show="!isJoin && !isRep">
-                {{$t('cusMgt.join.joinBtn')}}
+            <div class="join-btn" @click="joinList()" v-show="!isJoin && !isRep">
+                {{ hasSend ? $t('newCusMgt.joinTip1') : $t('cusMgt.join.joinBtn')}}
             </div>
 
         </div>
@@ -75,6 +75,7 @@ import { mapGetters } from 'vuex'
 export default {
     data() {
         return {
+            hasSend:false,
             isRep: false,
             isPC: false,
             isLogin: false,
@@ -152,6 +153,10 @@ export default {
     },
     methods: {
         joinList() {
+            if(!this.id_token){
+                this.toLogin()
+                return
+            }
             this.$api.courseMgmt.qrCodeJoinList({
                 stuListNo: this.listNo,
                 courseId: this.cusId,
@@ -161,6 +166,7 @@ export default {
             }).then(
                 res => {
                     if (!res.error) {
+                        this.hasSend = false
                         if (res.status == 2) {//重复加入
                             this.$Message.success(this.$t('cusMgt.join.repJoin'))
                             this.isRep = true
@@ -174,6 +180,7 @@ export default {
                             this.$Message.warning(this.$t('cusMgt.join.joinLock'))
                         } else if (res.status == 6) {// 需要审核通过再加入
                             this.$Message.warning(this.$t('newCusMgt.joinTip1'))
+                            this.hasSend = true
                         } else if (res.status == 5) {// 人数已满,需要审核通过再加入
                             this.$Message.warning(this.$t('newCusMgt.joinTip2'))
                         } else if (res.status == 7) {// 二维码设置已经过期

+ 170 - 3
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -2082,20 +2082,187 @@ namespace TEAMModelOS.Controllers.Both
      
         [HttpPost("data-migration")]
         public async Task<IActionResult> DataMigration(JsonElement request) {
+            try {
+                List<Course> teacherCourses = new List<Course>();
+                List<Course> schoolCourses = new List<Course>();
+                HashSet<string> schoolIds = new HashSet<string>();
+                string sql = "select value c from c where c.pk='Course' ";
+                await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetItemQueryIterator<Course>(sql))
+                {
+                    schoolCourses.Add(item);
+                    if (!string.IsNullOrWhiteSpace(item.school))
+                    {
+                        schoolIds.Add(item.school);
+                    }
+                }
+                await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetItemQueryIterator<Course>(sql))
+                {
+                    teacherCourses.Add(item);
+                }
+                List<School> schools = new List<School>();
+                if (schoolIds.Count>0)
+                {
+                    var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<School>($"select value c from c where c.id  in ({string.Join(",", schoolIds.Select(z => $"'{z}'"))})", "Base");
+                    if (result.list.IsNotEmpty())
+                    {
+                        schools.AddRange(result.list);
+                    }
+                }
+                List<CourseDto> schoolCourseDtos = new List<CourseDto>();
+                foreach (var course in schoolCourses)
+                {
+                    var school = schools.Find(z => z.id.Equals(course.school));
+                    var period = school.period.Find(z => z.id.Equals(course.period?.id));
+                    var semester = SchoolService.GetSemester(period, course._ts.Value);
+                    CourseBase courseBase = new CourseBase()
+                    {
+                        id= course.id,
+                        code=$"CourseBase-{school.id}",
+                        pk="CourseBase",
+                        ttl=-1,
+                        name=course.name,
+                        subject= new IdName { id=course.subject?.id, name=course.subject?.name },
+                        period= new IdName { id= course.period?.id, name =course.period?.name },
+                        school=school.id,
+                        scope="school",
+                        no=course.no,
+                        creatorId=course.creatorId,
+                        desc=course.desc,
+                        status=1,
+                        grade=0,
+                    };
+                    List<ScheduleTask> schedules = new List<ScheduleTask>();
+                    int grade = -1;
+                    foreach (var schedule in course.schedule)
+                    {
+                        if (!string.IsNullOrWhiteSpace(schedule.teacherId) && !string.IsNullOrWhiteSpace(schedule.classId))
+                        {
+                            schedules.Add(new ScheduleTask() { type="class", groupId=schedule.classId, teacherId=schedule.teacherId, roomId= schedule.room, school=school.id });
+                            try {
+                                Class clazz = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<Class>(schedule.classId, new PartitionKey($"Class-{school.id}"));
+                                var gradeData = SchoolService.GetGrades(school, period.id, new List<int>() { clazz.year }, course._ts.Value);
+                                if (gradeData.grades.Any() && gradeData.grades.Count>0)
+                                {
+                                    int.TryParse(gradeData.grades.First(), out grade);
+                                }
+                            } catch { }
+                        }
+                        if (!string.IsNullOrWhiteSpace(schedule.teacherId) && !string.IsNullOrWhiteSpace(schedule.stulist))
+                        {
+                            schedules.Add(new ScheduleTask() { type="teach", groupId=schedule.stulist, teacherId=schedule.teacherId, roomId= schedule.room, school=school.id });
+                            if (grade==-1)
+                            {
+                                var groups = await GroupListService.GetMemberByListids(_coreAPIHttpService, _azureCosmos.GetCosmosClient(), _dingDing, new List<string> { schedule.stulist }, school.id);
+                                if (groups.rmembers.IsNotEmpty())
+                                {
+                                    var a = groups.rmembers.Where(z => z.type==2  && z.year>0).GroupBy(z => z.year).Select(z => new { key = z.Key, list = z.ToList() }).OrderByDescending(y => y.list.Count).FirstOrDefault();
+                                    if (a!=null)
+                                    {
+                                        var gradeData = SchoolService.GetGrades(school, period.id, new List<int>() { a.key }, course._ts.Value);
+                                        if (gradeData.grades.Any() && gradeData.grades.Count>0)
+                                        {
+                                            int.TryParse(gradeData.grades.First(), out grade);
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (grade>-1)
+                    {
+                        courseBase.grade=grade;
+                    }
+                    CourseDto courseDto = new CourseDto();
+                    courseDto.courseBase=courseBase;
+                    await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).UpsertItemAsync(courseBase, new PartitionKey(courseBase.code));
+                    if (schedules.IsNotEmpty())
+                    {
+                        if (semester.currSemester!=null)
+                        {
+                            string id = $"{semester.studyYear}-{semester.currSemester.id}-{courseBase.id}";
+                            string code = $"CourseTask-{school.id}";
+                            CourseTask courseTask = new CourseTask
+                            {
+                                id = id,
+                                code = code,
+                                pk="CourseTask",
+                                ttl=-1,
+                                courseId=courseBase.id,
+                                year= semester.studyYear,
+                                expire= semester.nextSemester.AddDays(-1).ToUnixTimeMilliseconds(),
+                                semesterId=semester.currSemester.id,
+                                schedules=schedules
+                            };
+                            courseDto.courseTasks.Add(new CourseTaskDto { courseTask=courseTask, type="school" });
+                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).UpsertItemAsync(courseTask, new PartitionKey(code));
+                        }
+                    }
+                    schoolCourseDtos.Add(courseDto);
+                }
 
+                List<CourseDto> teacherCourseDtos = new List<CourseDto>();
+                foreach (var course in teacherCourses)
+                {
+                    CourseBase courseBase = new CourseBase()
+                    {
+                        id= course.id,
+                        code=$"CourseBase",
+                        pk="CourseBase",
+                        ttl=-1,
+                        name=course.name,
+                        scope="private",
+                        no=course.no,
+                        creatorId=course.creatorId,
+                        desc=course.desc,
+                        status=1,
+                    };
+                    List<ScheduleTask> schedules = new List<ScheduleTask>();
+                    foreach (var schedule in course.schedule)
+                    {
+                        if (!string.IsNullOrWhiteSpace(schedule.teacherId) && !string.IsNullOrWhiteSpace(schedule.classId))
+                        {
+                            schedules.Add(new ScheduleTask() { type="class", groupId=schedule.classId, teacherId=schedule.teacherId, roomId= schedule.room });
+                        }
+                        if (!string.IsNullOrWhiteSpace(schedule.teacherId) && !string.IsNullOrWhiteSpace(schedule.stulist))
+                        {
+                            schedules.Add(new ScheduleTask() { type="teach", groupId=schedule.stulist, teacherId=schedule.teacherId, roomId= schedule.room });
 
-            return Ok();
+                        }
+                    }
+                    CourseDto courseDto = new CourseDto();
+                    courseDto.courseBase=courseBase;
+                    await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(courseBase, new PartitionKey(courseBase.code));
+                    if (schedules.IsNotEmpty())
+                    {
+                        string id = $"{courseBase.id}";
+                        string code = $"CourseTask";
+                        CourseTask courseTask = new CourseTask
+                        {
+                            id = id,
+                            code = code,
+                            pk="CourseTask",
+                            ttl=-1,
+                            courseId=courseBase.id,
+                            schedules=schedules
+                        };
+                        courseDto.courseTasks.Add(new CourseTaskDto { courseTask=courseTask, type="private" });
+                        await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(courseTask, new PartitionKey(code));
+                    }
+                    teacherCourseDtos.Add(courseDto);
+                }
+                return Ok(new { teacherCourseDtos, schoolCourseDtos });
+            } catch (Exception ex ){ return Ok($"{ex.Message},{ex.StackTrace}"); }
         }
     }
     public class CourseStudentDto
     {
         public CourseBase courseBase { get; set; }
-        public List<CourseTask> courseTasks { get; set; }
+        public List<CourseTask> courseTasks { get; set; } = new List<CourseTask>();
 
     }
     public class CourseDto { 
         public CourseBase courseBase { get; set; }
-        public List<CourseTaskDto> courseTasks { get; set; }
+        public List<CourseTaskDto> courseTasks { get; set; } = new List<CourseTaskDto>();
       
     }
     public class CourseTaskDto {

+ 1 - 2
TEAMModelOS/Controllers/School/SchoolTeacherController.cs

@@ -1134,9 +1134,8 @@ namespace TEAMModelOS.Controllers
         [ProducesDefaultResponseType]
         //[AuthToken(Roles = "admin")]
         [HttpPost("get-coreuser")]
-        [AuthToken(Roles = "teacher,admin,student")]
-
 #if !DEBUG
+        [AuthToken(Roles = "teacher,admin,student")]
         [Authorize(Roles = "IES")]
 #endif
         public async Task<IActionResult> GetUserFromCoreID(JsonElement request)