示例#1
0
        public async Task ProposeTestAsync()
        {
            await using (var context = NewContext())
            {
                var service = new MarriageService(context);
                await service.ProposeAsync(1L, 2L);
            }

            await using (var context = NewContext())
            {
                var service = new MarriageService(context);

                var marriage = await service.GetEntryAsync(1L, 2L);

                Assert.NotNull(marriage);
                Assert.Equal(1L, marriage.AskerId);
                Assert.Equal(2L, marriage.ReceiverId);

                Assert.NotNull(marriage.Marriage);
                Assert.Equal(marriage.MarriageId, marriage.Marriage.MarriageId);

                Assert.NotNull(marriage.Marriage.Participants);
                Assert.NotEqual(DateTime.MinValue, marriage.Marriage.TimeOfProposal);
                Assert.True(marriage.Marriage.IsProposing);
            }
        }
示例#2
0
        public async Task AcceptMarriageTestAsync()
        {
            await InitMarriageAsync();

            await using var context = NewContext();
            var service  = new MarriageService(context);
            var marriage = await service.GetMarriageAsync(1L, 2L);

            Assert.False(marriage.Marriage.IsProposing);
            Assert.NotEqual(marriage.Marriage.TimeOfProposal, marriage.Marriage.TimeOfMarriage);
        }
示例#3
0
        private async Task InitMarriageAsync()
        {
            // Setup
            await using (var context = NewContext())
            {
                var service = new MarriageService(context);
                await service.ProposeAsync(1L, 2L);
            }

            // Execute
            await using (var context = NewContext())
            {
                var service  = new MarriageService(context);
                var marriage = await service.GetEntryAsync(1L, 2L);

                await service.AcceptProposalAsync(marriage.Marriage);
            }
        }
示例#4
0
        public async Task DeclineProposalTestAsync()
        {
            await InitMarriageAsync();

            await using (var context = NewContext())
            {
                var service  = new MarriageService(context);
                var marriage = await service.GetMarriageAsync(1L, 2L);

                await service.DeclineProposalAsync(marriage);
            }

            await using (var context = NewContext())
            {
                var service  = new MarriageService(context);
                var proposal = await service.GetEntryAsync(1L, 2L);

                Assert.Null(proposal);
            }
        }
示例#5
0
        public static async Task BanAsync(this User user, DbContext context)
        {
            // TODO: replace for IContext
            MarriageService repository = new MarriageService(new UnitOfWork(context));

            User u = await context.Set <User>().FindAsync(user.Id);

            await repository.DivorceAllMarriagesAsync(user.Id);

            await repository.DeclineAllProposalsAsync(user.Id);

            context.Set <CommandUsage>().RemoveRange(
                await context.Set <CommandUsage>().Where(x => x.UserId == user.Id).ToListAsync()
                );

            context.Set <Achievement>().RemoveRange(
                await context.Set <Achievement>().Where(x => x.UserId == user.Id).ToListAsync()
                );

            context.Set <LocalExperience>().RemoveRange(
                await context.Set <LocalExperience>().Where(x => x.UserId == user.Id).ToListAsync()
                );

            await context.Set <IsBanned>()
            .AddAsync(new IsBanned
            {
                UserId         = user.Id,
                TimeOfBan      = DateTime.UtcNow,
                ExpirationDate = DateTime.UtcNow.AddYears(10)
            });

            u.Total_Commands   = 0;
            u.Total_Experience = 0;
            u.MarriageSlots    = 0;
            u.Currency         = 0;
            u.Reputation       = 0;

            await context.SaveChangesAsync();
        }
示例#6
0
 public MarriageModule(StewardContext context, DiscordSocketClient client, MarriageService m)
 {
     _stewardContext  = context;
     _client          = client;
     _marriageService = m;
 }
示例#7
0
 public MarriageModule(MarriageService marriageService)
 {
     _marriageService = marriageService;
 }