public void saveUserDetails(User user) { XmlWriterSettings x_W_Settings = new XmlWriterSettings(); x_W_Settings.Indent = true; using (IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication()) { if (!ISF.FileExists("userDetails.xml")) { using (IsolatedStorageFileStream stream = ISF.OpenFile("userDetails.xml", FileMode.CreateNew)) { XmlSerializer serializer = new XmlSerializer(typeof(User)); using (XmlWriter xmlWriter = XmlWriter.Create(stream, x_W_Settings)) { serializer.Serialize(xmlWriter, user); } stream.Close(); } } else { XDocument loadedData; if (user != null) { User usr = user; using (Stream stream = ISF.OpenFile("userDetails.xml", FileMode.Open, FileAccess.ReadWrite)) { loadedData = XDocument.Load(stream); loadedData.Descendants("User").Single().SetElementValue("userName", usr.userName); loadedData.Descendants("User").Single().SetElementValue("Latitude", usr.location.Latitude); loadedData.Descendants("User").Single().SetElementValue("Longitude", usr.location.Longitude); loadedData.Descendants("User").Single().SetElementValue("LastUpdatedOn", usr.LastSubmittedDateTime); stream.Close(); } // Save To ISOconfig.xml File using (IsolatedStorageFileStream newStream = new IsolatedStorageFileStream("userDetails.xml", FileMode.Create, ISF)) { loadedData.Save(newStream); newStream.Close(); } } } } }
/// <summary> /// Function to fetch userSavedData from the IsolatedStorageSettings /// </summary> /// <returns></returns> public User GetUserSavedData() { if(userSettings.Count > 0) { if(userSettings.Contains("NewUser")) { newUser = (User)userSettings["NewUser"]; return newUser; } } return null; }
public User readUserDetails() { User newUser = null; using (IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication()) { if (ISF.FileExists("userDetails.xml")) { newUser = new User(); using (IsolatedStorageFileStream str = ISF.OpenFile("userDetails.xml", FileMode.Open)) { XmlSerializer serializer = new XmlSerializer(typeof(User)); newUser = (User)serializer.Deserialize(str); str.Close(); } } } return newUser; }
/// <summary> /// Function to save userData to the IsolatedStorageSettings /// </summary> /// <param name="saveNewUser"></param> public void saveUserData(User saveNewUser) { newUser = saveNewUser; if (userSettings.Contains("NewUser")) { userSettings["NewUser"] = saveNewUser; } else { userSettings.Add("NewUser", saveNewUser); } }
/// <summary> /// Save User info present on screen /// </summary> private void saveUserInfo() { User newUser = new User(); newUser.userName = LocationUserName.Text; newUser.location.Longitude = Long.Text; newUser.location.Latitude = Lat.Text; newUser.lastUpdatedOn = lastSubmitted_txt_blk.Text; newUser.LastSubmittedDateTime = lastSubmittedDateTime; viewModel.saveUserData(newUser); }
/// <summary> /// Event when page is Navigated To from App.xaml page /// </summary> /// <param name="e"></param> protected override void OnNavigatedTo(NavigationEventArgs e) { // if (alreadyInStack) // { newUser = viewModel.GetUserSavedData(); DateTime defaultDT = new DateTime(); if (newUser != null) { //this implies it is not the first time of app //Hence read the saved data and display on Screen isFirstTime = false; Lat.Text = newUser.location.Latitude; Long.Text = newUser.location.Longitude; fetchLocation(isFirstTime); //Calc relative time from last Submitted date and time, that was saved in the IsolatedStorage file DateTime backgroundSubmissionDT = new DateTime(); backgroundSubmissionDT = viewModel.getLastSubmittedTimeInBackground(); if (backgroundSubmissionDT.Equals(defaultDT)) { lastSubmittedDateTime = newUser.LastSubmittedDateTime; } else { lastSubmittedDateTime = backgroundSubmissionDT; } getRelativeLastSubmittedTime(lastSubmittedDateTime); LocationUserName.Text = newUser.userName; } else { Lat.Text = Constants.DEFAULT_COORDINATE; Long.Text = Constants.DEFAULT_COORDINATE; fetchLocation(isFirstTime); } // } // alreadyInStack = false; }