示例#1
0
 public LobbyManagement(Random random, GameService gameService, LobbyService lobbyService, PremiumService premiumService)
 {
     Random         = random;
     GameService    = gameService;
     LobbyService   = lobbyService;
     PremiumService = premiumService;
 }
        public void CalculateMonthlyPaymentAmounts(double totalPremium, double initialPayment, double otherPayments)
        {
            var expected = ((decimal)initialPayment, (decimal)otherPayments);
            var payments = PremiumService.CalculateMonthlyPaymentAmounts((decimal)totalPremium);

            Assert.AreEqual(expected, payments);
        }
示例#3
0
        public async Task TogglePremium()
        {
            var config = PremiumService.GetConfig();

            config.Enabled = !config.Enabled;
            PremiumService.SaveConfig(config);
            await ReplyAsync($"Premium Enabled: {config.Enabled}");
        }
示例#4
0
        public async Task SetPatreonUrl([Remainder] string url)
        {
            var config = PremiumService.GetConfig();

            config.PageUrl = url;
            PremiumService.SaveConfig(config);
            await ReplyAsync($"Set.");
        }
示例#5
0
        public async Task SetPatreonGuildInvite([Remainder] string url)
        {
            var config = PremiumService.GetConfig();

            config.ServerInvite = url;
            PremiumService.SaveConfig(config);
            await ReplyAsync($"Set.");
        }
示例#6
0
 public Info(HttpClient httpClient, CommandService commandService, HelpService helpService, GameService gameService, PermissionService permissionService, PremiumService premium)
 {
     HttpClient        = httpClient;
     CommandService    = commandService;
     HelpService       = helpService;
     GameService       = gameService;
     PermissionService = permissionService;
     Premium           = premium;
 }
示例#7
0
        public virtual async Task ShowLobbyLeaderboardAsync(ISocketMessageChannel channel = null)
        {
            if (channel == null)
            {
                channel = Context.Channel;
            }

            if (!PremiumService.IsPremium(Context.Guild.Id))
            {
                await SimpleEmbedAsync($"This is a premium only command. " +
                                       $"In order to get premium must become an ELO premium subscriber at {PremiumService.PremiumConfig.AltLink} join the server " +
                                       $"{PremiumService.PremiumConfig.ServerInvite} to recieve your role and then run the `claimpremium` command in your server.");

                return;
            }

            using (var db = new Database())
            {
                var lobby = db.GetLobby(channel);
                if (lobby == null)
                {
                    await SimpleEmbedAndDeleteAsync("Channel is not a lobby.", Color.Red);

                    return;
                }

                var updates = db.ScoreUpdates.AsNoTracking().Where(x => x.ChannelId == channel.Id).ToArray().GroupBy(x => x.UserId);
                var infos   = new Dictionary <ulong, int>();
                foreach (var group in updates)
                {
                    infos[group.Key] = group.Sum(x => x.ModifyAmount);
                }

                var groups = infos.OrderByDescending(x => x.Value).SplitList(20).ToArray();
                int index  = 1;
                var pages  = new List <ReactivePage>();
                foreach (var group in groups)
                {
                    var playerGroup = group.ToArray();
                    var lines       = group.Select(x => $"{index++}: {MentionUtils.MentionUser(x.Key)} - `{x.Value}`").ToArray();
                    //index += lines.Length;
                    var page = new ReactivePage();
                    page.Color       = Color.Blue;
                    page.Title       = $"{channel.Name} - Leaderboard";
                    page.Description = string.Join("\n", lines);
                    pages.Add(page);
                }

                await PagedReplyAsync(new ReactivePager
                {
                    Pages = pages
                }.ToCallBack().WithDefaultPagerCallbacks().WithJump());
            }
        }
        public void Setup()
        {
            fixture = new Fixture();
            occupationRepository = new Mock <IOccupationRepository>();

            var config = new MapperConfiguration(opts =>
            {
                opts.AddProfile <PremiumApiProfile>();
            });
            var mapper = config.CreateMapper();

            premiumService = new PremiumService(occupationRepository.Object);
        }
示例#9
0
        public async Task AddRoleAsync(SocketRole role, int maxCount)
        {
            var config = PremiumService.GetConfig();

            config.GuildId = Context.Guild.Id;
            config.Roles.Add(role.Id, new PatreonIntegration.PatreonConfig.ELORole
            {
                RoleId = role.Id,
                MaxRegistrationCount = maxCount
            });
            PremiumService.SaveConfig(config);
            await ReplyAsync("Done.");
        }
示例#10
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            PremiumService = await _context.PremiumServices.FirstOrDefaultAsync(m => m.ServiceID == id);

            if (PremiumService == null)
            {
                return(NotFound());
            }
            return(Page());
        }
示例#11
0
        public void Calculate_Premium_Test_RealAge()
        {
            decimal premium     = 600;
            var     memberModel = new MemberModel()
            {
                RatingFactor    = 1m,
                Age             = 50,
                DeathSumInsured = 1000
            };
            PremiumService domainService = new PremiumService();


            var result = domainService.CalculatePremium(memberModel);

            Assert.Equal(premium, result.Premium);
        }
示例#12
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            PremiumService = await _context.PremiumServices.FindAsync(id);

            if (PremiumService != null)
            {
                _context.PremiumServices.Remove(PremiumService);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
示例#13
0
        public void Calculate_Premium_Test3()
        {
            decimal premium     = 840;
            var     memberModel = new MemberModel()
            {
                Name            = "Test",
                OccupationId    = 2,
                RatingFactor    = 1m,
                Age             = 7,
                DeathSumInsured = 10000
            };
            PremiumService domainService = new PremiumService();


            var result = domainService.CalculatePremium(memberModel);

            Assert.Equal(premium, result.Premium);
        }
示例#14
0
 public Developer(Random random, PremiumService prem)
 {
     Random = random;
     Prem   = prem;
 }
示例#15
0
        public async Task ShowRolesAsync()
        {
            var config = PremiumService.GetConfig();

            await SimpleEmbedAsync("Roles:\n" + string.Join("\n", config.Roles.Select(x => MentionUtils.MentionRole(x.Key) + " - " + x.Value.MaxRegistrationCount)));
        }
示例#16
0
        [DataRow(65.55, 3.28)]          // 3.2775
        public void CalculateCreditCharge(double annualPremium, double expectedCreditCharge)
        {
            var creditCharge = PremiumService.CalculateCreditCharge((decimal)annualPremium);

            Assert.AreEqual((decimal)expectedCreditCharge, creditCharge);
        }
示例#17
0
 public CompetitionSetup(PremiumService premium, ELOJobs job)
 {
     Premium = premium;
 }
示例#18
0
 public QueueManagement(LobbyService lobbyService, PremiumService premium)
 {
     LobbyService = lobbyService;
     Premium      = premium;
 }
示例#19
0
 public UserManagement(PremiumService premium, UserService userService)
 {
     Premium     = premium;
     UserService = userService;
 }
示例#20
0
 public UserCommands(PremiumService premium, UserService userService)
 {
     Premium     = premium;
     UserService = userService;
 }
示例#21
0
 public LobbySetup(PremiumService premium)
 {
     Premium = premium;
 }