Пример #1
0
        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();
            }
        }