public void CmdUpdatePoint() { if (SelectedPoint != -1) { int?score = 0; if (ValgtAktivitet.HoldSport == 0) { score = HoldList.Where(i => i.Id == SelectedHold).FirstOrDefault().HoldAktiviteter.Where(i => i.HoldId == SelectedHold).FirstOrDefault().HoldScores.Where(i => i.Id == SelectedPoint).FirstOrDefault().HoldScore; } else { score = DeltagerList.Where(i => i.Id == SelectedDeltager).FirstOrDefault().ScoreList.Where(i => i.Id == SelectedPoint).FirstOrDefault().Score; } if (ValgtGuiElemement == "CmdUpdatePoint+") { score++; } else if (ValgtGuiElemement == "CmdUpdatePoint-") { score--; } if (score != null) { int tempscore = (int)score; if (ValgtAktivitet.HoldSport == 0) { //HoldSport Add HOLD score if (SelectedPoint != -1) { DBAdapter.updateHoldScore(SelectedPoint, tempscore); HoldList = DBAdapter.getHold(SelectedEvent, SelectedOrder, SelectedEventAktivitet); HoldList = DBAdapter.getHoldAktivitet(HoldList, SelectedEvent, SelectedOrder, SelectedEventAktivitet); HoldList = DBAdapter.getHoldAktivitetScores(HoldList, SelectedEvent, SelectedOrder, SelectedEventAktivitet); } } else if (ValgtAktivitet.HoldSport == 1) { if (SelectedPoint != -1) { DBAdapter.updateDeltagerScore(SelectedPoint, tempscore); DeltagerList = DBAdapter.getDeltagere(SelectedEvent, SelectedEventAktivitet, SelectedHold); } //HoldSport Add DELTAGER score } } } }
//giver point til hver aktivitet efter deres stilling private void udregnPoint() { if (Vis > 0) { for (int _vis = 0; _vis < Vis; _vis++) { List <Hold> HoldVindere = new List <Hold>(); List <Hold> HoldTabere = new List <Hold>(); List <Hold> HoldStodLige = new List <Hold>(); List <Hold> HoldResterende = new List <Hold>(); foreach (Hold _hold in HoldList) { EventAktivitetHold _eventAktivitetHold = _hold.HoldAktiviteter.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).FirstOrDefault(); if (_eventAktivitetHold != null) { Aktivitet _aktivitet = AktivitetList.Where(i => i.Id == EventAktivitetList.Where(i => i.Id == _eventAktivitetHold.EventAktivitetId).FirstOrDefault().AktivitetId).FirstOrDefault(); int? totalScore = 0; int? antalScores = 0; int? modstanderTotalScore = 0; int? modstanderAntalScores = 0; int antalForan = 0; int antalLige = 0; List <Hold> tempHoldList = new List <Hold>(); if (_aktivitet.HoldSport == 0) { if (_eventAktivitetHold.HoldScores.Count != 0) { foreach (var _score in _eventAktivitetHold.HoldScores) { totalScore += _score.HoldScore; antalScores++; } } } else if (_aktivitet.HoldSport == 1) { foreach (var _deltager in DeltagerList.Where(d => d.HoldId == _hold.Id).ToList()) { foreach (var _score in _deltager.ScoreList.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).ToList()) { if (_score.Score != null && _score.EventAktivitetId == _eventAktivitetHold.EventAktivitetId) { totalScore += _score.Score; antalScores++; } } } } if (antalScores != 0 && _aktivitet.HoldSport == 1) { totalScore /= antalScores; } if (_aktivitet.HoldSport == 0) { tempHoldList = HoldList.Where(i => i.HoldAktiviteter.Where(i => i.HoldOrder == _eventAktivitetHold.HoldOrder && i.EventAktivitetId == _eventAktivitetHold.EventAktivitetId).ToList().Count != 0).ToList(); } for (int i = 0; i < HoldList.Count; i++) { if (HoldList[i] != _hold) { if (tempHoldList == null || tempHoldList.Count == 0 || tempHoldList != null && tempHoldList.Count != 0 && tempHoldList.Contains(HoldList[i])) { modstanderTotalScore = 0; modstanderAntalScores = 0; EventAktivitetHold _modstanderEventAktivitetHold = HoldList[i].HoldAktiviteter.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).FirstOrDefault(); if (_modstanderEventAktivitetHold != null) { if (_aktivitet.HoldSport == 0) { if (_modstanderEventAktivitetHold.HoldScores.Count != 0) { foreach (var _score in _modstanderEventAktivitetHold.HoldScores) { modstanderTotalScore += _score.HoldScore; modstanderAntalScores++; } } if (tempHoldList != null && tempHoldList.Count != 0 && totalScore == modstanderTotalScore) { antalLige++; } } else if (_aktivitet.HoldSport == 1) { foreach (var _deltager in DeltagerList.Where(d => d.HoldId == HoldList[i].Id).ToList()) { foreach (var _score in _deltager.ScoreList.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).ToList()) { if (_score.Score != null) { modstanderTotalScore += _score.Score; modstanderAntalScores++; } } } } if (modstanderAntalScores != 0 && _aktivitet.HoldSport == 1) { modstanderTotalScore /= modstanderAntalScores; } if (totalScore > modstanderTotalScore && _aktivitet.PointType != 1 && _aktivitet.PointType != 3 || totalScore < modstanderTotalScore && _aktivitet.PointType != 0 && _aktivitet.PointType != 2) { antalForan++; } } } } } if (_aktivitet.HoldSport == 0 && tempHoldList != null && tempHoldList.Count != 0) { if (antalLige == tempHoldList.Count - 1) { HoldStodLige.Add(_hold); } else if (antalForan == 0) { HoldVindere.Add(_hold); } else { HoldTabere.Add(_hold); } } else { _eventAktivitetHold.Point = 10 * (HoldList.Count() - antalForan); } } else { HoldResterende.Add(_hold); } } //hvis det er hold mod hold og point gives til vinderen af de individuelle hold mod hold. if (HoldVindere.Count != 0 && HoldTabere.Count != 0 || HoldStodLige.Count != 0) { List <List <Hold> > listerAfHold = new List <List <Hold> >(); if (HoldVindere.Count != 0 && HoldTabere.Count != 0) { listerAfHold.Add(HoldVindere); listerAfHold.Add(HoldTabere); } if (HoldStodLige.Count != 0) { listerAfHold.Add(HoldStodLige); } HoldList.Clear(); foreach (List <Hold> _holdlist in listerAfHold) { //hvor mange hold der er i de andre lister før den liste som den nuværende hold er i int holdlistenummer = 0; if (_holdlist == HoldStodLige || _holdlist == HoldTabere) { if (HoldVindere != null) { holdlistenummer += HoldVindere.Count; } if (_holdlist == HoldTabere) { if (HoldStodLige != null) { holdlistenummer += HoldStodLige.Count; } } } foreach (Hold _hold in _holdlist) { EventAktivitetHold _eventAktivitetHold = _hold.HoldAktiviteter.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).FirstOrDefault(); if (_eventAktivitetHold != null) { Aktivitet _aktivitet = AktivitetList.Where(i => i.Id == EventAktivitetList.Where(i => i.Id == _eventAktivitetHold.EventAktivitetId).FirstOrDefault().AktivitetId).FirstOrDefault(); int? totalScore = 0; int? antalScores = 0; int? modstanderTotalScore = 0; int? modstanderAntalScores = 0; int antalForan = 0; if (_aktivitet.HoldSport == 0) { if (_eventAktivitetHold.HoldScores.Count != 0) { foreach (var _score in _eventAktivitetHold.HoldScores) { totalScore += _score.HoldScore; antalScores++; } } } if (antalScores != 0 && _aktivitet.HoldSport == 1) { totalScore /= antalScores; } for (int i = 0; i < _holdlist.Count; i++) { if (_holdlist[i] != _hold) { modstanderTotalScore = 0; modstanderAntalScores = 0; EventAktivitetHold _modstanderEventAktivitetHold = _holdlist[i].HoldAktiviteter.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).FirstOrDefault(); if (_modstanderEventAktivitetHold != null) { if (_aktivitet.HoldSport == 0) { if (_modstanderEventAktivitetHold.HoldScores.Count != 0) { foreach (var _score in _modstanderEventAktivitetHold.HoldScores) { modstanderTotalScore += _score.HoldScore; modstanderAntalScores++; } } } else if (_aktivitet.HoldSport == 1) { foreach (var _deltager in DeltagerList.Where(d => d.HoldId == _holdlist[i].Id).ToList()) { foreach (var _score in _deltager.ScoreList.Where(i => i.EventAktivitetId == EventAktivitetList[_vis].Id).ToList()) { if (_score.Score != null) { modstanderTotalScore += _score.Score; modstanderAntalScores++; } } } } if (modstanderAntalScores != 0 && _aktivitet.HoldSport == 1) { modstanderTotalScore /= modstanderAntalScores; } if (totalScore > modstanderTotalScore && _aktivitet.PointType != 1 && _aktivitet.PointType != 3 || totalScore < modstanderTotalScore && _aktivitet.PointType != 0 && _aktivitet.PointType != 2) { antalForan++; } } } } _eventAktivitetHold.Point = 10 * (HoldVindere.Count + HoldTabere.Count + HoldStodLige.Count - antalForan - holdlistenummer); } } HoldList.AddRange(_holdlist); } HoldList.AddRange(HoldResterende); } } } HoldList = HoldList.OrderByDescending(i => i.HoldAktiviteter.Sum(i => i.Point)).ToList(); }