private void InitCaseButtons(GameObject caseObj, MenuCase m) { //Setup the edit button on the case object to load the case //Button editButton = caseObj.transform.Find("ImageRows/Rows/Row0/EditButton").GetComponentInChildren<Button>(); Button readButton; if (GlobalData.GDS.isMobile) { readButton = caseObj.transform.Find("Row4/OpenReader")?.GetComponent <Button>(); } else { readButton = caseObj.transform.Find("Row4/OpenReader").GetComponent <Button>(); } readButton?.onClick.AddListener(delegate { //Load recommended courses here //-------- LoadReader(m); }); Button loadInfoButton = caseObj.GetComponent <Button>(); //Setup the case object button to load the info panel loadInfoButton.onClick.AddListener(delegate { LoadInfoPanel(m); }); }
private void PopulateRecommendedCase(Transform caseObj, MenuCase m) { string patientName = "ImageRows/Rows/Row0/NameData"; string author = "ImageRows/Rows/Row1/AuthorData"; string audience = "Row3/AudienceData"; string tags = "Row2/TagData"; string text = "Text"; string filename = "Filename"; string difficultyTextLoc = "Row3/DifficultyData"; string beginnerImage = "Row3/BeginnerImage"; string intermediateImage = "Row3/IntermediateImage"; string advancedImage = "Row3/AdvancedImage"; caseObj.Find(patientName).GetComponentInChildren <TextMeshProUGUI>().text = m.patientName.Replace("_", " "); //patientname will need to go here eventually caseObj.Find(author).GetComponentInChildren <TextMeshProUGUI>().text = m.description; //"by " + menuItems [menuItems.Count - 1].authorName; caseObj.Find(audience).GetComponentInChildren <TextMeshProUGUI>().text = m.audience; //Need audience variable? caseObj.Find(tags).GetComponentInChildren <TextMeshProUGUI>().text = m.GetTagsAsOneString(); caseObj.Find(text).GetComponentInChildren <TextMeshProUGUI>().text = m.description + ", " + m.filename.Replace(".ced", ""); caseObj.Find(filename).GetComponentInChildren <TextMeshProUGUI>().text = m.filename; string difficulty = m.difficulty; caseObj.transform.Find(difficultyTextLoc).GetComponentInChildren <TextMeshProUGUI>().text = difficulty; caseObj.transform.Find(beginnerImage).gameObject.SetActive(false); caseObj.transform.Find(intermediateImage).gameObject.SetActive(false); caseObj.transform.Find(advancedImage).gameObject.SetActive(false); switch (difficulty) { case "Beginner": caseObj.transform.Find(beginnerImage).gameObject.SetActive(true); break; case "Intermediate": caseObj.transform.Find(intermediateImage).gameObject.SetActive(true); break; case "Advanced": caseObj.transform.Find(advancedImage).gameObject.SetActive(true); break; default: caseObj.transform.Find(advancedImage).gameObject.SetActive(true); break; } if (m.completed) { //Enable completed thingy caseObj.transform.Find("CaseCompleted").gameObject.SetActive(true); } }
private void LoadReader(MenuCase m) { GlobalData.createCopy = false; GlobalData.resourcePath = "Reader"; //Set case //set ds.filename //ds.ReloadFile ReaderDataScript ds = GameObject.Find("GaudyBG").GetComponent <ReaderDataScript>(); ds.loadingScreen.gameObject.SetActive(true); Destroy(GameObject.Find("FinishedCasePanel")); GlobalData.caseObj = m; ds.SetFileName(m.filename); ds.ReloadFile(); }
public void ImportFile() { extensions = new string[] { "ced" }; var filePath = FileBrowser.OpenSingleFile("Open case file", Application.persistentDataPath, extensions); if (string.IsNullOrWhiteSpace(filePath)) { GlobalData.fileName = "[Import] Canceled"; Debug.Log("[Import] Canceled"); Cursor.visible = false; return; } XmlDocument xmlDoc = new XmlDocument(); try { string s = File.ReadAllText(filePath); print(s); xmlDoc.LoadXml(s); //This loads the locally saved file } catch (Exception) { string text = ""; AesManaged aes = new AesManaged(); ICryptoTransform decrypt = aes.CreateDecryptor(Encoding.UTF8.GetBytes(GlobalData.encryptionKey), Encoding.UTF8.GetBytes(GlobalData.encryptionIV)); using (FileStream fs = new FileStream(filePath, FileMode.Open)) { using (CryptoStream cs = new CryptoStream(fs, decrypt, CryptoStreamMode.Read)) { using (StreamReader sr = new StreamReader(cs)) { text = sr.ReadToEnd(); } } } //xmlDoc.LoadXml(DecryptStringFromBytes_Aes(GetBytesFromHex(s))); try { xmlDoc.LoadXml(text); } catch (XmlException xmlError) { Debug.LogWarning(xmlError.Message); return; } } XmlDocument subXmlDoc = new XmlDocument(); subXmlDoc.LoadXml(xmlDoc.DocumentElement.ChildNodes[0].OuterXml); string menuText = subXmlDoc.GetElementsByTagName("menu")[0].InnerText; string[] menuSplit = menuText.Split(new string[] { "--" }, StringSplitOptions.None); menuSplit[0] = GlobalData.accountId.ToString(); menuSplit[1] = "[CHECKFORDUPLICATE]" + menuSplit[1]; bool addCase = true; if (File.Exists(GameObject.Find("GaudyBG").GetComponent <ServerControls>().GetLocalSavesFolderPath() + menuSplit[1])) { addCase = false; } //Change the record number to avoid local conflicts or maybe remove that check for the menu menuText = string.Join("--", menuSplit); MenuCase m = new MenuCase(menuSplit); string savePathNoExtension = GameObject.Find("GaudyBG").GetComponent <ServerControls>().GetLocalSavesFolderPath() + m.filename.Remove(m.filename.Length - ".ced".Length); //Save local menu preview File.WriteAllText(savePathNoExtension + " menu.txt", menuText); //Save .ced File.WriteAllBytes(savePathNoExtension + ".ced", EncryptStringToBytes_Aes(xmlDoc.DocumentElement.ChildNodes[1].OuterXml)); //Save .cei File.WriteAllBytes(savePathNoExtension + ".cei", EncryptStringToBytes_Aes(xmlDoc.DocumentElement.ChildNodes[2].OuterXml)); if (addCase) { GameObject.Find("GaudyBG").GetComponent <ServerControls>().AddCase(m, true); } else { GameObject.Find("GaudyBG").GetComponent <LoginManager>().ShowMessage("Reimported case"); } }
private void LoadInfoPanel(MenuCase m) { }