|
@@ -431,12 +431,13 @@ namespace TEAMModelOS.Controllers
|
|
|
[Authorize(Roles = "IES")]
|
|
|
[AuthToken(Roles = "teacher,admin,student", Permissions = "knowledge-read,knowledge-upd")]
|
|
|
public async Task<IActionResult> PushSelf(JsonElement json) {
|
|
|
+ string ProjectItemID = $"{json.GetProperty("itemID")}";
|
|
|
var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
List<string> schools =new List<string> { school};
|
|
|
List<string> pushTeachers = new List<string> { userid};
|
|
|
School schoolData =await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
|
|
|
(List<ScsResult> results, List<PushFail> fails, List<Dictionary<string, object>> dicts) = await PushData(schoolData.areaId, schools, pushTeachers);
|
|
|
- (List<dynamic> ycd, List<dynamic> okd, List<TeacherSc> teachers, List<PushData> datas) = await CheckScPush(pushTeachers, schoolData.areaId, schools);
|
|
|
+ (List<dynamic> ycd, List<dynamic> okd, List<TeacherSc> teachers, List<PushData> datas) = await CheckScPush(pushTeachers, schoolData.areaId, schools, ProjectItemID);
|
|
|
return Ok(new { results, fails, dicts, ycd, okd, teachers, datas });
|
|
|
}
|
|
|
|
|
@@ -1109,14 +1110,15 @@ namespace TEAMModelOS.Controllers
|
|
|
[HttpPost("get-sc-teacher-push")]
|
|
|
public async Task<IActionResult> ScCheck(JsonElement json)
|
|
|
{
|
|
|
+ string ProjectItemID = $"{json.GetProperty("itemID")}";
|
|
|
List<string> pushTeachers = json.GetProperty("pushTeachers").ToObject<List<string>>();
|
|
|
string areaIdJson = $"{json.GetProperty("areaId")}";
|
|
|
List<string> schools = json.GetProperty("schools").ToObject<List<string>>();
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
- (List<dynamic> ycd, List<dynamic> okd, List<TeacherSc> teachers,List<PushData> datas)= await CheckScPush(pushTeachers, areaIdJson, schools);
|
|
|
+ (List<dynamic> ycd, List<dynamic> okd, List<TeacherSc> teachers,List<PushData> datas)= await CheckScPush(pushTeachers, areaIdJson, schools, ProjectItemID);
|
|
|
return Ok(new { ycData = ycd, okData = okd , tmdid= teachers .Select(x=>x.tmdid), datas = datas });
|
|
|
}
|
|
|
- private async Task<(List<dynamic> ycd ,List<dynamic> okd, List<TeacherSc> teachers, List<PushData> datas)> CheckScPush(List<string> pushTeachers,string areaIdJson,List<string> schools) {
|
|
|
+ private async Task<(List<dynamic> ycd ,List<dynamic> okd, List<TeacherSc> teachers, List<PushData> datas)> CheckScPush(List<string> pushTeachers,string areaIdJson,List<string> schools,string ProjectItemID) {
|
|
|
|
|
|
Dictionary<string, Dictionary<string, object>> pushDatas = new Dictionary<string, Dictionary<string, object>>();
|
|
|
List<Dictionary<string, object>> dicts = new List<Dictionary<string, object>>();
|
|
@@ -1133,7 +1135,12 @@ namespace TEAMModelOS.Controllers
|
|
|
pushTeachers.ForEach(tch => {
|
|
|
Codes.Add($" tmdid {QueryComparisons.Equal} '{tch}' ");
|
|
|
});
|
|
|
- string tbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacher' and areaId {QueryComparisons.Equal} '{areaIdJson}' and ( {string.Join(" or ", Codes)} ) ";
|
|
|
+ string itemqurey = "";
|
|
|
+ if (!string.IsNullOrWhiteSpace(ProjectItemID))
|
|
|
+ {
|
|
|
+ itemqurey = $" and ProjectItemID {QueryComparisons.Equal} {ProjectItemID} ";
|
|
|
+ }
|
|
|
+ string tbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacher' and areaId {QueryComparisons.Equal} '{areaIdJson}' {itemqurey} and ( {string.Join(" or ", Codes)} ) ";
|
|
|
var result = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacher>().Where(tbqurey), null);
|
|
|
scTeachers = result.Results;
|
|
|
}
|