public static void SaveInputsFileAsync(string filename, DebtApp debtApp, Action callBack = null) { if (String.IsNullOrEmpty(InputsFileDatabase.Shared.CurrentInputsFile)) { SaveNewInputsFile(debtApp, callBack); } else { InputsFileDatabase.Shared.SaveInputsFile( InputsFileDatabase.Shared.CurrentInputsFile, debtApp); if (callBack != null) callBack(); } }
async public static void SaveNewInputsFile(DebtApp debtApp, Action callBack) { var result = await UserDialogs.Instance.PromptAsync(new PromptConfig { Title = "Scenario Name", Text = "Sample Name", IsCancellable = true }); if (result.Ok == true) { InputsFileDatabase.Shared.SaveInputsFile(Path.Combine(Paths.SavedFilesDirectory, result.Text), debtApp); if (callBack != null) callBack(); } }
public static void SaveUserDefaults(DebtApp debtApp) { InputsFileDatabase.Shared.SaveUserDefaults(debtApp); }
public static void LoadOnAppLaunch(DebtApp debtApp) { InputsFileDatabase.Shared.LoadOnAppLaunch(debtApp); }
public static void LoadInputsFile(string filePath, DebtApp debtApp, Action callBack) { InputsFileDatabase.Shared.LoadInputsFile(filePath, debtApp); callBack(); }
/// <summary> /// Function to load inputs for the aircraft from a save file. /// </summary> /// <param name="bFromInit">If we are getting inputs from application open</param> /// <param name="bUpdateAIUserDefault"></param> public bool LoadInputsFile(string openFilePath, DebtApp debtApp) { debtApp.DebtManager.Debts.Clear(); debtApp.PaymentManager.WindfallEntries.Clear(); debtApp.PaymentManager.SalaryEntries.Clear(); debtApp.PaymentManager.SnowballEntries.Clear (); _currentInputsFile = openFilePath; foreach (var item in File.ReadAllLines(openFilePath)) { Console.WriteLine(item); } try { using (XmlReader readInputs = XmlReader.Create(openFilePath)) { while (readInputs.Read()) { //only detect start elements. if (readInputs.IsStartElement()) { //Get element name and switch on it switch (readInputs.Name) { case "FileInfo": DateTime temp = DateTime.Now; DateTime.TryParse(readInputs["Date"], out temp); debtApp.ModifiedDate = temp; break; case "Debts": //Detect this element. Console.WriteLine("Start <Debts> element."); break; case "Payments": //Detect this element. Console.WriteLine("Start <Payments> element."); break; case "DebtEntry": { Console.WriteLine("Start <DebtEntry> element."); debtApp.DebtManager.Debts.Add( new DebtEntry( (string)readInputs["Name"], Double.Parse(readInputs["StartingBalance"]), Double.Parse(readInputs["CurrentBalance"]), Double.Parse(readInputs["YearlyInterestRate"]), Int32.Parse(readInputs["LoanTerm"]), (DebtType)Enum.Parse(typeof(DebtType), readInputs["DebtType"]))); break; } case "SnowballEntry": { //Detect this element. Console.WriteLine ("Start <SnowballEntry> element."); debtApp.PaymentManager.SnowballEntries.Add ( new SnowballEntry ( (string)readInputs ["Name"], Double.Parse (readInputs ["Amount"]))); break; } case "SalaryEntry": { Console.WriteLine("Start <SalaryEntry> element."); debtApp.PaymentManager.SalaryEntries.Add( new SalaryEntry( (string)readInputs["Name"], Double.Parse(readInputs["StartingSalary"]), Double.Parse(readInputs["YearlySnowballIncreasePercent"]), DateTime.Parse(readInputs["YearlyIncreaseAppliedDate"]))); break; } case "WindfallEntry": { Console.WriteLine("Start <SalaryEntry> element."); debtApp.PaymentManager.WindfallEntries.Add( new WindfallEntry( (string)readInputs["Name"], Double.Parse(readInputs["WindfallAmount"]), DateTime.Parse(readInputs["WindfallDate"]), Boolean.Parse(readInputs["IsRecurring"]), Int32.Parse(readInputs["RecurringFrequency"]))); break; } } } } readInputs.Close(); } } catch (Exception ex) { return false; } return true; }
private void SaveInputsFileWorker(string filename, DebtApp data) { if (!Directory.Exists(Paths.SavedFilesDirectory)) Directory.CreateDirectory(Paths.SavedFilesDirectory); if (!Directory.Exists (Paths.DefaultsDirectory)) Directory.CreateDirectory (Paths.DefaultsDirectory); bool fileAdded = false; if (File.Exists(filename) == false) { fileAdded = true; } XmlWriterSettings setting = new XmlWriterSettings(); setting.Indent = true; using (XmlWriter input = XmlWriter.Create(filename, setting)) { input.WriteStartDocument(); input.WriteStartElement("Root"); //Create a section for file info- date, time, version# input.WriteStartElement("FileInfo"); input.WriteAttributeString("ProgramName", "Debt Calculator"); input.WriteAttributeString("ProgramVersion", "0.0.0.3"); input.WriteAttributeString("PathFileName", filename); input.WriteAttributeString("Date", DateTime.Now.ToString("MM.dd.yyyy")); input.WriteAttributeString("Time", DateTime.Now.ToString("HH:mm")); input.WriteAttributeString("VersionMajor", FileVersionMajor); input.WriteAttributeString("VersionMinor", FileVersionMinor); input.WriteEndElement(); // FileInfo input.WriteStartElement("Debts"); //Iterate through Inputs to save their current values foreach (DebtEntry entry in data.DebtManager.Debts) { input.WriteStartElement("DebtEntry"); input.WriteAttributeString("Name", entry.Name); input.WriteAttributeString("StartingBalance", entry.StartingBalance.ToString()); input.WriteAttributeString("CurrentBalance", entry.CurrentBalance.ToString()); input.WriteAttributeString("YearlyInterestRate", entry.YearlyInterestRate.ToString()); input.WriteAttributeString("LoanTerm", entry.LoanTerm.ToString()); input.WriteAttributeString("DebtType", entry.DebtType.ToString()); input.WriteEndElement(); // DebtEntry } input.WriteEndElement(); // Debts input.WriteStartElement("Payments"); foreach (SalaryEntry entry in data.PaymentManager.SalaryEntries) { input.WriteStartElement("SalaryEntry"); input.WriteAttributeString("Name", entry.Name); input.WriteAttributeString("StartingSalary", entry.StartingSalary.ToString()); input.WriteAttributeString("YearlyIncreaseAppliedDate", entry.YearlyIncreaseAppliedDate.ToString()); input.WriteAttributeString("YearlySnowballIncreasePercent", entry.YearlySnowballIncreasePercent.ToString()); input.WriteEndElement(); // SalaryEntry } foreach (WindfallEntry entry in data.PaymentManager.WindfallEntries) { input.WriteStartElement("WindfallEntry"); input.WriteAttributeString("Name", entry.Name); input.WriteAttributeString("WindfallAmount", entry.Amount.ToString()); input.WriteAttributeString("IsRecurring", entry.IsRecurring.ToString()); input.WriteAttributeString("RecurringFrequency", entry.RecurringFrequency.ToString()); input.WriteAttributeString("WindfallDate", entry.WindfallDate.ToString()); input.WriteEndElement(); // WindfallEntry } foreach (SnowballEntry entry in data.PaymentManager.SnowballEntries) { input.WriteStartElement ("SnowballEntry"); input.WriteAttributeString ("Name", entry.Name); input.WriteAttributeString ("Amount", entry.Amount.ToString ()); input.WriteEndElement (); // WindfallEntry } input.WriteEndElement(); // Payments input.WriteEndElement(); // Root input.WriteEndDocument(); input.Flush(); input.Close(); } if (fileAdded) OnFileListChanged(); }
public void SaveUserDefaults(DebtApp data) { SaveInputsFileWorker(_previousInputsFile, data); }
public void SaveInputsFile(string filename, DebtApp data) { SaveInputsFileWorker(filename, data); _currentInputsFile = filename; }
public void LoadOnAppLaunch(DebtApp data) { if (File.Exists(_previousInputsFile)) { LoadInputsFile(_previousInputsFile, data); } _currentInputsFile = string.Empty; }