Esempio n. 1
0
        public void UpdateRecordStatus_LowDPS_BenchStatusFailed2()
        {
            var benches = new List <IRaidBench>()
            {
                new RaidBench()
                {
                    Class          = Class.Elementalist,
                    Specialization = Specialization.Base,
                    Role           = Role.Alac,
                    Scale          = 0.8
                },
                new RaidBench()
                {
                    Class          = Class.Engineer,
                    Specialization = Specialization.Holosmith,
                    Role           = Role.Power,
                    DPS            = 15000,
                    Scale          = 0.8
                },
            };
            var record = new RaidRecord()
            {
                Class          = Class.Engineer,
                Specialization = Specialization.Holosmith,
                Role           = Role.Power,
                DPS            = 5000
            };

            record.UpdateRecordStatus(benches);
            (record as IRaidRecord).Status.Should().BeEquivalentTo(BenchStatus.Failed);
        }
Esempio n. 2
0
        public void UpdateRecordStatus_GoodBoonUptime_BenchStatusPassed3()
        {
            var benches = new List <IRaidBench>()
            {
                new RaidBench()
                {
                    Class          = Class.Elementalist,
                    Specialization = Specialization.Base,
                    Role           = Role.Alac,
                    Scale          = 0.8
                },
                new RaidBench()
                {
                    Class          = Class.Engineer,
                    Specialization = Specialization.Holosmith,
                    Role           = Role.Power,
                    DPS            = 1,
                    BoonUptime     = 1,
                    Scale          = 0.8
                },
            };
            var record = new RaidRecord()
            {
                Class          = Class.Engineer,
                Specialization = Specialization.Holosmith,
                Role           = Role.Power,
                DPS            = 5,
                BoonUptime     = 2
            };

            record.UpdateRecordStatus(benches);
            (record as IRaidRecord).Status.Should().BeEquivalentTo(BenchStatus.Passed);
        }
Esempio n. 3
0
        public void UpdateRecordStatus_BenchNotFound_BenchStatusUnkown3()
        {
            var benches = new List <IRaidBench>()
            {
                new RaidBench()
                {
                    Class          = Class.Elementalist,
                    Specialization = Specialization.Base,
                    Role           = Role.Alac
                },
                new RaidBench()
                {
                    Class          = Class.Engineer,
                    Specialization = Specialization.Holosmith,
                    Role           = Role.Power
                },
            };
            var record = new RaidRecord()
            {
                Class          = Class.Elementalist,
                Specialization = Specialization.Base,
                Role           = Role.Bannerslave
            };

            record.UpdateRecordStatus(benches);
            (record as IRaidRecord).Status.Should().BeEquivalentTo(BenchStatus.Unkown);
        }
Esempio n. 4
0
        public void UpdateRecordStatus_BenchesIsNull_BenchStatusUnkown()
        {
            var record = new RaidRecord();

            record.UpdateRecordStatus(null);
            (record as IRaidRecord).Status.Should().BeEquivalentTo(BenchStatus.Unkown);
        }
Esempio n. 5
0
        public void GetConvertedDPS_NumberMoreThanMillion2()
        {
            var raidRecord = new RaidRecord()
            {
                DPS = int.MaxValue
            };

            raidRecord.GetConvertedDPS().Should().Be(">=1M");
        }
Esempio n. 6
0
        public void GetConvertedDPS_NumberMoreThanMillion()
        {
            var raidRecord = new RaidRecord()
            {
                DPS = 1000000
            };

            raidRecord.GetConvertedDPS().Should().Be(">=1M");
        }
Esempio n. 7
0
        public void GetConvertedDPS_NumberLessThanMillion3()
        {
            var raidRecord = new RaidRecord()
            {
                DPS = 500000
            };

            raidRecord.GetConvertedDPS().Should().Be("500K");
        }
Esempio n. 8
0
        public void GetConvertedDPS_NumberLessThanMillion2()
        {
            var raidRecord = new RaidRecord()
            {
                DPS = 9999
            };

            raidRecord.GetConvertedDPS().Should().Be("9.999K");
        }
Esempio n. 9
0
        public void GetConvertedDPS_NumberLessThanThousand3()
        {
            var raidRecord = new RaidRecord()
            {
                DPS = 999
            };

            raidRecord.GetConvertedDPS().Should().Be("999");
        }
Esempio n. 10
0
        public void GetConvertedDPS_NumberLessThanThousand2()
        {
            var raidRecord = new RaidRecord()
            {
                DPS = 100
            };

            raidRecord.GetConvertedDPS().Should().Be("100");
        }
Esempio n. 11
0
        public async Task AddDPSAsync(IGuildUser guildUser, int dps, Role role, Class userClass, Specialization spec = Specialization.Base, double boonUptime = 0, string characterName = "None")
        {
            boonUptime.Clamp(0, 100);

            using (var context = new RaidContext())
            {
                await context.Database.EnsureCreatedAsync();

                var guild = await context.Guilds
                            .AsQueryable()
                            .SingleOrDefaultAsync(x => x.DBDiscordID == Context.Guild.Id.ToString());

                if (guild is null)
                {
                    await ReplyAsync("Guild was not found in the database.");

                    return;
                }

                var user = await context.Users
                           .Include(x => x.Records)
                           .SingleOrDefaultAsync(x => x.DBDiscordID == guildUser.Id.ToString() && x.Guild == guild);

                if (user is null)
                {
                    await ReplyAsync("User was not found in the database.");

                    return;
                }

                var record = new RaidRecord()
                {
                    User           = user,
                    CharacterName  = characterName,
                    DPS            = dps,
                    Role           = role,
                    Class          = userClass,
                    Specialization = spec,
                    BoonUptime     = boonUptime
                };

                user.Records.Add(record);

                await context.SaveChangesAsync();
            }

            await ReplyAsync("Entry added.");
        }