|
@@ -16,6 +16,7 @@ using Microsoft.Extensions.Configuration;
|
|
|
using HTEXLib.COMM.Helpers;
|
|
|
using TEAMModelOS.SDK;
|
|
|
using System.Threading;
|
|
|
+using Microsoft.Azure.Cosmos.Table;
|
|
|
|
|
|
namespace TEAMModelOS.Controllers
|
|
|
{
|
|
@@ -58,14 +59,36 @@ namespace TEAMModelOS.Controllers
|
|
|
AreaSetting areaSetting = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemAsync<AreaSetting>($"{areaIdJson}", new PartitionKey("AreaSetting"));
|
|
|
ScAccessConfig config = areaSetting.accessConfig.ToObject<ScAccessConfig>();
|
|
|
Dictionary<string, dynamic > checkDatas = new Dictionary<string, dynamic >();
|
|
|
-
|
|
|
var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
|
|
|
- List<ScTeacher> scTeachers = await table.FindListByDict<ScTeacher>(new Dictionary<string, object> { { "PartitionKey", "ScTeacher" }, { "areaId", $"{areaIdJson}" } });
|
|
|
- List<ScTeacherDiagnosis> scTeacherDiagnoses = await table.FindListByDict<ScTeacherDiagnosis>(new Dictionary<string, object> { { "PartitionKey", "ScTeacherDiagnosis" }, { "areaId", $"{areaIdJson}" } });
|
|
|
- var teammodelossas = _azureStorage.GetBlobContainerSAS99Year("teammodelos", Azure.Storage.Sas.BlobContainerSasPermissions.Read);
|
|
|
+ List<ScTeacher> scTeachers = new List<ScTeacher>();
|
|
|
+ List<ScTeacherDiagnosis> scTeacherDiagnoses = new List<ScTeacherDiagnosis>();
|
|
|
+ if (pushTeachers.IsNotEmpty())
|
|
|
+ {
|
|
|
+ List<string> Codes = new List<string>();
|
|
|
+ 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)} ) ";
|
|
|
+ var result = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacher>().Where(tbqurey), null);
|
|
|
+ scTeachers = result.Results;
|
|
|
+
|
|
|
+ List<string> Pxids = new List<string>();
|
|
|
+ scTeachers.ForEach(tch => {
|
|
|
+ Pxids.Add($" RowKey {QueryComparisons.Equal} '{tch.PXID}' ");
|
|
|
+ });
|
|
|
+ string ditbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacherDiagnosis' and areaId {QueryComparisons.Equal} '{areaIdJson}' and ( {string.Join(" or ", Pxids)} ) ";
|
|
|
+ var diresult = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacherDiagnosis>().Where(ditbqurey), null);
|
|
|
+ scTeacherDiagnoses = diresult.Results;
|
|
|
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ scTeachers = await table.FindListByDict<ScTeacher>(new Dictionary<string, object> { { "PartitionKey", "ScTeacher" }, { "areaId", $"{areaIdJson}" } });
|
|
|
+ scTeacherDiagnoses = await table.FindListByDict<ScTeacherDiagnosis>(new Dictionary<string, object> { { "PartitionKey", "ScTeacherDiagnosis" }, { "areaId", $"{areaIdJson}" } });
|
|
|
+ }
|
|
|
+ var teammodelossas = _azureStorage.GetBlobContainerSAS99Year("teammodelos", Azure.Storage.Sas.BlobContainerSasPermissions.Read);
|
|
|
|
|
|
|
|
|
+ List<PushFail> failse = new List<PushFail>();
|
|
|
List<string> schools = schoolsJson.ToObject<List<string>>();
|
|
|
foreach (var school in schools) {
|
|
|
StringBuilder queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain'");
|
|
@@ -133,7 +156,7 @@ namespace TEAMModelOS.Controllers
|
|
|
List<Task> tasks = new List<Task>();
|
|
|
lists.ForEach(x =>
|
|
|
{
|
|
|
- tasks.Add(CheckTeacher(x, scTeachers, scTeacherDiagnoses, $"{school}", schoolsas, list53112, list53113, list53117, list53122, teammodelossas, pushDatas, updatePush));
|
|
|
+ tasks.Add(CheckTeacher(x, scTeachers, scTeacherDiagnoses, $"{school}", schoolsas, list53112, list53113, list53117, list53122, teammodelossas, pushDatas, failse, updatePush));
|
|
|
});
|
|
|
await Task.WhenAll(tasks);
|
|
|
//推送数据
|
|
@@ -207,15 +230,32 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- return Ok(new { data = new { results, checkDatas, dicts } });
|
|
|
+ List<PushFail> fails = new List<PushFail>();
|
|
|
+ failse.ForEach(x =>
|
|
|
+ {
|
|
|
+ var f= fails.FindAll(y => y.tmdid.Equals(x.tmdid));
|
|
|
+ if (f.IsNotEmpty())
|
|
|
+ {
|
|
|
+ f.ForEach(ff => {
|
|
|
+ ff.type = $"{ff.type},{x.type}";
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ x.msgs.ForEach(msg =>
|
|
|
+ {
|
|
|
+ fails.Add(new PushFail { tmdid = x.tmdid, name = x.name, school = x.school, schoolname = x.schoolname, code = msg.code, msg = msg.value, type = x.type });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return Ok(new { data = new { results, fails, dicts } });
|
|
|
}
|
|
|
|
|
|
private async Task CheckTeacher(TeacherTrain x, List<ScTeacher> scTeachers, List<ScTeacherDiagnosis> scTeacherDiagnoses, string school,(string uri ,string sas) schoolsas,
|
|
|
List<Dictionary<string, object>> list53112, List<Dictionary<string, object>> list53113, List<Dictionary<string, object>> list53117, List<Dictionary<string, object>> list53122,
|
|
|
- (string uri, string sas ) teammodelossas, Dictionary<string, Dictionary<string, object>> pushDatas,HashSet<TeacherTrain> updatePush
|
|
|
+ (string uri, string sas ) teammodelossas, Dictionary<string, Dictionary<string, object>> pushDatas, List<PushFail> failse, HashSet<TeacherTrain> updatePush
|
|
|
)
|
|
|
{
|
|
|
- List<KeyValuePair<string, string>> msgs = new List<KeyValuePair<string, string>>();
|
|
|
+ List<CodeValue> msgs = new List<CodeValue>();
|
|
|
List<ScTeacher> teacher = scTeachers.FindAll(t => !string.IsNullOrWhiteSpace(t.tmdid) && t.tmdid.Equals(x.id));
|
|
|
foreach (var t in teacher)
|
|
|
{
|
|
@@ -227,11 +267,11 @@ namespace TEAMModelOS.Controllers
|
|
|
///检查是否全部已经上传
|
|
|
bool pushAll = true;
|
|
|
int t53112OK = 1, t53113OK=1, t53117OK=1 , t53122OK=1 ;
|
|
|
- List<KeyValuePair<string, string>> msgs53112 = null;
|
|
|
- List<KeyValuePair<string, string>> msgs53113 = null;
|
|
|
+ List<CodeValue> msgs53112 = null;
|
|
|
+ List<CodeValue> msgs53113 = null;
|
|
|
|
|
|
- List<KeyValuePair<string, string>> msgs53117 = null;
|
|
|
- List<KeyValuePair<string, string>> msgs53122 = null;
|
|
|
+ List<CodeValue> msgs53117 = null;
|
|
|
+ List<CodeValue> msgs53122 = null;
|
|
|
List<OfflineRecord> allRightOfflineRecords = new List<OfflineRecord>();
|
|
|
List<AbilitySub> allRightAbility = new List<AbilitySub>();
|
|
|
List<AbilitySub> abilitySubs = new List<AbilitySub>();
|
|
@@ -485,24 +525,25 @@ namespace TEAMModelOS.Controllers
|
|
|
else {
|
|
|
if (t53112OK != 1) {
|
|
|
pushData.Add("fail-UpdateTeacherListSituation", new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53112, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
- fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53112 ,school= t.schoolCode,schoolname=t.SchoolName });
|
|
|
+ fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53112 ,school= t.schoolCode,schoolname=t.SchoolName,type= "fail-UpdateTeacherListSituation" });
|
|
|
}
|
|
|
if (t53113OK != 1)
|
|
|
{
|
|
|
pushData.Add("fail-UpdateTeacherListDiagnosis", new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53113, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
- fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53113, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
+ fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53113, school = t.schoolCode, schoolname = t.SchoolName,type= "fail-UpdateTeacherListDiagnosis" });
|
|
|
}
|
|
|
if (t53117OK != 1) {
|
|
|
pushData.Add("fail-UploadKTSLList", new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53117, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
- fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53117, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
+ fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53117, school = t.schoolCode, schoolname = t.SchoolName,type= "fail-UploadKTSLList" });
|
|
|
}
|
|
|
if (t53122OK != 1) {
|
|
|
pushData.Add("fail-UploadSBTARPDFListV2", new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53122, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
- fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53122, school = t.schoolCode, schoolname = t.SchoolName });
|
|
|
+ fails.Add(new PushFail { tmdid = t.tmdid, name = t.TeacherName, msgs = msgs53122, school = t.schoolCode, schoolname = t.SchoolName,type= "fail-UploadSBTARPDFListV2" });
|
|
|
}
|
|
|
if (pushData.Any())
|
|
|
{
|
|
|
- pushDatas.Add(t.tmdid, pushData);
|
|
|
+ pushDatas.Add(t.tmdid,pushData);
|
|
|
+ failse.AddRange(fails);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -512,19 +553,281 @@ namespace TEAMModelOS.Controllers
|
|
|
[HttpPost("sc-check")]
|
|
|
public async Task<IActionResult> css(JsonElement json)
|
|
|
{
|
|
|
+
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
JsonElement areaIdJson = json.GetProperty("areaId");
|
|
|
+ // JsonElement school = json.GetProperty("school");
|
|
|
+ JsonElement schoolsJson = json.GetProperty("schools");
|
|
|
+ Dictionary<string, Dictionary<string, object>> pushDatas = new Dictionary<string, Dictionary<string, object>>();
|
|
|
+ List<Dictionary<string, object>> dicts = new List<Dictionary<string, object>>();
|
|
|
+ List<string> pushTeachers = json.GetProperty("pushTeachers").ToObject<List<string>>();
|
|
|
+ List<ScsResult> results = new List<ScsResult>();
|
|
|
AreaSetting areaSetting = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemAsync<AreaSetting>($"{areaIdJson}", new PartitionKey("AreaSetting"));
|
|
|
ScAccessConfig config = areaSetting.accessConfig.ToObject<ScAccessConfig>();
|
|
|
- Dictionary<string, object> parameterContent53123 = new Dictionary<string, object>();
|
|
|
- parameterContent53123.Add("Content", new { TrainComID = config.trainComID, ProjectID =config.p.First().pd, ProjectItemID =config.p.First().pid, PXID = "277838", TID= "624316" });
|
|
|
- parameterContent53123.Add("TrainComID", config.trainComID);
|
|
|
- parameterContent53123.Add("ProjectID", config.p.First().pd);
|
|
|
- parameterContent53123.Add("ProjectItemID", config.p.First().pid);
|
|
|
- parameterContent53123.Add("PXID", "277838");
|
|
|
- parameterContent53123.Add("TID", "624316");
|
|
|
- ScsResult GetDiagnosisResultByPXIDCommand = await _thirdApisService.Post(config.url, "GetDiagnosisResultByPXIDCommand", config.passKey, config.privateKey, parameterContent53123);
|
|
|
- return Ok(GetDiagnosisResultByPXIDCommand);
|
|
|
+ Dictionary<string, dynamic> checkDatas = new Dictionary<string, dynamic>();
|
|
|
+ var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
|
|
|
+ List<ScTeacher> scTeachers = new List<ScTeacher>();
|
|
|
+ //List<ScTeacherDiagnosis> scTeacherDiagnoses = new List<ScTeacherDiagnosis>();
|
|
|
+ if (pushTeachers.IsNotEmpty())
|
|
|
+ {
|
|
|
+ List<string> Codes = new List<string>();
|
|
|
+ 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)} ) ";
|
|
|
+ var result = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacher>().Where(tbqurey), null);
|
|
|
+ scTeachers = result.Results;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ List<string> schools = schoolsJson.ToObject<List<string>>();
|
|
|
+ if (schools.IsNotEmpty())
|
|
|
+ {
|
|
|
+ List<string> Codes = new List<string>();
|
|
|
+ schools.ForEach(school => {
|
|
|
+ Codes.Add($" schoolCode {QueryComparisons.Equal} '{school}' ");
|
|
|
+ });
|
|
|
+ string tbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacher' and areaId {QueryComparisons.Equal} '{areaIdJson}' and ( {string.Join(" or ", Codes)} ) ";
|
|
|
+ var result = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacher>().Where(tbqurey), null);
|
|
|
+ scTeachers = result.Results;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ scTeachers = await table.FindListByDict<ScTeacher>(new Dictionary<string, object> { { "PartitionKey", "ScTeacher" }, { "areaId", $"{areaIdJson}" } });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ List<PushData> datas = new List<PushData>();
|
|
|
+ foreach (var sc in scTeachers) {
|
|
|
+ Dictionary<string, object> parameterContent53123 = new Dictionary<string, object>();
|
|
|
+ // parameterContent53123.Add("Content", new { TrainComID = config.trainComID, ProjectID =config.p.First().pd, ProjectItemID =config.p.First().pid, PXID = "277838", TID= "624316" });
|
|
|
+ parameterContent53123.Add("TrainComID", config.trainComID);
|
|
|
+ parameterContent53123.Add("ProjectID", config.p.First().pd);
|
|
|
+ parameterContent53123.Add("ProjectItemID", config.p.First().pid);
|
|
|
+ parameterContent53123.Add("PXID",$"{sc.PXID}");
|
|
|
+ parameterContent53123.Add("TID",$"{sc.TID}");
|
|
|
+ ScsResult GetDiagnosisResultByPXIDCommand = await _thirdApisService.Post(config.url, "GetDiagnosisResultByPXIDCommand", config.passKey, config.privateKey, parameterContent53123);
|
|
|
+ if (GetDiagnosisResultByPXIDCommand.result) {
|
|
|
+ datas.Add(GetDiagnosisResultByPXIDCommand.content.ToObject<PushData>());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ok(datas);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ public class DiagnosisInfoItem
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ /// 技术支持的学情分析
|
|
|
+ /// </summary>
|
|
|
+ public string diagnosisName { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string xzpresult { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string zpresult { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string hpresult { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int diagnosisID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string diagnosisNum { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string uptime { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public class TeacherSc
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int PXID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 陈芋伶
|
|
|
+ /// </summary>
|
|
|
+ public string TeacherName { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int TID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int ProjectID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int ProjectItemID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string ProjectTitle { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 金牛区信息技术2.0提升工程直属学校培训(第一轮)
|
|
|
+ /// </summary>
|
|
|
+ public string ProjectItemTitle { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string CityName { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string DisName { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string SchoolName { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string CityID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string DistrictID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int SchoolID { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string PXXK { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string PXXD { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string TeacherXK { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string TeacherXD { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string Mobile { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string Email { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int ComPassed { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string ComPassedTime { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public class FilesItem
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ /// 信息化教学案例展示
|
|
|
+ /// </summary>
|
|
|
+ public string fileName { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int sourceType { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string diagnosisNum { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public int filesize { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// https://teammodelos.blob.core.chinacloudapi.cn/cdqzmd/train/8eae8733-c4cd-40bd-8ada-6fe5e2573e30/1640923152/心得.pdf?sv=2021-04-10&st=2022-06-23T09%3A43%3A07Z&se=2121-05-30T09%3A58%3A07Z&sr=c&sp=r&sig=iFHJSQAHbgOc1I4trUVab%2B2UCV%2BrY%2Blge%2Fjb30yvqjM%3D
|
|
|
+ /// </summary>
|
|
|
+ public string url { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string fileType { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public string md5 { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public class PushData
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public List<DiagnosisInfoItem> diagnosisInfo { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public TeacherSc teacherInfo { get; set; }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///
|
|
|
+ /// </summary>
|
|
|
+ public List<FilesItem> files { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
}
|