天津23维预案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.2 KiB

3 years ago
using UnityEngine;
using AX.Network.Protocols;
using AX.NetworkSystem;
using System.Collections.Generic;
using System;
public class ANSWER_SAVE_REPLY : NetworkMessageBehaviour {
//public static event EventHandler ExamOverEvent;
private List<AnswerInfo> answerList = new List<AnswerInfo>();
protected override void Execute(BinaryMessage message)
{
var answer = message.Body.Deserialize<AnswerInfo>();
if (answer.ExaminationID == GetComponent<ExamItemManager>().Exam.ID)
{
answerList.Add(answer);
if(answerList.Count== BaseItemManager.AnswerList.Count)
{
UpLoadFiles();
}
}
}
private void UpLoadFiles()
{
var filelist = new List<string>();
for (int i = 0; i < answerList.Count; i++)
{
var filename = "Answers/" + answerList[i].ID + "/" + answerList[i].FilePath;////
filelist.Add(filename);
}
string[] files = filelist.ToArray();
//上传文件
if (files.Length > 0)
{
if (GameObject.Find("FileTransTipWindow"))//如果已经存在文件传输窗口,不再相应
return;
GameObject FileTransTipWin = Instantiate(Resources.Load<GameObject>("UIPrefab/FileTransTipWin"));
FileTransTipWin.GetComponent<FileTransTipWinManager>().SetWindow(
"UpLoad", files, TransferType.Upload);
FileTransTipWinManager.task.TransferTaskCompleted += Task_TransferTaskCompleted;
}
}
private void Task_TransferTaskCompleted()
{
FileTransTipWinManager.task.TransferTaskCompleted -= Task_TransferTaskCompleted;
for(int i = 0; i < answerList.Count; i++)
{
NetworkManager.Default.SendRequestAsync("ANSWER_INSERTORUPDATE_REQUEST", answerList[i]);//数据库插入答案记录的请求
}
BaseItemManager.AnswerList.Clear();//清空待上传答案列表
answerList.Clear();
ExamOver();
}
public void ExamOver()
{
transform.Find("StartAnswerQuestionButton").gameObject.SetActive(false);//.GetComponent<Button>().interactable = false;
transform.Find("CheckQuestionButton").gameObject.SetActive(false);//.GetComponent<Button>().interactable = false;
transform.Find("SubmitExamButton").gameObject.SetActive(false);//.GetComponent<Button>().interactable = false;
transform.Find("ExamTip").gameObject.SetActive(false);
transform.Find("ExamOverTip").gameObject.SetActive(true);
transform.Find("StartDownloadQuestionButton").gameObject.SetActive(false);
transform.GetComponent<ExamItemManager>().ExamOver = true;
//ExamItemManager.StartExam = false;
if (transform.parent.GetComponent<ExamManager>().AutoBackToLastSceneFlag)
{
BaseItemManager.CurExam = null;
BaseItemManager.CurQues = null;
BaseItemManager.CurExamID = 0;
BaseItemManager.CurQuestionID = 0;
TimeManager.CurExam = null;
TimeManager.CurQues = null;
TimeManager.RemainSeconds = -10;
MySceneManager.BackToLastScene();
}
}
}