/// <summary> /// Adds one animal sphere to the saved data. /// </summary> public void AddAnimalSphere(AnimalSpheres sphereType) { SaveItems collectedItem = SaveItems.BIRD_SPHERE_AMOUNT; switch (sphereType) { case AnimalSpheres.Bunny: collectedItem = SaveItems.BUNNY_SPHERE_AMOUNT; break; case AnimalSpheres.Cat: collectedItem = SaveItems.CAT_SPHERE_AMOUNT; break; case AnimalSpheres.Dog: collectedItem = SaveItems.DOG_SPHERE_AMOUNT; break; case AnimalSpheres.Ferret: collectedItem = SaveItems.FERRET_SPHERE_AMOUNT; break; case AnimalSpheres.Bird: default: break; } int amount = GameData.GetSavedAttribute(collectedItem); amount++; GameData.SaveData(collectedItem, amount); }
private Action CompareLocalToCloud(SaveItems saveItems) { return(new Action(() => { foreach (SaveItem localSave in saveItems.LocalSaves) { if (saveItems.CloudSaves.Any(cf => cf.FileName.Remove(cf.FileName.Length - 4, 4) == localSave.FileName.Split('\\').Last())) { UpdateUi(new Action(() => MessageBox.Show(localSave.FileName))); } } })); }
private static IElement NewAction(XmlNode xmlNode, IElement parent = null) { IElement element = null; IElement ne = null; // child elements XmlElement importNode = (xmlNode as XmlElement); if (xmlNode.Name == "Action") { switch (importNode.GetAttribute("Type")) { case "AppTree": AppTree appTree = new AppTree(Globals.EventAggregator) { ApplicationVariableBase = importNode.GetAttribute("ApplicationVariableBase"), PackageVariableBase = importNode.GetAttribute("PackageVariableBase"), Title = importNode.GetAttribute("Title"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("CenterTitle"))) { appTree.CenterTitle = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("CenterTitle"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Size"))) { appTree.Size = importNode.GetAttribute("Size"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Expanded"))) { appTree.Expanded = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Expanded"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowBack"))) { appTree.ShowBack = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowBack"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowCancel"))) { appTree.ShowCancel = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowCancel"))); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, appTree); /* This is handled by the only valid subelement in AppTree (SoftwareSets) * if(ne is IChildElement) * { * appTree.SubChildren.Add(ne as IChildElement); * } */ } element = appTree; break; case "DefaultValues": DefaultValues defaultValues = new DefaultValues(Globals.EventAggregator) { Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("ValueTypes"))) { string[] defaultValueTypes = importNode.GetAttribute("ValueTypes").Split(','); defaultValues.ValueTypeList.Where(x => x.Name == "All").First().IsSelected = false; foreach (string defaultValueType in defaultValueTypes) { if (defaultValues.ValueTypeList.Where(x => x.Name == defaultValueType).Count() > 0) { defaultValues.ValueTypeList.Where(x => x.Name == defaultValueType).First().IsSelected = true; } } } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowProgress"))) { defaultValues.ShowProgress = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowProgress"))); } element = defaultValues; break; case "ErrorInfo": ErrorInfo errorInfo = new ErrorInfo(Globals.EventAggregator) { Image = importNode.GetAttribute("Image"), InfoImage = importNode.GetAttribute("InfoImage"), Name = importNode.GetAttribute("Name"), Title = importNode.GetAttribute("Title"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("CenterTitle"))) { errorInfo.CenterTitle = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("CenterTitle"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowBack"))) { errorInfo.ShowBack = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowBack"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowCancel"))) { errorInfo.ShowCancel = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowCancel"))); } element = errorInfo; break; case "ExternalCall": ExternalCall externalCall = new ExternalCall(Globals.EventAggregator) { ExitCodeVariable = importNode.GetAttribute("ExitCodeVariable"), Title = importNode.GetAttribute("Title"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("ExitCodeVariable"))) { externalCall.ExitCodeVariable = importNode.GetAttribute("ExitCodeVariable"); } if (!string.IsNullOrEmpty(importNode.InnerXml)) { externalCall.Content = CDATARemover(importNode.InnerXml); } element = externalCall; break; case "FileRead": FileRead fileRead = new FileRead(Globals.EventAggregator) { FileName = importNode.GetAttribute("Filename"), Variable = importNode.GetAttribute("Variable"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("DeleteLine"))) { fileRead.DeleteLine = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DeleteLine"))); } element = fileRead; break; case "Info": Info info = new Info(Globals.EventAggregator) { Image = importNode.GetAttribute("Image"), InfoImage = importNode.GetAttribute("InfoImage"), Name = importNode.GetAttribute("Name"), Title = importNode.GetAttribute("Title"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowBack"))) { info.ShowBack = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowBack"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowCancel"))) { info.ShowCancel = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowCancel"))); } if (int.TryParse(importNode.GetAttribute("Timeout"), out int infoTimeout)) { info.Timeout = infoTimeout; } if (!string.IsNullOrEmpty(importNode.GetAttribute("TimeoutAction"))) { info.TimeoutAction = importNode.GetAttribute("TimeoutAction"); } if (!string.IsNullOrEmpty(importNode.InnerXml)) { info.Content = CDATARemover(importNode.InnerXml); } element = info; break; case "InfoFullScreen": InfoFullScreen infoFullScreen = new InfoFullScreen(Globals.EventAggregator) { Image = importNode.GetAttribute("Image") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("BackgroundColor"))) { infoFullScreen.BackgroundColor = importNode.GetAttribute("BackgroundColor"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("TextColor"))) { infoFullScreen.TextColor = importNode.GetAttribute("TextColor"); } if (!string.IsNullOrEmpty(importNode.InnerXml)) { infoFullScreen.Content = CDATARemover(importNode.InnerXml); } break; case "Input": Input input = new Input(Globals.EventAggregator) { Name = importNode.GetAttribute("Name"), Title = importNode.GetAttribute("Title"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Size"))) { input.Size = importNode.GetAttribute("Size"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowBack"))) { input.ShowBack = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowBack"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowCancel"))) { input.ShowCancel = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowCancel"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("CenterTitle"))) { input.CenterTitle = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("CenterTitle"))); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, input); if (ne is IChildElement) { input.SubChildren.Add(ne as IChildElement); } } element = input; break; case "Preflight": Preflight preflight = new Preflight(Globals.EventAggregator) { Title = importNode.GetAttribute("Title"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Size"))) { preflight.Size = importNode.GetAttribute("Size"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowBack"))) { preflight.ShowBack = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowBack"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowCancel"))) { preflight.ShowCancel = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowCancel"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("CenterTitle"))) { preflight.CenterTitle = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("CenterTitle"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowOnFailureOnly"))) { preflight.CenterTitle = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowOnFailureOnly"))); } if (int.TryParse(importNode.GetAttribute("Timeout"), out int preflightTimeout)) { preflight.Timeout = preflightTimeout; } if (!string.IsNullOrEmpty(importNode.GetAttribute("TimeoutAction"))) { preflight.TimeoutAction = importNode.GetAttribute("TimeoutAction"); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, preflight); if (ne is IChildElement) { preflight.SubChildren.Add(ne as IChildElement); } } element = preflight; break; case "RandomString": RandomString randomString = new RandomString(Globals.EventAggregator) { Variable = importNode.GetAttribute("Variable"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("AllowedChars"))) { randomString.AllowedChars = importNode.GetAttribute("AllowedChars"); } if (int.TryParse(importNode.GetAttribute("Length"), out int randomLength)) { randomString.Length = randomLength; } element = randomString; break; case "RegRead": RegRead regRead = new RegRead(Globals.EventAggregator) { Default = importNode.GetAttribute("Default"), Key = importNode.GetAttribute("Key"), Variable = importNode.GetAttribute("Variable"), Value = importNode.GetAttribute("Value"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Reg64"))) { regRead.Reg64 = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Reg64"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Hive"))) { regRead.Hive = importNode.GetAttribute("Hive"); } element = regRead; break; case "RegWrite": RegWrite regWrite = new RegWrite(Globals.EventAggregator) { Key = importNode.GetAttribute("Key"), Value = importNode.GetAttribute("Value"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Reg64"))) { regWrite.Reg64 = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Reg64"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Type"))) { regWrite.ValueType = importNode.GetAttribute("Type"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Hive"))) { regWrite.Hive = importNode.GetAttribute("Hive"); } element = regWrite; break; case "SaveItems": SaveItems saveItems = new SaveItems(Globals.EventAggregator) { Items = importNode.GetAttribute("Items"), Path = importNode.GetAttribute("Path"), Condition = importNode.GetAttribute("Condition") }; element = saveItems; break; case "SoftwareDiscovery": SoftwareDiscovery softwareDiscovery = new SoftwareDiscovery(Globals.EventAggregator) { Condition = importNode.GetAttribute("Condition"), }; foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, softwareDiscovery); if (ne is IChildElement) { softwareDiscovery.SubChildren.Add(ne as IChildElement); } } element = softwareDiscovery; break; case "Switch": Switch switchClass = new Switch(Globals.EventAggregator) { OnValue = importNode.GetAttribute("OnValue"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("DontEval"))) { switchClass.DontEval = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DontEval"))); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, switchClass); if (ne is IChildElement) { switchClass.SubChildren.Add(ne as IChildElement); } } element = switchClass; break; case "TSVar": TSVar tsVar = new TSVar(Globals.EventAggregator) { Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("DontEval"))) { tsVar.DontEval = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DontEval"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Name"))) { tsVar.Variable = importNode.GetAttribute("Name"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Variable"))) { tsVar.Variable = importNode.GetAttribute("Variable"); } if (!string.IsNullOrEmpty(importNode.InnerXml)) { tsVar.Content = CDATARemover(importNode.InnerXml); } element = tsVar; break; case "TSVarList": TSVarList tsVarList = new TSVarList(Globals.EventAggregator) { Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("ApplicationVariableBase"))) { tsVarList.ApplicationVariableBase = importNode.GetAttribute("ApplicationVariableBase"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("PackageVariableBase"))) { tsVarList.PackageVariableBase = importNode.GetAttribute("PackageVariableBase"); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, tsVarList); if (ne is IChildElement) { tsVarList.SubChildren.Add(ne as IChildElement); } } element = tsVarList; break; case "UserAuth": UserAuth userAuth = new UserAuth(Globals.EventAggregator) { Attributes = importNode.GetAttribute("Attributes"), Domain = importNode.GetAttribute("Domain"), DomainController = importNode.GetAttribute("DomainController"), Group = importNode.GetAttribute("Group"), Title = importNode.GetAttribute("Title") }; if (int.TryParse(importNode.GetAttribute("MaxRetryCount"), out int uaMaxRetryCount)) { userAuth.MaxRetryCount = uaMaxRetryCount; } if (!string.IsNullOrEmpty(importNode.GetAttribute("DisableCancel"))) { userAuth.DisableCancel = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DisableCancel"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("DoNotFallback"))) { userAuth.DoNotFallback = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DoNotFallback"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("GetGroups"))) { userAuth.GetGroups = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("GetGroups"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ShowBack"))) { userAuth.ShowBack = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ShowBack"))); } element = userAuth; break; case "Vars": Vars vars = new Vars(Globals.EventAggregator) { Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Direction"))) { vars.Direction = importNode.GetAttribute("Direction"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Filename"))) { vars.Filename = importNode.GetAttribute("Filename"); } element = vars; break; case "WMIRead": WMIRead wmiRead = new WMIRead(Globals.EventAggregator) { Class = importNode.GetAttribute("Class"), Default = importNode.GetAttribute("Default"), KeyQualifier = importNode.GetAttribute("KeyQualifier"), Property = importNode.GetAttribute("Property"), Query = importNode.GetAttribute("Query"), Variable = importNode.GetAttribute("Variable"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Namespace"))) { wmiRead.Namespace = importNode.GetAttribute("Namespace"); } element = wmiRead; break; case "WMIWrite": WMIWrite wmiWrite = new WMIWrite(Globals.EventAggregator) { Class = importNode.GetAttribute("Class"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Namespace"))) { wmiWrite.Namespace = importNode.GetAttribute("Namespace"); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, wmiWrite); if (ne is IChildElement) { wmiWrite.SubChildren.Add(ne as IChildElement); } } element = wmiWrite; break; } } else { switch (xmlNode.Name) { case "ActionGroup": ActionGroup actionGroup = new ActionGroup(Globals.EventAggregator) { Name = importNode.GetAttribute("Name"), Condition = importNode.GetAttribute("Condition") }; foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x); actionGroup.Children.Add(ne); } element = actionGroup; break; case "Case": Case caseClass = new Case(parent) { RegEx = importNode.GetAttribute("RegEx"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("CaseInsensitive"))) { caseClass.CaseInsensitive = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("CaseInsensitive"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("DontEval"))) { caseClass.DontEval = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DontEval"))); } element = caseClass; break; case "Check": Check check = new Check(parent as Preflight) { CheckCondition = importNode.GetAttribute("CheckCondition"), Description = importNode.GetAttribute("Description"), ErrorDescription = importNode.GetAttribute("ErrorDescription"), Text = importNode.GetAttribute("Text"), WarnCondition = importNode.GetAttribute("WarnCondition"), WarnDescription = importNode.GetAttribute("WarnDescription"), Condition = importNode.GetAttribute("Condition") }; element = check; break; case "Choice": Choice choice = new Choice(parent) { Option = importNode.GetAttribute("Option"), Value = importNode.GetAttribute("Value"), AlternateValue = importNode.GetAttribute("AlternateValue"), Condition = importNode.GetAttribute("Condition") }; element = choice; break; case "ChoiceList": ChoiceList choiceList = new ChoiceList(parent) { OptionList = importNode.GetAttribute("OptionList"), ValueList = importNode.GetAttribute("ValueList"), AlternateValueList = importNode.GetAttribute("AlternateValueList"), Condition = importNode.GetAttribute("Condition") }; element = choiceList; break; case "Field": Field field = new Field() { Name = importNode.GetAttribute("Name"), Hint = importNode.GetAttribute("Hint"), List = importNode.GetAttribute("List"), Prompt = importNode.GetAttribute("Prompt"), Question = importNode.GetAttribute("Question"), RegEx = importNode.GetAttribute("RegEx") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("ReadOnly"))) { field.ReadOnly = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ReadOnly"))); } element = field; break; case "InputCheckbox": case "CheckboxInput": InputCheckbox inputCheckbox = new InputCheckbox(parent as Input) { CheckedValue = importNode.GetAttribute("CheckedValue"), Default = importNode.GetAttribute("Default"), Question = importNode.GetAttribute("Question"), Variable = importNode.GetAttribute("Variable"), UncheckedValue = importNode.GetAttribute("UncheckedValue"), Condition = importNode.GetAttribute("Condition") }; element = inputCheckbox; break; case "InputChoice": case "ChoiceInput": InputChoice inputChoice = new InputChoice(parent as Input) { AlternateVariable = importNode.GetAttribute("AlternateValue"), Default = importNode.GetAttribute("Default"), Question = importNode.GetAttribute("Question"), Variable = importNode.GetAttribute("Variable"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("AutoComplete"))) { inputChoice.AutoComplete = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("AutoComplete"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Required"))) { inputChoice.Required = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Required"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Sort"))) { inputChoice.Sort = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Sort"))); } if (int.TryParse(importNode.GetAttribute("DropDownSize"), out int inputChoiceDropDownSize)) { inputChoice.DropDownSize = inputChoiceDropDownSize; } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, inputChoice); inputChoice.SubChildren.Add(ne as IChildElement); } element = inputChoice; break; case "InputInfo": case "InfoInput": InputInfo inputInfo = new InputInfo(parent as Input) { Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Color"))) { inputInfo.Color = importNode.GetAttribute("Color"); } if (int.TryParse(importNode.GetAttribute("DropDownSize"), out int inputInfoNumberOfLines)) { inputInfo.NumberOfLines = inputInfoNumberOfLines; } if (!string.IsNullOrEmpty(importNode.InnerXml)) { inputInfo.Content = CDATARemover(importNode.InnerXml); } element = inputInfo; break; case "InputText": case "TextInput": InputText inputText = new InputText(parent as Input) { Default = importNode.GetAttribute("Default"), Hint = importNode.GetAttribute("Hint"), Prompt = importNode.GetAttribute("Prompt"), Question = importNode.GetAttribute("Question"), RegEx = importNode.GetAttribute("RegEx"), Variable = importNode.GetAttribute("Variable"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("ADValidate"))) { inputText.ADValidate = importNode.GetAttribute("ADValidate"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ForceCase"))) { inputText.ForceCase = importNode.GetAttribute("ForceCase"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("HScroll"))) { inputText.HScroll = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("HScroll"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Password"))) { inputText.Password = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Password"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("ReadOnly"))) { inputText.ReadOnly = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("ReadOnly"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Required"))) { inputText.Required = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Required"))); } element = inputText; break; case "Match": Match match = new Match(parent as IParentElement) { DisplayName = importNode.GetAttribute("DisplayName"), Variable = importNode.GetAttribute("Variable"), Version = importNode.GetAttribute("Version"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("VersionOperator"))) { match.VersionOperator = importNode.GetAttribute("VersionOperator"); } element = match; break; case "Property": Property property = new Property(parent) { Name = importNode.GetAttribute("Name"), Value = importNode.GetAttribute("Value"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Type"))) { property.Type = importNode.GetAttribute("Type"); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Key"))) { property.Key = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Key"))); } element = property; break; case "Set": Set set = new Set(parent) { Name = importNode.GetAttribute("Name"), Condition = importNode.GetAttribute("Condition") }; foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, set); set.SubChildren.Add(ne as IChildElement); } element = set; break; case "SoftwareGroup": SoftwareGroup softwareGroup = new SoftwareGroup(parent) { Id = importNode.GetAttribute("Id"), Label = importNode.GetAttribute("Label"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Default"))) { softwareGroup.Default = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Default"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Required"))) { softwareGroup.Required = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Required"))); } foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, softwareGroup); softwareGroup.SubChildren.Add(ne as IChildElement); } element = softwareGroup; break; case "SoftwareListRef": SoftwareListRef softwareListRef = new SoftwareListRef(parent as IParentElement) { Id = importNode.GetAttribute("Id"), Condition = importNode.GetAttribute("Condition") }; element = softwareListRef; break; case "SoftwareRef": SoftwareRef softwareRef = new SoftwareRef(parent) { Id = importNode.GetAttribute("Id"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("Hidden"))) { softwareRef.Hidden = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Hidden"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Default"))) { softwareRef.Default = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Default"))); } if (!string.IsNullOrEmpty(importNode.GetAttribute("Required"))) { softwareRef.Required = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("Required"))); } element = softwareRef; break; case "SoftwareSets": AppTree at = parent as AppTree; ObservableCollection <IChildElement> e = new ObservableCollection <IChildElement>(); foreach (XmlNode x in importNode.ChildNodes) { ne = NewAction(x, at); e.Add(ne as IChildElement); } at.SubChildren = e; element = null; break; case "Text": Text text = new Text(parent as IParentElement) { Type = importNode.GetAttribute("Type"), Value = importNode.GetAttribute("Value"), Condition = importNode.GetAttribute("Condition") }; element = text; break; case "Variable": Variable variable = new Variable(parent) { Name = importNode.GetAttribute("Name"), Condition = importNode.GetAttribute("Condition") }; if (!string.IsNullOrEmpty(importNode.GetAttribute("DontEval"))) { variable.DontEval = Convert.ToBoolean(StringToBoolString(importNode.GetAttribute("DontEval"))); } if (!string.IsNullOrEmpty(importNode.InnerXml)) { variable.Content = CDATARemover(importNode.InnerXml); } element = variable; break; } } return(element); }
/// <summary> /// 提供一個訊息回報的機制或者用以記錄一些資訊,取得特定的必要資料,讓未來取得更為方便的除錯工具。 /// </summary> /// <param name="eType">這個回報訊息的類型。</param> /// <param name="clsFunction">請鍵入 MethodInfo.GetCurrentMethod()。</param> /// <param name="strMessage">要記錄的主要訊息。</param> /// <param name="eSaveItems">儲存寫檔的時機點。</param> /// <example> /// <code> /// private void Example() /// { /// try /// { /// // ============ /// // 你要得動作 /// // ============ /// /// // 可以當成一般訊息紀錄使用 (很重要才紀錄) /// XStatus.Report(XStatus.Type.Infomation, MethodInfo.GetCurrentMethod(),"想要紀錄的資訊"); /// } /// catch(Exception ex) /// { /// XStatus.Report(XStatus.Type.Windows, MethodInfo.GetCurrentMethod(), XStatus.GetExceptionLine(ex)); /// } /// } /// </code> /// </example> public static void Report(Type eType, MethodBase clsFunction, string strMessage, ErrorLevel eErrorLevel = ErrorLevel.Alarm, SaveItems eSaveItems = SaveItems.Default) { string strClassName = (clsFunction != null) ? "{" + clsFunction.ReflectedType.Name + "}" : "{Unknow}"; string functionName = (clsFunction != null) ? strClassName + "[" + clsFunction.Name + "]" : "Unknow[Unknow]"; string strAllMessage = DateTime.Now.ToString(TIME_FORMAT) + ", " + eType.ToString() + ", " + functionName + " - " + strMessage; if (LogRecorder != null && SendLogRecorder) { LogRecorder.WriteLog(eErrorLevel.ToString() + "|" + strAllMessage); } else { if (g_strLogFolderPath.Length > 3) { string strFilePath = ""; switch (g_eRecordType) { case RecordInterval.None: strFilePath = g_strLogFolderPath; break; case RecordInterval.Hours: strFilePath = g_strLogFolderPath + "Log_" + DateTime.Now.ToString("yyyyMMddHH") + ".log"; break; case RecordInterval.Days: strFilePath = g_strLogFolderPath + "Log_" + DateTime.Now.ToString("yyyyMMdd") + ".log"; break; } lock (g_oLockReserveMessage) { try { if (eType != Type.Null) { // 在下面這段程式碼不直接呼叫其他功能函數,以免造成無窮回圈。 // 因為只有單行,所以在此允許插隊讓硬碟做此工作。 g_strReserveMessages.Add(strAllMessage); } lock (XFile.DiskLock) { switch (eSaveItems) { case SaveItems.Default: case SaveItems.NoImmediate: if (g_strReserveMessages.Count >= g_iReserveMessageThreshold) { File.AppendAllLines(strFilePath, g_strReserveMessages); g_strReserveMessages.Clear(); } break; case SaveItems.Immediate: File.AppendAllLines(strFilePath, g_strReserveMessages); g_strReserveMessages.Clear(); break; } } } catch { } } } } lock (g_oLockReport) { try { LogMessage.Insert(0, strAllMessage); while (LogMessage.Count > 500) { LogMessage.RemoveAt(500); } } catch { } } // Events Process (Callback function) //------------------------------------------------------------------- try { // 此順序由 Frank on 2014.10.9 排出,以危險性高低來做排序。 switch (eType) { case Type.Motion: if (Status_MotionReport != null) { Status_MotionReport(strAllMessage); } break; case Type.Robot: if (Status_RobotReport != null) { Status_RobotReport(strAllMessage); } break; case Type.Device: if (Status_DeviceReport != null) { Status_DeviceReport(strAllMessage); } break; case Type.IO: if (Status_IOReport != null) { Status_IOReport(strAllMessage); } break; case Type.Communication: if (Status_CommunicationReport != null) { Status_CommunicationReport(strAllMessage); } break; case Type.Vision: if (Status_VisionReport != null) { Status_VisionReport(strAllMessage); } break; case Type.Procedure: if (Status_ProcedureReport != null) { Status_ProcedureReport(strAllMessage); } break; case Type.Windows: if (Status_WindowsReport != null) { Status_WindowsReport(strAllMessage); } break; case Type.Events: if (Status_EventsReport != null) { Status_EventsReport(strAllMessage); } break; default: if (Status_AlarmReport != null) { Status_AlarmReport(strAllMessage); } break; } if (Status_Changed != null) { Status_Changed(strAllMessage); } } catch { strAllMessage = DateTime.Now.ToString() + ", Events, {XStatus}[Report] - Callback function error."; g_strReserveMessages.Add(strAllMessage); // 放到暫存區等待存檔。 LogMessage.Insert(0, strAllMessage); // 插入歷史紀錄的暫存區域。 } }
public SaveItemsViewModel(SaveItems si) { ModelClass = si; EventAggregator = si.EventAggregator; }
/// <summary> /// Saves a specific game data. /// </summary> public static void SaveData(SaveItems keyName, int keyValue) { PlayerPrefs.SetInt(keyName.ToString(), keyValue); PlayerPrefs.Save(); }
public static int selectedCharacterIndex = 0; //!< Index of the character to spawn. /// <summary> /// Gets the saved amount of a specific attribute. /// </summary> public static int GetSavedAttribute(SaveItems itemName) { return(PlayerPrefs.GetInt(itemName.ToString())); }