public bool DbHasUpdates() { bool _bReturn = false; VoterFileDataContext _voterDB = new VoterFileDataContext(string.Format(VoterFileDataContext.DBConnectionString, _settings.DbFileName)); if (_voterDB.DatabaseExists()) { try { IEnumerable <VoterFileEntry> voters = from voter in _voterDB.AllVoters where voter.ModifiedTime > _settings.GetSetting <DateTime>("lastsync") select voter; if (voters.Count() > 0) { _bReturn = true; } } catch (Exception ex) { Log(" Error reporting changes: " + ex.ToString()); } } _voterDB.Dispose(); return(_bReturn); }
public string GetUpdateString(DateTime updateTime) { string stUpdates = ""; VoterFileDataContext _voterDB = new VoterFileDataContext(string.Format(VoterFileDataContext.DBConnectionString, _settings.DbFileName)); if (_voterDB.DatabaseExists()) { try { IEnumerable <VoterFileEntry> voters = from voter in _voterDB.AllVoters where (voter.ModifiedTime > _settings.GetSetting <DateTime>("lastsync") && voter.ModifiedTime <= updateTime && voter.IsUpdated) select voter; App.Log(" GetUpdateString Query completed."); StringWriter _updateString = new StringWriter(); if (App.thisApp._settings.GetSetting <string>("dataformat") == "csv") { StringBuilder csv = new StringBuilder(); csv.Clear(); if (App.thisApp._settings.GetSetting <bool>("_trhack")) { csv.AppendLine("redid,party,resultofcontact,email,cellphone,issupporter,comments,modifiedtime"); } else { csv.AppendLine("recid,party,resultofcontact,email,cellphone,issupporter,comments,modifiedtime"); } _updateString.Write(csv.ToString()); csv.Clear(); foreach (VoterFileEntry voter in voters) { // TODO: Add WriteUpdateToCsv() method to VoterFileEntry object csv.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7}{8}", voter.VoterID, voter.Party, voter.ResultOfContact, voter.Email, voter.CellPhone, voter.IsSupporter, voter.Comments, voter.ModifiedTime, System.Environment.NewLine); _updateString.Write(csv.ToString()); csv.Clear(); } _updateString.Flush(); stUpdates = _updateString.ToString(); _updateString.Close(); csv.Clear(); } Log(" Completed: Updates = " + stUpdates); } catch (Exception ex) { Log(" Error reporting changes: " + ex.ToString()); stUpdates = ""; } } _voterDB.Dispose(); return(stUpdates); }
public void FillVoterList(List <PushpinModel> fillWith) { if (fillWith == null || fillWith.Count < 1) { VoterFileDataContext _voterDB = new VoterFileDataContext(string.Format(VoterFileDataContext.DBConnectionString, App.thisApp._settings.DbFileName)); if (!(App.thisApp._settings.DbStatus == DbState.Loaded) || !_voterDB.DatabaseExists()) { App.Log("Database not ready to load voters yet."); return; } App.VotersViewModel.StreetList.Clear(); App.VotersViewModel.VoterList.Clear(); IEnumerable <VoterFileEntry> data = from VoterFileEntry voter in _voterDB.AllVoters select voter; foreach (VoterFileEntry _v in data) { PushpinModel p = new PushpinModel(_v); if ((p.Street != null) && (!App.VotersViewModel.StreetList.Contains(p.Street))) { App.VotersViewModel.StreetList.Add(p.Street); } App.VotersViewModel.VoterList.Add(p); } _voterDB.Dispose(); } else { App.VotersViewModel.StreetList.Clear(); App.VotersViewModel.VoterList.Clear(); foreach (PushpinModel p in fillWith) { if ((p.Street != null) && (!App.VotersViewModel.StreetList.Contains(p.Street))) { App.VotersViewModel.StreetList.Add(p.Street); } App.VotersViewModel.VoterList.Add(p); } } if (App.VotersViewModel.VoterList.Count <= 0) { App.Log("There are no voters in database!"); return; } else { System.Diagnostics.Debug.WriteLine("Found {0} voters in database.", App.VotersViewModel.VoterList.Count); } }
private void SaveVoterChanges() { // If either the email or cell textbox controls had focus when save button was tapped those changes were // not updated ot the view model (because focus was not lost), so we will do that now. if (txtEmail.Text != ((VoterFileEntry)DataContext).Email) { BindingExpression expression = txtEmail.GetBindingExpression(TextBox.TextProperty); expression.UpdateSource(); } if (txtCell.Text != ((VoterFileEntry)DataContext).CellPhone) { BindingExpression expression = txtCell.GetBindingExpression(TextBox.TextProperty); expression.UpdateSource(); } if (txtComments.Text != ((VoterFileEntry)DataContext).Comments) { BindingExpression expression = txtComments.GetBindingExpression(TextBox.TextProperty); expression.UpdateSource(); } if (_voterDB.DatabaseExists()) { ((VoterFileEntry)DataContext).ModifiedTime = System.DateTime.Now; ((VoterFileEntry)DataContext).IsUpdated = true; _voterDB.SubmitChanges(); App.Log("Submitted changes to database"); } else { App.Log("ERROR: we don't have a database!"); } _voterDB.Dispose(); // PostUpdate() will attempt to post this update (and any outstanding updates) if there is network access. // If the update fails, then the next change will trigger another call to PostUpdate(), which will attempt // to post that update and this one. App.thisApp.PostUpdate(); }
public bool UpdateVoter() { bool success = false; VoterFileDataContext _voterDB = new VoterFileDataContext(string.Format(VoterFileDataContext.DBConnectionString, _settings.DbFileName)); if (_voterDB.DatabaseExists()) { try { IQueryable <VoterFileEntry> voterQuery = from voter in _voterDB.AllVoters where voter.VoterID == _selectedVoter.VoterID select voter; VoterFileEntry voterToUpdate = voterQuery.FirstOrDefault(); if (voterToUpdate.VoterID == _selectedVoter.VoterID) { voterToUpdate.Party = _selectedVoter.VoterFile.Party; voterToUpdate.ResultOfContact = _selectedVoter.ResultOfContact; voterToUpdate.Email = _selectedVoter.Email; voterToUpdate.CellPhone = _selectedVoter.CellPhone; voterToUpdate.IsSupporter = _selectedVoter.IsSupporter; voterToUpdate.IsVolunteer = _selectedVoter.IsVolunteer; voterToUpdate.IsUpdated = _selectedVoter.VoterFile.IsUpdated; voterToUpdate.Comments = _selectedVoter.Comments; voterToUpdate.ModifiedTime = DateTime.Now; _selectedVoter.VoterFile.ModifiedTime = voterToUpdate.ModifiedTime; _voterDB.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict); success = true; NotifyPropertyChanged("HasUpdates"); } else { Log(String.Format(" ERROR: Voter returned from query (id={0}) did not match selected voter (id={1}).", voterToUpdate.VoterID, _selectedVoter.VoterID)); } } catch (Exception ex) { Log(" Error updating voter record: " + _selectedVoter.FullName + " : " + ex.ToString()); } } _voterDB.Dispose(); return(success); }