public static Degree getRandomHackerDegree(WorldLocation origin) { var degree = new Degree(); degree.name = randOf(degreeTitles) + randOf(hackerDegreeNames); degree.GPA = (float) (3.0 + 5.0*(Utils.random.NextDouble() - 0.5)*0.5); degree.uni = "University of " + origin.name; if (Utils.flipCoin()) degree.uni = origin.name + " University"; return degree; }
public static Person loadPersonFromFile(string path) { try { using (var fileStream = new FileStream(path, FileMode.Open)) { var rdr = XmlReader.Create(fileStream, new XmlReaderSettings()); while (rdr.Name != "Person") rdr.Read(); string str1; var lName = str1 = "unknown"; var fName = str1; var handle = str1; var male = true; var isHacker = false; if (rdr.MoveToAttribute("id")) rdr.ReadContentAsString(); if (rdr.MoveToAttribute("handle")) handle = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("firstName")) fName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("lastName")) lName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("isMale")) male = rdr.ReadContentAsBoolean(); if (rdr.MoveToAttribute("isHacker")) isHacker = rdr.ReadContentAsBoolean(); var person = new Person(fName, lName, male, isHacker, handle); rdr.Read(); while (!(rdr.Name == "Person") || rdr.IsStartElement()) { switch (rdr.Name) { case "Degrees": var list = new List<Degree>(); rdr.Read(); while (!(rdr.Name == "Degrees") || rdr.IsStartElement()) { if (rdr.Name == "Degree") { string str2; var uniName = str2 = "UNKNOWN"; var num1 = 3.0; if (rdr.MoveToAttribute("uni")) uniName = rdr.ReadContentAsString(); if (rdr.MoveToAttribute("gpa")) num1 = rdr.ReadContentAsDouble(); var num2 = (int) rdr.MoveToContent(); var degree = new Degree(rdr.ReadElementContentAsString(), uniName, (float) num1); list.Add(degree); } rdr.Read(); } if (list.Count > 0) { person.degrees = list; } break; case "Birthplace": string name = null; if (rdr.MoveToAttribute("name")) name = rdr.ReadContentAsString(); if (name == null) name = WorldLocationLoader.getRandomLocation().name; person.birthplace = WorldLocationLoader.getClosestOrCreate(name); break; case "DOB": var cultureInfo = new CultureInfo("en-au"); var num = (int) rdr.MoveToContent(); var dateTime = DateTime.Parse(rdr.ReadElementContentAsString(), cultureInfo); if (dateTime.Hour == 0 && dateTime.Second == 0) { var timeSpan = TimeSpan.FromHours(Utils.random.NextDouble()*23.99); dateTime += timeSpan; } person.DateOfBirth = dateTime; break; case "Medical": person.medicalRecord = MedicalRecord.Load(rdr, person.birthplace, person.DateOfBirth); break; } rdr.Read(); } return person; } } catch (FileNotFoundException ex) { return null; } }
private void drawEntryState(Rectangle bounds, SpriteBatch sb) { if (state == ADDState.Entry && os.hasConnectionPermission(true)) state = ADDState.EditPerson; if (Button.doButton(456010, bounds.X + 2, bounds.Y + 2, 160, 30, "Back", darkThemeColor)) state = ADDState.Welcome; var x = bounds.X + 20f; var y1 = bounds.Y + 50f; TextItem.doFontLabel(new Vector2(x, y1), searchedName, GuiData.font, new Color?(), bounds.Width - (x - bounds.X), 60f); var y2 = y1 + 30f; if (searchedDegrees.Count == 0) TextItem.doFontLabel(new Vector2(x, y2), " -No Degrees Found", GuiData.smallfont, new Color?(), float.MaxValue, float.MaxValue); for (var index = 0; index < searchedDegrees.Count; ++index) { var text = "Degree :" + searchedDegrees[index].name + "\nUni :" + searchedDegrees[index].uni + "\nGPA :" + searchedDegrees[index].GPA; TextItem.doFontLabel(new Vector2(x, y2), text, GuiData.smallfont, new Color?(), bounds.Width - (bounds.X - x), 50f); y2 += 60f; if (state == ADDState.EditPerson) { var num = y2 - 10f; if (Button.doButton(457900 + index, (int) x, (int) num, 100, 20, "Edit", new Color?())) { state = ADDState.EditEntry; editedField = ADDEditField.None; editedIndex = index; } if (Button.doButton(456900 + index, (int) x + 105, (int) num, 100, 20, needsDeletionConfirmation ? "Delete" : "Confirm?", needsDeletionConfirmation ? Color.Gray : Color.Red)) { if (needsDeletionConfirmation) { needsDeletionConfirmation = false; } else { comp.log(string.Concat("ACADEMIC_DATABASE::RecordDeletion_:_#", index, "_: ", searchedName.Replace(" ", "_"))); searchedDegrees.RemoveAt(index); saveChangesToEntry(); --index; needsDeletionConfirmation = true; } } y2 = num + 35f; } } var num1 = y2 + 10f; if (state != ADDState.EditPerson || !Button.doButton(458009, (int) x, (int) num1, 170, 30, "Add Degree", themeColor)) return; var degree = new Degree("UNKNOWN", "UNKNOWN", 0.0f); searchedDegrees.Add(degree); editedIndex = searchedDegrees.IndexOf(degree); state = ADDState.EditEntry; comp.log(string.Concat("ACADEMIC_DATABASE::RecordAdd_:_#", editedIndex, "_: ", searchedName.Replace(" ", "_"))); }
private void setEditedFieldValue(string value) { switch (editedField) { case ADDEditField.Uni: searchedDegrees[editedIndex] = new Degree(searchedDegrees[editedIndex].name, value, searchedDegrees[editedIndex].GPA); break; case ADDEditField.Degree: searchedDegrees[editedIndex] = new Degree(value, searchedDegrees[editedIndex].uni, searchedDegrees[editedIndex].GPA); break; case ADDEditField.GPA: var degreeGPA = 2f; try { if (value.Length > 0) degreeGPA = (float) Convert.ToDouble(value); } catch { } searchedDegrees[editedIndex] = new Degree(searchedDegrees[editedIndex].name, searchedDegrees[editedIndex].uni, degreeGPA); break; } }
private void drawEntryState(Rectangle bounds, SpriteBatch sb) { if (state == ADDState.Entry && os.hasConnectionPermission(true)) { state = ADDState.EditPerson; } if (Button.doButton(456010, bounds.X + 2, bounds.Y + 2, 160, 30, "Back", darkThemeColor)) { state = ADDState.Welcome; } var x = bounds.X + 20f; var y1 = bounds.Y + 50f; TextItem.doFontLabel(new Vector2(x, y1), searchedName, GuiData.font, new Color?(), bounds.Width - (x - bounds.X), 60f); var y2 = y1 + 30f; if (searchedDegrees.Count == 0) { TextItem.doFontLabel(new Vector2(x, y2), " -No Degrees Found", GuiData.smallfont, new Color?(), float.MaxValue, float.MaxValue); } for (var index = 0; index < searchedDegrees.Count; ++index) { var text = "Degree :" + searchedDegrees[index].name + "\nUni :" + searchedDegrees[index].uni + "\nGPA :" + searchedDegrees[index].GPA; TextItem.doFontLabel(new Vector2(x, y2), text, GuiData.smallfont, new Color?(), bounds.Width - (bounds.X - x), 50f); y2 += 60f; if (state == ADDState.EditPerson) { var num = y2 - 10f; if (Button.doButton(457900 + index, (int)x, (int)num, 100, 20, "Edit", new Color?())) { state = ADDState.EditEntry; editedField = ADDEditField.None; editedIndex = index; } if (Button.doButton(456900 + index, (int)x + 105, (int)num, 100, 20, needsDeletionConfirmation ? "Delete" : "Confirm?", needsDeletionConfirmation ? Color.Gray : Color.Red)) { if (needsDeletionConfirmation) { needsDeletionConfirmation = false; } else { comp.log(string.Concat("ACADEMIC_DATABASE::RecordDeletion_:_#", index, "_: ", searchedName.Replace(" ", "_"))); searchedDegrees.RemoveAt(index); saveChangesToEntry(); --index; needsDeletionConfirmation = true; } } y2 = num + 35f; } } var num1 = y2 + 10f; if (state != ADDState.EditPerson || !Button.doButton(458009, (int)x, (int)num1, 170, 30, "Add Degree", themeColor)) { return; } var degree = new Degree("UNKNOWN", "UNKNOWN", 0.0f); searchedDegrees.Add(degree); editedIndex = searchedDegrees.IndexOf(degree); state = ADDState.EditEntry; comp.log(string.Concat("ACADEMIC_DATABASE::RecordAdd_:_#", editedIndex, "_: ", searchedName.Replace(" ", "_"))); }