IEnumerator webGetDepartments(int id)
    {
        WWWForm form = new WWWForm();

        form.AddField("UserID", PollsConfig.netUserID);
        form.AddField("Token", PollsConfig.netUserToken);
        form.AddField("HospitalID", id);
        WWW www = new WWW("http://47.106.71.112/api/getdepartments.aspx", form);

        yield return(www);

        if (www.isDone && www.error == null)
        {
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };
            retWithoutData ret = JsonConvert.DeserializeObject <retWithoutData>(www.text, settings);
            if (ret.ret == 1)
            {
                getDepRetWithData configs = JsonConvert.DeserializeObject <getDepRetWithData>(www.text, settings);
                foreach (DepartmentListParser c in configs.data)
                {
                    int result = PollsConfig.AddDepartment(c.vcDepartmentName, c.iDepartmentID);
                    if (result == -1)
                    {
#if UNITY_ANDROID
                        Toast.ShowToast("科室名已存在");
#endif
                    }
                    else if (result == -2)
                    {
#if UNITY_ANDROID
                        Toast.ShowToast("创建科室失败");
#endif
                    }
                    else if (result == -3)
                    {
#if UNITY_ANDROID
                        Toast.ShowToast("未选择医院");
#endif
                    }
                    else
                    {
                        DepartmentCell dc = AddNewCell(c.vcDepartmentName);
                        if (dc != null)
                        {
                            yield return(StartCoroutine(webGetQuestionsID(dc, c.iDepartmentID)));
                        }
                    }
                }
            }
            else
            {
                Toast.ShowToast(ret.info);
            }
            //loadingPanel.SetActive(false);
            www.Dispose();
        }
    }
    IEnumerator webGetQuestionsID(DepartmentCell dc, int departmentid)
    {
        WWWForm form = new WWWForm();

        form.AddField("UserID", PollsConfig.netUserID);
        form.AddField("Token", PollsConfig.netUserToken);
        form.AddField("DepartmentID", departmentid);
        WWW www = new WWW("http://47.106.71.112/api/getquestionnaires.aspx", form);

        yield return(www);

        if (www.isDone && www.error == null && www.text != "")
        {
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };
            retWithoutData ret = JsonConvert.DeserializeObject <retWithoutData>(www.text, settings);
            if (ret.ret == 1)
            {
                getQidRetWithData data = JsonConvert.DeserializeObject <getQidRetWithData>(www.text, settings);
                //get dci by name
                PollsConfig.DepartmentCellInfo dci = PollsConfig.GetDepartmentCellInfoByName(data.data[0].vcDepartmentName);
                if (dci != null)
                {
                    dci.title = data.data[0].Title;
                    if (!PollsConfig.QuestionMap.ContainsKey(data.data[0].iQuestionnaireID.ToString()))
                    {
                        needDownload++;
                        loadingPanel.SetActive(true);
                        yield return(StartCoroutine(webLoadQuestions(dc, data.data[0].vcDepartmentName, data.data[0].iQuestionnaireID)));
                    }
                    else
                    {
                        //PollsConfig.DepartmentCellInfo dci = PollsConfig.GetDepartmentCellInfoByName(data.data[0].vcDepartmentName);
                        dci.questions      = PollsConfig.QuestionMap[data.data[0].iQuestionnaireID.ToString()];
                        dci.qusetionLoaded = true;
                        dci.questionID     = data.data[0].iQuestionnaireID.ToString();
                        dc.SetToReadyStage();
                        PollsConfig.SerializeData();
                    }
                }
                else
                {
                    Toast.ShowToast("获取科室绑定问卷失败.");
                    Debug.LogError("webGetQuestionsID failed. " + data.data[0].vcDepartmentName);
                }
            }
            else
            {
                Toast.ShowToast(ret.info);
            }
            www.Dispose();
        }
        else
        {
            Debug.Log("There no questions in department " + departmentid);
        }
    }
 public void BackToHospitalMgrPage()
 {
     fileChooser.gameObject.SetActive(false);
     hotDepartmentCell = null;
     this.gameObject.SetActive(false);
     if (!selectMode)
     {
         HospitalMgrPage.gameObject.SetActive(true);
     }
     else
     {
         IntroPage.gameObject.SetActive(true);
     }
 }
    private DepartmentCell AddNewCell(string name, bool load = false)
    {
        PollsConfig.DepartmentCellInfo dci = PollsConfig.GetDepartmentCellInfoByName(name);
        if (selectMode && !dci.qusetionLoaded)
        {
            return(null);
        }
        GameObject newone = Instantiate(Resources.Load("ui/DepartmentCell") as GameObject);

        if (newone != null)
        {
            newone.transform.SetParent(grid.transform);
            newone.transform.localScale = Vector3.one;
            newone.transform.position   = Vector3.zero;
            RectTransform rti = newone.GetComponent <RectTransform>();
            rti.anchoredPosition3D = new Vector3(rti.anchoredPosition3D.x, rti.anchoredPosition3D.y, 0);


            if (dci != null)
            {
                DepartmentCell dc = newone.GetComponent <DepartmentCell>();
                dc.controller    = this;
                dc.textName.text = dci.name;
                if (dci.qusetionLoaded)
                {
                    dc.SetToReadyStage();
                }
                else
                {
                    dc.SetToNormalStage();
                }
                DepartmentCellMap.Add(dc, dci);
                if (!load)
                {
                    PollsConfig.SerializeData();
                }
                Invoke("_refreshList", 0.1f);
                return(dc);
            }
            return(null);
        }
        else
        {
            Debug.Log("Instantiate DepartmentCell failed.");
#if UNITY_ANDROID
            Toast.ShowToast("未知错误,请退出后重试");
#endif
            return(null);
        }
    }
    public void OnClickCell(DepartmentCell cell)
    {
        if (DepartmentCellMap.ContainsKey(cell))
        {
            PollsConfig.DepartmentCellInfo dci = DepartmentCellMap[cell];
            textNumPeople.text           = "已完成" + dci.numPeople + "人次";
            textDepartmentSelected.text  = "已选择 :" + dci.name;
            textDepartmentSelected.color = Color.blue;
            if (!PollsConfig.isOfflineMode)
            {
                textQuestion.text = dci.title;
            }
            else
            {
                textQuestion.text = "";
            }
            if (hotDepartmentCell == null)
            {
                hotDepartmentCell = cell;
                hotDepartmentCell.SetToSelectedStage();
            }
            else
            {
                PollsConfig.DepartmentCellInfo hdci = DepartmentCellMap[hotDepartmentCell];
                if (hdci != null)
                {
                    if (hdci.qusetionLoaded)
                    {
                        hotDepartmentCell.SetToReadyStage();
                    }
                    else
                    {
                        hotDepartmentCell.SetToNormalStage();
                    }
                    hotDepartmentCell = cell;
                    hotDepartmentCell.SetToSelectedStage();
                }
            }

            btnDelete.interactable  = selectMode ? false : true;
            btnStart.interactable   = dci.qusetionLoaded;
            btnPreview.interactable = selectMode ? false : dci.qusetionLoaded;
            btnLoad.interactable    = selectMode ? false : !dci.qusetionLoaded;
        }
    }
 public void ConfirmDelDepartment()
 {
     if (DepartmentCellMap.ContainsKey(hotDepartmentCell))
     {
         textNumPeople.text = "";
         PollsConfig.DelDepartment(DepartmentCellMap[hotDepartmentCell].name);
         DestroyImmediate(hotDepartmentCell.gameObject);
         hotDepartmentCell            = null;
         textDepartmentSelected.text  = "未选择科室";
         textDepartmentSelected.color = Color.red;
         btnDelete.interactable       = false;
         btnStart.interactable        = false;
         btnLoad.interactable         = false;
         btnPreview.interactable      = false;
         PollsConfig.SerializeData();
         Invoke("_refreshList", 0.1f);
     }
 }
 public void RefleshDepartments()
 {
     PollsConfig.DelAllDepartment();
     PollsConfig.ClearQuestionMap();
     for (int i = 0; i < grid.transform.childCount; i++)
     {
         Destroy(grid.transform.GetChild(i).gameObject);
     }
     hotDepartmentCell              = null;
     btnNew.interactable            = selectMode ? false : true;
     btnDelete.interactable         = false;
     btnStart.interactable          = false;
     btnPreview.interactable        = false;
     btnLoad.interactable           = false;
     PollsConfig.selectedDepartment = null;
     loadingPanel.gameObject.SetActive(true);
     needDownload = 0;
     StartCoroutine(webGetDepartments(PollsConfig.selectedHospital.hospitalID));
 }
    IEnumerator webLoadQuestions(DepartmentCell dc, string departmentname, int id)
    {
        WWWForm form = new WWWForm();

        form.AddField("UserID", PollsConfig.netUserID);
        form.AddField("Token", PollsConfig.netUserToken);
        form.AddField("QuestionnaireID", id);
        WWW www = new WWW("http://47.106.71.112/api/getquestionnaire.aspx", form);

        yield return(www);

        if (www.isDone && www.error == null)
        {
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };
            retWithoutData ret = JsonConvert.DeserializeObject <retWithoutData>(www.text, settings);
            if (ret.ret == 1)
            {
                needDownload--;
                if (needDownload == 0)
                {
                    loadingPanel.SetActive(false);
                }
                getQRetWithData data = JsonConvert.DeserializeObject <getQRetWithData>(www.text, settings);
                parseJson(id.ToString(), data.data);
                PollsConfig.DepartmentCellInfo dci = PollsConfig.GetDepartmentCellInfoByName(departmentname);
                dci.questions      = PollsConfig.QuestionMap[id.ToString()];
                dci.qusetionLoaded = true;
                dci.questionID     = id.ToString();
                dc.SetToReadyStage();
                PollsConfig.SerializeData();
            }
            else
            {
                Toast.ShowToast(ret.info);
            }
            www.Dispose();
        }
    }
 private void OnEnable()
 {
     if (Application.version == "2.07.6")
     {
         if (webcamTexture != null)
         {
             webcamTexture.Stop();
         }
         webcamTexture = null;
         OpenWebCamera();
     }
     textNumPeople.text           = "";
     textQuestion.text            = "";
     textHospitalSelected.text    = PollsConfig.selectedHospital.name;
     textDepartmentSelected.text  = "未选择科室";
     textDepartmentSelected.color = Color.red;
     if (gridOriginHeight == 0)
     {
         gridOriginHeight = grid.GetComponent <RectTransform>().sizeDelta.y;
     }
     for (int i = 0; i < grid.transform.childCount; i++)
     {
         Destroy(grid.transform.GetChild(i).gameObject);
     }
     hotDepartmentCell = null;
     UpdateList();
     btnNew.interactable     = selectMode ? false : true;
     btnDelete.interactable  = false;
     btnStart.interactable   = false;
     btnPreview.interactable = false;
     btnLoad.interactable    = false;
     btnNew.gameObject.SetActive(PollsConfig.isOfflineMode);
     btnDelete.gameObject.SetActive(PollsConfig.isOfflineMode);
     btnLoad.gameObject.SetActive(PollsConfig.isOfflineMode);
     btnReflesh.gameObject.SetActive(!PollsConfig.isOfflineMode);
     btnReflesh.interactable        = !selectMode;
     PollsConfig.selectedDepartment = null;
     needDownload = 0;
     if (!PollsConfig.isOfflineMode)
     {
         if (PollsConfig.GetDepartmentCellInfoCount(PollsConfig.selectedHospital) == 0)
         {
             RefleshDepartments();
         }
     }
     if (Application.version == "2.07.6")
     {
         if (selectMode)
         {
             ReadyPanel.gameObject.SetActive(true);
             DOTween.To(x =>
             {
             }, 0, 1, 5.0f).OnComplete(() =>
             {
                 webcamTexture.Play();
                 Invoke("CaptureWebCamTexture", 1.5f);
                 ReadyPanel.gameObject.SetActive(false);
             });
         }
     }
 }