예제 #1
0
        public void GenerateStats(bool isMutant)
        {
            var stats = new StatsModel()
            {
                IsMutant = isMutant,
                Date     = DateTime.Now
            };

            _context.Stats.Add(stats);
            _context.SaveChanges();
        }
예제 #2
0
        public IActionResult Index(StatsModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            model.Images        = _contentParser.GetImages(model.Url);
            model.documentStats = _contentParser.GetDocumentStats(model.Url);
            return(View(model));
        }
예제 #3
0
        public void TestUserStatsInitiate()
        {
            string tempFile = Path.GetTempFileName();                           //create a temporary file

            File.WriteAllText(tempFile, "HEALTH:100\nMANA:40\nLEVEL:1\nEXP:0"); //Create values
            StatsModel test = new StatsModel(tempFile);

            Assert.Equal(100, test.Health);
            Assert.Equal(40, test.Mana);
            Assert.Equal(1, test.Level);
            Assert.Equal(0, test.Experience);//Obtain and check.
        }
예제 #4
0
 /*
  * Constructor for Dungeon
  * Encapsulates UserModel,InventoryItems,WeaponInfo,Stats objects + the bool variable
  *
  * PARAM
  * UserModel:parse UserModel,
  * items: parse items,
  * weapon: parse weapon ,
  * stats: parse stats,
  * tut: true of false if the tutorial display alert is wished to be displayed
  *
  * RETURN Nothing
  */
 public DungeonView(UserModel user, InventoryItemsModel items, WeaponInfoModel weapon, ItemInfoModel itemInv, StatsModel stats, bool tut, DungeonModel realdungeon)
 {
     this.realdungeon = realdungeon;
     this.user        = user;
     this.items       = items;
     this.weapon      = weapon;
     this.stats       = stats;
     this.tut         = tut;
     this.itemInv     = itemInv;
     InitializeComponent();
     InitializeBoss();
 }
 // GET: ImportData
 public Task <ActionResult> Index()
 {
     return(DoTask(_ =>
     {
         //var fileReaderService = new FileReaderService();
         //fileReaderService.PopulateCSVToEntity();
         var model = new StatsModel();
         var importDataReader = new ImportDataReader(_dbContext);
         var statsCalculator = new StatsCalculatorService(importDataReader);
         model = statsCalculator.CalculateStatsData();
         return View(model);
     }));
 }
예제 #6
0
        public ActionResult <StatsModel> GetBaseStats()
        {
            var statsToBeReturn = new StatsModel();

            statsToBeReturn.TripsStats.TripsCount = _statsRepository.GetTripsCountForUser(_userInfoService.UserId);

            statsToBeReturn.FlightsStats.FlightsCount   = _statsRepository.GetFlightsCountForUser(_userInfoService.UserId);
            statsToBeReturn.FlightsStats.FligtsDistance = _statsRepository.GetFlightsDistanceForUser(_userInfoService.UserId);
            statsToBeReturn.FlightsStats.FlightsTime    = _statsRepository.GetFlightsTimeForUser(_userInfoService.UserId);

            statsToBeReturn.CountriesStats.VisitedCountriesCount = _statsRepository.GetCountriesForUser(_userInfoService.UserId);

            return(Ok(statsToBeReturn));
        }
예제 #7
0
        private void CbxYear_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            string year = CbxYear.SelectedItem.ToString();

            StatsModel stats = new StatsModel();

            TesisPleno.DataContext      = stats.GetTesisPorInstanciaPorAbogado("IdSubinstancia", 10000, year);
            TesisPrimera.DataContext    = stats.GetTesisPorInstanciaPorAbogado("IdSubinstancia", 10001, year);
            TesisSegunda.DataContext    = stats.GetTesisPorInstanciaPorAbogado("IdSubinstancia", 10002, year);
            TesisPlenosC.DataContext    = stats.GetTesisPorInstanciaPorAbogado("IdInstancia", 4, year);
            TesisTribunales.DataContext = stats.GetTesisPorInstanciaPorAbogado("IdInstancia", 1, year);

            TxtTitle.Text = "Total de tesis enviadas en " + year + " por instancia";
        }
예제 #8
0
        // GET: StatsModels/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StatsModel statsModel = db.StatsModels.Find(id);

            if (statsModel == null)
            {
                return(HttpNotFound());
            }
            return(View(statsModel));
        }
예제 #9
0
        private async Task RefreshBotAsync(bool startup = false, bool inGuild = false)
        {
            string gameStatus = "e!help | EdgyBot for " + ServerCount + " servers!";

            if (!StatusIsCustom)
            {
                await _client.SetGameAsync(gameStatus);
            }

            if (startup)
            {
                await _lib.EdgyLog(LogSeverity.Info, "Set game to " + gameStatus);
            }
            else
            {
                StatsModel stats = new StatsModel();
                stats.shards = new Shard[_client.Shards.Count];
                for (int x = 0; x != _client.Shards.Count; x++)
                {
                    int   serverCount = _client.GetShard(x).Guilds.Count;
                    int   memCount    = GetMembersForShard(x);
                    Shard shard       = new Shard
                    {
                        name         = $"Shard {x}",
                        server_count = serverCount,
                        user_count   = memCount
                    };
                    stats.shards[x] = shard;
                }

                await edgyApi.PostStatsAsync(stats);
            }

            /* The event happened in the Guild itself, so we do not need to post our server count. */
            if (inGuild)
            {
                return;
            }

            await _bfdPinger.PostServerCountAsync(ServerCount);

            await _dbPinger.PostServerCountAsync(ServerCount);

            await dblPinger.UpdateDBLStatsAsync(ServerCount);

            await dblComPinger.PostServerCountAsync(ServerCount);

            await blspPinger.PostServerCountAsync(ServerCount);
        }
예제 #10
0
        public async Task <Response <StatsResponse> > GetStats(Request request)
        {
            var result = new StatsModel();
            var orders = await _uow.Orders.FindManyAsync();

            // set profit stats
            result.Profits = orders
                             .GroupBy(x => new { x.CreatedDate.Year, x.CreatedDate.Month })
                             .Select(g => new StatsProfit {
                YearNumber  = g.Key.Year,
                MonthNumber = g.Key.Month,
                MonthName   = new DateTime(g.Key.Year, g.Key.Month, 1).ToString("MMMM", CultureInfo.GetCultureInfo("cs")),
                ProfitTotal = new Price(g.Sum(p => p.CalculatedData.Total.TotalPrice.CzkWithoutVat), VatTypes.Czk21, PriceTypes.Czk),
                SalesCount  = g.Count()
            })
                             .OrderBy(x => x.YearNumber)
                             .ThenBy(x => x.MonthNumber)
                             .Take(12)
                             .ToList();
            if (result.Profits.Count() < 6)
            {
                var missingMonths      = new List <StatsProfit>();
                int missingMonthsCount = 6 - result.Profits.Count();
                for (int i = 1; i <= missingMonthsCount; i++)
                {
                    int lastMonth = result.Profits.FirstOrDefault()?.MonthNumber ?? new DateTime().Month;
                    int lastYear  = result.Profits.FirstOrDefault()?.YearNumber ?? new DateTime().Year;

                    bool isPreviosYear = lastMonth - i <= 0;
                    int  month         = isPreviosYear  ? 12 + (lastMonth - i + 1) : lastMonth - i;
                    int  year          = result.Profits.FirstOrDefault()?.YearNumber ?? new DateTime().Year;
                    if (isPreviosYear)
                    {
                        year -= 1;
                    }

                    missingMonths.Add(new StatsProfit
                    {
                        YearNumber  = year,
                        MonthNumber = month,
                        MonthName   = new DateTime(year, month, 1).ToString("MMMM", CultureInfo.GetCultureInfo("cs")),
                        ProfitTotal = new Price(0, VatTypes.Czk21, PriceTypes.Czk),
                        SalesCount  = 0
                    });
                }
                result.Profits = missingMonths.Concat(result.Profits).ToList();
            }
            return(new Response <StatsResponse>(ResponseStatus.Ok, _mapService.MapStats(result)));
        }
예제 #11
0
        //returns a stat model for absent charts for practice with averages for benchmarks for attendance
        //each chart uses the color randomizer for cool color changing properties
        public StatsModel AbsentChart()
        {
            //List of Jpeg Charts to Display
            StatsModel stats = new StatsModel();
            //Attendance pie chart

            var                    user  = Session["Users"] as Users;
            List <Users>           users = usersBLL.GetUsers().FindAll(m => m.TeamID == user.TeamID && m.RoleID != (int)Role.Coach);
            List <CountAttendance> count = new List <CountAttendance>();

            //store each players practice attendance ratios in a list for each player on the team
            foreach (Users player in users)
            {
                CountAttendance checkAttendance = MeaningfulCalculation.GetPracticeAttendanceUser(player.TeamID, player.UserID);
                count.Add(checkAttendance);
            }
            //get x and y values in array
            ArrayList xValue = new ArrayList();

            int[] yValue        = new int[count.Count];
            int[] absent        = new int[count.Count];
            int[] average       = new int[count.Count];
            int[] absentAverage = new int[count.Count];
            int   x             = 0;

            foreach (CountAttendance attendance in count)
            {
                xValue.Add(attendance.FullName.ToString());
                yValue[x] = attendance.NumPresent;
                absent[x] = attendance.NumAbsent;
                x++;
            }

            // place the names number present absent and the averages for line graphs
            stats.xValue  = xValue;
            stats.Present = yValue;
            for (x = 0; x < stats.xValue.Count; x++)
            {
                average[x]       = yValue.Sum() / yValue.Count();
                absentAverage[x] = absent.Sum() / absent.Count();
            }
            stats.Average       = average;
            stats.Absent        = absent;
            stats.AverageAbsent = absentAverage;


            //store in Session
            return(stats);
        }
예제 #12
0
        public void GetStats_ReturnsStats_WhenInvoked()
        {
            var mockStatsRepo = new Mock <IStatsRepository>();
            var testStat      = new StatsModel()
            {
                HumanCount = 4, MutantCount = 2, Ratio = 0.5
            };

            mockStatsRepo.Setup(x => x.GetGenomeStats()).Returns(testStat);
            var statsService = new StatsService(mockStatsRepo.Object);

            var result = statsService.GetStats();

            Assert.Equal(result, testStat);
        }
예제 #13
0
        logged truth = new logged();// Used for telling threads of the application to stop running whenever this is false

        /*
         * Initialize all components and classes for traversing through both details page and masterpage
         * PARAM
         * user: the user data
         * items: the items data
         * RETURNS Nothing
         */
        public AddView(UserModel user, InventoryItemsModel items, StatsModel stats)
        {
            InitializeComponent();
            WeaponInfoModel    weapon      = new WeaponInfoModel(items);
            ItemInfoModel      Invitem     = new ItemInfoModel(items);
            CharacterInfoModel Characters  = new CharacterInfoModel(items, user.LocalLogin);
            ShopModel          Shop        = new ShopModel(items);
            DungeonModel       realDungeon = new DungeonModel();

            Xamarin.Forms.NavigationPage.SetHasNavigationBar(this, false);
            DungeonView dungeon = new DungeonView(user, items, weapon, Invitem, stats, false, realDungeon);

            this.Detail = new NavigationPage(new TasksView(user, items, truth, dungeon, new InventoryView(items, weapon, user, Invitem, Characters))); // Set Detailspage arguments with user information and truth value.
            this.Master = new MasterPageView(Detail, user, items, weapon, truth, dungeon, Invitem, Shop, Characters);                                  // set the masterpage information with user, items, and truth values.
        }
예제 #14
0
        public ActionResult Charts()
        {
            //populate stats model for visual display in charts view using charts.js
            //each method is named for the chart it displays
            StatsModel stats = AbsentChart();
            var        user  = Session["Users"] as Users;

            GameStatsChart(stats, user.TeamID);
            PieChartPoints(stats);
            PieChartRebounds(stats);
            Session["stats"] = stats;


            return(View());
        }
예제 #15
0
        public ActionResult Index()
        {
            var        dataSummary = new DataSummaryManager();
            StatsModel model       = new StatsModel();

            var dateTo   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, 1).AddDays(-1);
            var dateFrom = dateTo.AddYears(-1);

            model.TopContributors   = dataSummary.GetTopNContributors(15, null);
            model.UserRegistrations = dataSummary.GetUserRegistrationStats(dateFrom, dateTo);
            model.UserEdits         = dataSummary.GetUserEditSummary(dateFrom, dateTo);
            model.UserComments      = dataSummary.GetUserCommentStats(dateFrom, dateTo);

            return(View(model));
        }
예제 #16
0
        public async Task TestUserStatsExpCOMBOAsync()
        {
            string tempFile = Path.GetTempFileName();                           //create a temporary file

            File.WriteAllText(tempFile, "HEALTH:100\nMANA:40\nLEVEL:1\nEXP:0"); //Create values
            StatsModel test = new StatsModel(tempFile);

            test.ExpEnterAsync(36);
            Assert.Equal(36, test.Experience);         // Check if total exp is 10.
            Assert.Equal("LEVEL UP", test.ExpLeft());  //Check if user has leveled up
            Assert.True(await test.StatsCheckAsync()); //Check if its time for a levelup

            Assert.Equal(2, test.Level);               //Check if level has updated
            Assert.Equal(120, test.Health);            //Check if Health has updated
            Assert.Equal(50, test.Mana);               //Check if Mana has updated
        }
예제 #17
0
        /// <summary>
        /// Wysyła statystyki do głównego lobby
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SendStatInfo(object sender, ElapsedEventArgs e)
        {
            StatsModel stat = new StatsModel()
            {
                ServerTime   = DateTime.Now.Add(new TimeSpan(0, 0, 0)),
                UsersOnline  = Clients.Count(),
                TablesToPlay = GameList.Get().ToList().Count(),
            };

            foreach (ClientModel client in Clients)
            {
                if (client.User.IsOnline())
                {
                    client.ClientProxy.OnGetStatsInfo(stat);
                }
            }
        }
예제 #18
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Begin();
            StatsModel gameStats = Screens.ToArray()[Screens.Count - 2].GetStats();

            spriteBatch.DrawString(font, "You Died! ", new Vector2(25, 550),
                                   Color.Red);
            spriteBatch.DrawString(font, "Bullets Fired " + gameStats.TotalBulletsFired, new Vector2(25, 600),
                                   Color.Azure);
            spriteBatch.DrawString(font, "Enemies Destroyed " + gameStats.TotalEnemiesDestroyed, new Vector2(25, 650),
                                   Color.Azure);
            spriteBatch.DrawString(font, "Accuracy " + gameStats.GetBulletAccuracy(), new Vector2(25, 700),
                                   Color.Azure);
            spriteBatch.DrawString(font, "Press Enter To Continue", new Vector2(25, 750),
                                   Color.Azure);
            spriteBatch.End();
        }
예제 #19
0
파일: srvStats.cs 프로젝트: jiqsaw/muckbox
        public StatsModel GetAllData()
        {
            StatsModel model = new StatsModel();

            srvUser serviceUser = new srvUser();

            model.ToplamUyeSayisi = serviceUser.GetAllActive().Count();

            srvUserForm serviceUserForm = new srvUserForm();

            model.DoldurulanFormSayisi = serviceUserForm.GetAllActive().Count();

            srvRecord serviceRecord = new srvRecord();

            model.KaydedilenMuzikSayisi = serviceRecord.GetAllActive().Count();

            return(model);
        }
        public ActionResult <StatsModel> Get()
        {
            try
            {
                this._logger.LogDebug("Stats - Get");

                var result = this._service.GetStats();

                this._logger.LogDebug(JsonConvert.SerializeObject(result));

                return(Ok(StatsModel.ToModel(result)));
            }
            catch (System.Exception ex)
            {
                this._logger.LogError(ex.Message, ex);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
예제 #21
0
        public virtual StatsModel GetStats()
        {
            var series   = _database.Fetch <Series>();
            var episodes = _database.Fetch <Episode>();
            var history  = _database.Fetch <History>("WHERE Date >= @0", DateTime.Today.AddDays(-30));

            var stats = new StatsModel();

            stats.SeriesTotal         = series.Count;
            stats.SeriesContinuing    = series.Count(s => s.Status == "Continuing");
            stats.SeriesEnded         = series.Count(s => s.Status == "Ended");
            stats.EpisodesTotal       = episodes.Count;
            stats.EpisodesOnDisk      = episodes.Count(e => e.EpisodeFileId > 0);
            stats.EpisodesMissing     = episodes.Count(e => e.Ignored == false && e.EpisodeFileId == 0);
            stats.DownloadedLastMonth = history.Count;
            stats.DownloadLastWeek    = history.Count(h => h.Date >= DateTime.Today.AddDays(-7));

            return(stats);
        }
예제 #22
0
        public StatsViewModel(ItemInfoModel item, UserModel user, StatsModel stats)
        {
            this.items = item;
            this.user  = user;
            this.stats = stats;
            int Level  = Int32.Parse(UserModel.CheckForstring(stats.Localfile, "LEVEL:"));
            int expInt = Int32.Parse(UserModel.CheckForstring(stats.Localfile, "EXP:"));

            Name         = UserModel.CheckForstring(user.LocalLogin, "Fullname:");
            Character    = user.Character;
            BossDefeated = UserModel.CheckForstring(stats.Localfile, "TOTAL_BOSSES:");
            Keys         = UserModel.CheckForstring(item.items.Localfile, "TOTAL_KEYS:");
            Health       = String.Format("{0}", UserModel.CheckForstring(stats.Localfile, "HEALTH:"));
            Mana         = String.Format("{0}", UserModel.CheckForstring(stats.Localfile, "MANA:"));
            int Remaining = (((Level * 21) + 15) - expInt);

            Levels = UserModel.CheckForstring(stats.Localfile, "LEVEL:");
            Exp    = String.Format("{0}", Remaining.ToString());
        }
예제 #23
0
        private async Task LoadUser(FirebaseUser client, string documents)// Load user from login mainscreen
        {
            bool      skip    = false;
            var       Logged  = Path.Combine(documents, "Logged.dt");
            var       Login   = Path.Combine(documents, _UserModel.Username + "Login.dt");
            var       Timers  = Path.Combine(documents, _UserModel.Username + "Timer.dt");
            var       Items   = Path.Combine(documents, _UserModel.Username + "Inv.dt");
            var       Stats   = Path.Combine(documents, _UserModel.Username + "Stats.dt");
            UserModel newuser = new UserModel(client.UserLogin, client.UserStats, client.UserItems, client.Client, client.UserTimes); newuser.file = Logged;
            await Task.Run(async() =>
            {
                if (!File.Exists(Login) || !File.Exists(Items) || !File.Exists(Stats) || !File.Exists(Timers))
                {
                    skip = true;
                    File.Delete(Login);
                    File.Delete(Items);
                    File.Delete(Stats);
                    File.Delete(Timers);
                    File.WriteAllText(Login, string.Format("Updated:\nUsername:\nPassword:\nFullname:\nCharacter:(ง’̀-‘́)ง\nLogged:false\nTutorial:True"));
                    File.WriteAllText(Items, "Weapons:IronDagger,IronBow,\nKeys:0\nGold:500\nEquipped:IronDagger\nItems:\nCharacters:(ง’̀-‘́)ง,\nTOTAL_KEYS:0");
                    File.WriteAllText(Stats, "HEALTH:100\nMANA:40\nLEVEL:1\nEXP:0\nTOTAL_BOSSES:0");
                    File.WriteAllText(Timers, "");
                }
                newuser.Getfile(Login, Items, Stats, Timers);
                newuser.Character = UserModel.CheckForstring(newuser.LocalLogin, "Character:");
                newuser.UserLogin.Object.Logged = "True";
                await newuser.RewriteDATA();
                await newuser.UpdateAll(skip);
                UserModel.Rewrite("Username:"******"Password:", _UserModel.Password, newuser.file);
                Globals.LOGGED = client.UserLogin;
                Globals.CLIENT = client.Client;
            });

            InventoryItemsModel item = new InventoryItemsModel(newuser.UserItems, newuser.Token, newuser.UserLogin.Object.Username, Items);
            StatsModel          stat = new StatsModel(newuser.UserStats, newuser.Token, newuser.UserLogin.Object.Username, Stats);

            Device.BeginInvokeOnMainThread(() =>
            {
                Application.Current.MainPage = new NavigationPage(new AddView(newuser, item, stat));
            });
        }
예제 #24
0
        public override Task <StatsModel> Stats(StatsLookupModel request, ServerCallContext context)
        {
            StatsModel output = new StatsModel();

            // Obtemos o utilizador da base de dados com o ID de sessão, para depois obtermos o seu ID, se não existir é retornado o código
            // de erro para o cliente
            Models.User user = _context.User.FirstOrDefault(u => u.SessionID == request.SessionId);
            if (user == null)
            {
                output.GamesPlayed = -1;
                return(Task.FromResult(output));
            }

            History h = _context.History.FirstOrDefault(u => u.userId == user.Id);

            if (h == null) // No caso do utilizador nunca ter jogado, cria-se uma entrada na base de dados para este jogador.
            {
                _context.Database.EnsureCreated();

                h = new History
                {
                    Games  = 0,
                    win    = 0,
                    lost   = 0,
                    draw   = 0,
                    userId = user.Id
                };



                _context.History.Add(h);
                _context.SaveChanges();
            }

            output.Draws       = h.draw;
            output.GamesPlayed = h.Games;
            output.Losts       = h.lost;
            output.Wins        = h.win;
            output.GamesLeft   = user.GamesToPlay;

            return(Task.FromResult(output));
        }
예제 #25
0
        /**
         * Stats
         */
        public StatsResponse MapStats(StatsModel request)
        {
            if (request == null)
            {
                return(null);
            }

            return(new StatsResponse
            {
                Profits = request.Profits.Select(x => new StatsProfitResponse
                {
                    MonthName = x.MonthName,
                    MonthNumber = x.MonthNumber,
                    ProfitTotal = MapPrice(x.ProfitTotal),
                    SalesCount = x.SalesCount,
                    UsersCount = x.UsersCount,
                    YearNumber = x.YearNumber
                }).ToList()
            });
        }
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            _dataTransferManager = DataTransferManager.GetForCurrentView();
            _dataTransferManager.DataRequested += OnDataRequested;

            _navigationHelper.OnNavigatedTo(e);

            if (StatsModel != null)
            {
                await StatsModel.LoadItemsAsync();

                if (e.NavigationMode != NavigationMode.Back)
                {
                    StatsModel.SelectItem(e.Parameter);
                }

                StatsModel.ViewType = ViewTypes.Detail;
            }
            DataContext = this;
        }
예제 #27
0
        public void PieChartRebounds(StatsModel stats)
        {
            //Get the sum of all rebounds as a total
            //for each rebounds in the array
            decimal sumAll = Convert.ToDecimal(stats.Rebounds.Sum());

            decimal[] percentage = new decimal[stats.Rebounds.Count()];
            for (int x = 0; x < stats.Points.Count(); x++)
            {
                decimal number     = Convert.ToDecimal(stats.Rebounds[x]);
                decimal addToArray = number / sumAll;

                //store the percentage for each player in the array
                percentage[x] = Math.Round(addToArray, 2);
            }
            stats.PieRebounds = percentage;
            //get the percentage of the total rebounds that player has earned

            //store in array random colors for the pie chart for chart.js
            stats.ColorRandom = calculator.RandomColor(stats.Points.Count());
        }
예제 #28
0
        public void GetStats_ReturnsStats_WhenCalled()
        {
            var mockStatsService = new Mock <IStatsService>();
            var testStats        = new StatsModel()
            {
                HumanCount = 4, MutantCount = 2, Ratio = 0.5
            };

            mockStatsService.Setup(x => x.GetStats()).Returns(testStats);
            var statsController = new StatsController(mockStatsService.Object);
            var testDna         = new Dna()
            {
                DnaMatrix = new[] { "AAAA, CCCC, GGGG, TTTT" }
            };

            var result = statsController.GetGenomesStats();

            Assert.Equal(4, result.Value.HumanCount);
            Assert.Equal(2, result.Value.MutantCount);
            Assert.Equal(0.5, result.Value.Ratio);
        }
예제 #29
0
        // GET: Stats
        // [OutputCache(Duration = 60)] //can't cache as user options won't be rendered
        public ActionResult Index()
        {
            var        dataSummary = new DataSummaryManager();
            StatsModel model       = new StatsModel();

            var dateTo   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, 1).AddDays(-1);
            var dateFrom = dateTo.AddYears(-1);

            model.TopContributors   = dataSummary.GetTopNStats("UserPOIChangesLast90Days", 10, null);
            model.TopCommentators   = dataSummary.GetTopNStats("UserCommentsLast90Days", 10, null);
            model.TopMediaItems     = dataSummary.GetTopNStats("UserMediaLast90Days", 10, null);
            model.UserRegistrations = dataSummary.GetUserRegistrationStats(dateFrom, dateTo);
            model.UserEdits         = dataSummary.GetUserEditSummary(dateFrom, dateTo);
            model.UserComments      = dataSummary.GetUserCommentStats(dateFrom, dateTo);

            model.TotalActiveContributors  = dataSummary.GetStatSingle("TotalChangeContributorsLast90Days");
            model.TotalActiveEditors       = dataSummary.GetStatSingle("ActiveEditorsLast90Days");
            model.TotalCommentContributors = dataSummary.GetStatSingle("TotalCommentContributorsLast90Days");
            model.TotalPhotoContributors   = dataSummary.GetStatSingle("TotalPhotoContributorsLast90Days");

            return(View(model));
        }
예제 #30
0
        private void FillSizesInfo(StatsModel toFill)
        {
            DriveInfo info;

            if (OperatingSystem.IsWindows())
            {
                char letter = 'C';
                if (_options.DataPath.Length >= 2 && _options.DataPath[0] <= 'Z' &&
                    _options.DataPath[0] >= 'A' && _options.DataPath[1] == ':')
                {
                    letter = _options.DataPath[0];
                }
                info = new DriveInfo(letter.ToString() + ":");
            }
            else
            {
                info = new DriveInfo(_options.DataPath);
            }
            toFill.TotalDataDriveSize = info.TotalSize;
            toFill.UsedSize           = info.TotalSize - info.TotalFreeSpace;
            toFill.UsedSizeByData     = DirSize(new DirectoryInfo(_options.DataPath));
        }
예제 #31
0
 public ActionResult Stats(FormCollection collection, StatsModel model)
 {
     return View("Stats", model);
 }