public ActionResult User(int? id) { if (id == null) return Redirect("~/"); User user = db.Users.Include("OverallRanks").Include("WeekRanks").Include("TeamPickRecords").Include("TeamPickRecords.Team").Where(u => u.UserID == id).FirstOrDefault(); if (user == null || user.Rank == null) return Redirect("~/"); List<User> users = db.Users.ToList(); List<CurveData> curves = new List<CurveData>(); int totalWins = 0; foreach (User u in users) { int? wins = u.Wins; totalWins += (int)wins; CurveData cd = curves.Where(c => c.NumWins == wins).FirstOrDefault(); if (cd == null) { cd = new CurveData(); cd.NumWins = (int)wins; cd.NumUsers = 1; curves.Add(cd); } else cd.NumUsers++; } curves.Fill(); curves = curves.OrderByDescending(c => c.NumWins).ToList(); curves.Smooth(1, 3); ViewBag.AverageWins = Math.Round(Convert.ToDouble(users.Select(u => u.Wins).Average()), 2); ViewBag.CurveData = curves; ViewBag.NumUsers = users.Count; return View(user); }
public override async Task ConvertToCsv(string collectionName, string outputFileName) { if (!Regex.IsMatch(collectionName, @"^[a-zA-Z0-9]*$")) { throw new NotImplementedException("Invalid String Format"); } _collectionsContent.Add(collectionName, new List<ResampledData>()); Console.WriteLine(collectionName); var collection = Database.GetCollection<BsonDocument>(collectionName); var projection = Builders<BsonDocument>.Projection.Exclude("_id"); var documents = await collection.Find(new BsonDocument()).Project(projection).ToListAsync(); using (StreamWriter file = new StreamWriter(outputFileName)) { List<List<double?>> matrix = new List<List<double?>>(); foreach (var document in documents) { ResampledData localContent = new ResampledData(document); string s = localContent.ToStringIgnoreTime(); //avoid null enties at begining if (s.Contains("null") && _collectionsContent[collectionName].Count == 0) { Console.WriteLine("line null at begining"); } else { matrix.Add(localContent.getSensorData()); _collectionsContent[collectionName].Add(localContent); } } int nbRows = matrix.Count; int nbColumns = matrix[0].Count; for (int i = 0; i < nbColumns; i++) { List<double?> temp = new List<double?>(); for (int j = 0; j < nbRows; j++) { temp.Add(matrix[j][i]); } temp.Smooth(); for (int j = 0; j < nbRows; j++) { matrix[j][i] = temp[j]; } } for (int index = 0; index < matrix.Count; index++) { var row = matrix[index]; _collectionsContent[collectionName][index].SetSensorDatas(row); file.WriteLine(_collectionsContent[collectionName][index].ToStringIgnoreTime()); } Console.WriteLine(); } }