private static (ModixContext, GuildRoleRepository) BuildTestContext()
        {
            var modixContext = TestDataContextFactory.BuildTestDataContext(x =>
            {
                x.GuildRoles.AddRange(GuildRoles.Entities.Clone());
            });

            var uut = new GuildRoleRepository(modixContext);

            return(modixContext, uut);
        }
示例#2
0
        /// <inheritdoc />
        public async Task TrackRoleAsync(IRole role)
        {
            using (var transaction = await GuildRoleRepository.BeginCreateTransactionAsync())
            {
                if (!await GuildRoleRepository.TryUpdateAsync(role.Id, data =>
                {
                    data.Name = role.Name;
                    data.Position = role.Position;
                }))
                {
                    await GuildRoleRepository.CreateAsync(new GuildRoleCreationData()
                    {
                        RoleId   = role.Id,
                        GuildId  = role.Guild.Id,
                        Name     = role.Name,
                        Position = role.Position
                    });
                }

                transaction.Commit();
            }
        }