Ejemplo n.º 1
0
        public void Decrement(IUser user, Enums.ScoreType type, int val = 1)
        {
            if (!HasScore(user))
            {
                throw new System.Exception("The f**k?");
            }

            Scores s = GetScoreByUser(user);

            switch (type)
            {
            case Enums.ScoreType.Qouted:
                s.Quoted -= val;
                break;

            case Enums.ScoreType.Qouter:
                s.Quotes_Created -= val;
                break;

            default:
                s.VC_Score -= val;
                break;
            }

            _context.SaveChanges();
        }
Ejemplo n.º 2
0
        public void Increment(IUser user, Enums.ScoreType type, int val = 1)
        {
            bool hasScore = HasScore(user);

            EntityUser eu = _userRepo.GetUserById(user.Id);

            if (eu == null)
            {
                eu = new EntityUser(user as IGuildUser);
                _userRepo.AddUser(eu);
            }

            Scores score = hasScore ? GetScoreByUser(user) : new Scores()
            {
                Id             = user.Id,
                Quoted         = 0,
                Quotes_Created = 0,
                VC_Score       = 0
            };

            switch (type)
            {
            case Enums.ScoreType.Qouted:
                score.Quoted += val;
                break;

            case Enums.ScoreType.Qouter:
                score.Quotes_Created += val;
                break;

            case Enums.ScoreType.VC:
                score.VC_Score += val;
                break;
            }

            if (!hasScore)
            {
                _scoreDbSet.Add(score);
            }

            _context.SaveChanges();
        }
Ejemplo n.º 3
0
        public int GetScore(IUser user, Enums.ScoreType type)
        {
            if (HasScore(user))
            {
                Scores score = GetScoreByUser(user);

                switch (type)
                {
                case Enums.ScoreType.Qouted:
                    return(score.Quoted);

                case Enums.ScoreType.Qouter:
                    return(score.Quotes_Created);

                case Enums.ScoreType.VC:
                    return(score.VC_Score);
                }
            }

            return(0);
        }
Ejemplo n.º 4
0
 private void BindDropDown()
 {
     foreach (var item in Enum.GetValues(typeof(Enums.ScoreType)))
     {
         Enums.ScoreType _item = (Enums.ScoreType)item;
         var             desc  = _item.GetAttributeOfType <System.ComponentModel.DescriptionAttribute>();
         drpType.Items.Add(new ListItem()
         {
             Text = desc.Description, Value = _item.ToString()
         });
     }
     foreach (var item in Enum.GetValues(typeof(Enums.SystemType)))
     {
         Enums.SystemType _item = (Enums.SystemType)item;
         var desc = _item.GetAttributeOfType <System.ComponentModel.DescriptionAttribute>();
         drpSystemType.Items.Add(new ListItem()
         {
             Text = desc.Description, Value = _item.ToString()
         });
     }
 }
Ejemplo n.º 5
0
        private List <Scores> GiveScoresOrderedBy(Enums.ScoreType type)
        {
            List <Scores> scores = _scoreDbSet.ToList();

            switch (type)
            {
            case Enums.ScoreType.Qouted:
                scores = scores.OrderBy(s => s.Quoted).ToList();
                break;

            case Enums.ScoreType.Qouter:
                scores = scores.OrderBy(s => s.Quotes_Created).ToList();
                break;

            case Enums.ScoreType.VC:
                scores = scores.OrderBy(s => s.VC_Score).ToList();
                break;
            }

            scores.Reverse();
            return(scores);
        }
Ejemplo n.º 6
0
        public async static Task <EmbedBuilder> BuildRankEmbed(ICommandContext context, Scores[] scores, EntityUser[] users, int page, Enums.ScoreType type)
        {
            string title  = $"Oreocafé Ranking: Times Quoted- page {page+1}";
            string status = "Quotes";

            switch (type)
            {
            case Enums.ScoreType.Qouter:
                title  = $"Oreocafé Ranking: Quotes Created - page {page + 1}";
                status = "Quotes created";
                break;

            case Enums.ScoreType.VC:
                title  = $"Oreocafé Ranking: VC Score- page {page + 1}";
                status = "Points";
                break;
            }


            EmbedBuilder emb = new EmbedBuilder()
            {
                Title = title,
                Color = Color.Green
            };

            foreach (Scores score in scores)
            {
                int s = score.Quoted;

                switch (type)
                {
                case Enums.ScoreType.Qouter:
                    s = score.Quotes_Created;
                    break;

                case Enums.ScoreType.VC:
                    s = score.VC_Score;
                    break;
                }

                int indx = scores.IndexOf(score);
                int rank = indx + 1 + (page * RankingModule._pageAmount);

                EntityUser user  = users[indx];
                IGuildUser userg = await context.Guild.GetUserAsync(user.Id);

                if (userg != null)
                {
                    emb.AddField(new EmbedFieldBuilder()
                    {
                        Name     = $"Rank {rank}",
                        Value    = $"{userg.Nickname ?? userg.Username} ({s} {status})",
                        IsInline = false
                    });
                }
                else
                {
                    emb.AddField(new EmbedFieldBuilder()
                    {
                        Name     = $"Rank {rank}",
                        Value    = $"{user.Username} ({s} {status})",
                        IsInline = false
                    });
                }
            }

            EmbedFooterBuilder efb = await EmbedBuilderFunctions.AddFooter(context);

            emb.WithFooter(efb);

            return(emb);
        }
Ejemplo n.º 7
0
        public int GiveRankUser(IUser user, Enums.ScoreType type)
        {
            List <Scores> scores = GiveScoresOrderedBy(type);

            return(scores.IndexOf(scores.FirstOrDefault(s => s.Id.Equals(user.Id))) + 1);
        }
Ejemplo n.º 8
0
        public Scores[] GiveTopNScores(int start, int end, Enums.ScoreType type)
        {
            List <Scores> scores = GiveScoresOrderedBy(type);

            return(scores.Skip(start).Take(end - start).ToArray());
        }