private void btnRemoveGrades_Click(object sender, RoutedEventArgs e) { if (GlobalDefines.IsRoundFinished(DBManagerApp.m_Entities.groups.First(arg => arg.id_group == m_GroupId).round_finished_flags, enRounds.Final)) { // Можно расставить разряды, т.к. соревы закончились List <participations> Members = (from member in DBManagerApp.m_Entities.members join part in DBManagerApp.m_Entities.participations on member.id_member equals part.member where part.Group == m_GroupId orderby part.result_place select part).ToList(); foreach (participations part in Members) { part.result_grade = null; } DBManagerApp.m_Entities.SaveChanges(); MessageBox.Show(this, Properties.Resources.resGradesRemoved, Title, MessageBoxButton.OK, MessageBoxImage.Information); GradesChangedFromOpen = true; } else { MessageBox.Show(this, Properties.Resources.resCantSetGrades, Title, MessageBoxButton.OK, MessageBoxImage.Error); } }
public CResult() { RemoveFalsestart = new CCommand(RemoveFalsestart_Executed, () => { return(AdditionalEventTypes.HasValue && AdditionalEventTypes.Value.HasFlag(enAdditionalEventTypes.Falsestart) && ResultInDB?.participations?.groups != null && !GlobalDefines.IsRoundFinished(ResultInDB.participations.groups.round_finished_flags, (enRounds)ResultInDB.round)); } ); }
private void btnSetGrades_Click(object sender, RoutedEventArgs e) { btnCalcPlaces_Click(sender, e); if (GlobalDefines.IsRoundFinished(DBManagerApp.m_Entities.groups.First(arg => arg.id_group == m_GroupId).round_finished_flags, enRounds.Final)) { // Можно расставить разряды, т.к. соревы закончились List <participations> Members = (from member in DBManagerApp.m_Entities.members join part in DBManagerApp.m_Entities.participations on member.id_member equals part.member where part.Group == m_GroupId orderby part.result_place select part).ToList(); if (chkOnly75PercentForCalcGrades.IsChecked.Value) { Members = new List <participations>(Members.Take((int)Math.Floor(Members.Count * 0.75))); } byte PlaceInYear = 1; foreach (participations part in Members) { part.result_grade = null; if (part.result_place.HasValue && part.members.year_of_birth.HasValue && SelectedYears.Contains(part.members.year_of_birth.Value)) { // Участник подходит по возрасту for (int i = 0; i < m_MinPlaceForNewGrade.Count; i++) { if (PlaceInYear <= m_MinPlaceForNewGrade[i].Value) { part.result_grade = (byte)m_MinPlaceForNewGrade[i].Key; break; } } PlaceInYear++; } } DBManagerApp.m_Entities.SaveChanges(); GradesChangedFromOpen = true; } else { MessageBox.Show(this, Properties.Resources.resCantSetGrades, Title, MessageBoxButton.OK, MessageBoxImage.Error); } }