private void Start() { if (IsAborted) { return; } CurLevelPassing = new LevelPassing() { DateAndTime = DateTime.Now.ToString() }; LevelPassings.Add(CurLevelPassing); DBTools.Context.Entry(DbLevelRecord).State = System.Data.Entity.EntityState.Modified; DBTools.Context.SaveChanges(); OnPropertyChanged("LevelPassingsCount"); OnPropertyChanged("CardsCount"); OnPropertyChanged("AvgCardsErrorsPercentInLast3LevelPassings"); int id = DbLevelRecord.Id; var RefreshedDbLevelRecord = DBTools.Context.Levels.Find(id); if (RefreshedDbLevelRecord != null) { DbLevelRecord = RefreshedDbLevelRecord; } LoadMedia(); LoadScenes(); if (Settings.GetInstance().ShuffleMusic) { Game.Music.PlayRandom(Settings.GetInstance().RepeatMusicPlaylist); } else { Game.Music.PlayInOrder(Settings.GetInstance().RepeatMusicPlaylist); } Game.Music.Pause(); CurScene.GetComponent <Starter>().Start(); Game.Owner.AbortLevelButton.Visibility = Visibility.Visible; }
private double GetAvgCardsErrorsPercentInLast3LevelPassings() { var AllCardPassings = LevelPassings.Select(lp => new { CardPassings = lp.CardPassings, DateAndTime = GetDateTime(lp.DateAndTime) }); var Last3LevelPassings = AllCardPassings.OrderByDescending(lp => lp.DateAndTime).Take(3); List <double> CardsErrorPercents = new List <double>(); foreach (var lp in Last3LevelPassings) { double cardsErrorsSumm = 0; double cardsPassesSumm = 0; foreach (var p in lp.CardPassings) { cardsPassesSumm++; if (p.AttemptsNumber > 1) { cardsErrorsSumm++; } } if (cardsPassesSumm != 0) { CardsErrorPercents.Add(cardsErrorsSumm / cardsPassesSumm); } } if (CardsErrorPercents.Count > 0) { return(CardsErrorPercents.Average()); } else { return(0); } }