private void btnSave_Click(object sender, RoutedEventArgs e) { var isNew = _athlete.Id == 0; if (isNew) { _athleteRepository.Add(_athlete); } else { _athleteRepository.Edit(_athlete, _athlete.Id); } _athleteRepository.Save(); if (isNew) { _athleteManager.Athletes.Add(_athlete); } else { var index = _athleteManager.Athletes.IndexOf(_athlete);//get its location in list _athleteManager.Athletes[index] = _athlete; } this.Close(); }
private void dgAthletes_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) { if (e.EditAction == DataGridEditAction.Commit) { // Athlete athlete = (Athlete)dgAthletes.SelectedItem; Athlete athlete = e.Row.DataContext as Athlete; if (athlete.Id > 0) { _athleteRepository.Edit(athlete, athlete.Id); } else { _athleteRepository.Add(athlete); } _athleteRepository.Save(); } }
private void AssignTag(Split split) { Athlete nextAthlete; //_athleteRepository.GetAll(); if (Athletes.Any()) { if (Athletes.Any(x => x.TagId == split.Epc && x.Bib > 0)) { var athelete = Athletes.FirstOrDefault(x => x.TagId == split.Epc); Message = $"Tag {split.Epc} already assigned to {athelete.Bib} {athelete.FirstName} {athelete.LastName}"; return; } if (AutoAssign) { int maxBib = _athleteRepository.GetMaxBib(); NextBib = ++maxBib; } nextAthlete = Athletes.SingleOrDefault(x => x.Bib == NextBib && string.IsNullOrEmpty(x.TagId)); if (nextAthlete != null) { nextAthlete.TagId = split.Epc; _athleteRepository.Edit(nextAthlete, nextAthlete.Id); _athleteRepository.Save(); } else { nextAthlete = Athletes.FirstOrDefault(x => x.Bib == 0); if (nextAthlete != null) { nextAthlete.Bib = NextBib; nextAthlete.TagId = split.Epc; _athleteRepository.Edit(nextAthlete, nextAthlete.Id); _athleteRepository.Save(); Message = $"Tag {split.Epc} assigned to { nextAthlete.Bib}"; } else if (Athletes.Any(x => x.Bib == NextBib) == false) { nextAthlete = new Athlete { Bib = NextBib, TagId = split.Epc }; _athleteRepository.Add(nextAthlete); _athleteRepository.Save(); Application.Current.Dispatcher.Invoke((Action)(() => { Athletes.Insert(0, nextAthlete); })); Message = $"Tag {split.Epc} assigned to { nextAthlete.Bib}"; } return; } } else { if (Athletes.Any(x => x.Bib == NextBib)) { var athelete = Athletes.FirstOrDefault(x => x.Bib == NextBib); Message = $"Tag {split.Epc} already assigned to {athelete.Bib} {athelete.FirstName} {athelete.LastName}"; return; } nextAthlete = new Athlete { Bib = NextBib, TagId = split.Epc }; Application.Current.Dispatcher.Invoke((Action)(() => { Athletes.Insert(0, nextAthlete); })); _athleteRepository.Add(nextAthlete); _athleteRepository.Save(); Message = $"Tag {split.Epc} assigned to {nextAthlete.Bib} with no athlete name"; } if (AutoAssign) { NextBib++; } }