public async Task AddReminderToUser(ulong userId, string message, DateTime dueDate) => await _soraTransactor.DoInTransactionAsync(async context => { var user = await context.Users.GetOrCreateUserNoSaveAsync(userId).ConfigureAwait(false); user.Reminders.Add(new Reminder(userId, message, dueDate)); await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false);
public async Task AddSar(ulong roleId, ulong guildId) => await _soraTransactor.DoInTransactionAsync(async context => { var sar = new Sar(roleId, guildId); context.Sars.Add(sar); await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false);
public async Task RemoveGuild(ulong id) => await _soraTransactor.DoInTransactionAsync(async context => { var guild = await context.Guilds.FindAsync(id).ConfigureAwait(false); if (guild == null) { return; } context.Guilds.Remove(guild); await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false);
public async Task RemoveUserAfk(ulong userId) => await _soraTransactor.DoInTransactionAsync(async context => { var afk = await context.Afks.FindAsync(userId).ConfigureAwait(false); if (afk == null) { return; } context.Afks.Remove(afk); await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false);
public async Task SetUserHasBgBoolean(ulong userId, bool hasCustomBg) { await _soraTransactor.DoInTransactionAsync(async context => { var user = await context.Users.GetOrCreateUserNoSaveAsync(userId).ConfigureAwait(false); user.HasCustomProfileBg = hasCustomBg; await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false); }
public async Task TryAddUserExp(ulong userId, uint expToAdd) { await _soraTransactor.DoInTransactionAsync(async context => { var user = await context.Users.GetOrCreateUserNoSaveAsync(userId); user.Exp += expToAdd; await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false); }
public async Task SetStarboardChannelId(ulong guildId, ulong starboardChannelId) => await _soraTransactor.DoInTransactionAsync(async context => { // We have to create a guild if it doesnt exist, bcs the starboard is a weak entity. await GuildRepository.GetOrSetAndGetGuild(guildId, context).ConfigureAwait(false); // Then we try and get or create the starboard var starboard = await context.Starboards.FindAsync(guildId).ConfigureAwait(false); if (starboard == null) { // Create it starboard = new Starboard(guildId, starboardChannelId); // ReSharper disable once MethodHasAsyncOverload context.Starboards.Add(starboard); } else { starboard.StarboardChannelId = starboardChannelId; } await context.SaveChangesAsync(); }).ConfigureAwait(false);
public async Task RemoveWaifu(int waifuId) { await _soraTransactor.DoInTransactionAsync(async context => { var waifu = await context.Waifus.FindAsync(waifuId).ConfigureAwait(false); if (waifu == null) { return; } context.Waifus.Remove(waifu); await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false); }
public async Task GiveAmount(ulong userId, uint amount) { await _soraTransactor.DoInTransactionAsync(async context => { var user = await context.Users.GetOrCreateUserNoSaveAsync(userId); if (user == null) { return; } user.Coins += amount; await context.SaveChangesAsync(); }).ConfigureAwait(false); }
public async Task ChangeRequestStatus(uint requestId, RequestState requestState, string rejectReason = null) => await _soraTransactor.DoInTransactionAsync(async context => { var req = await context.WaifuRequests.FindAsync(requestId).ConfigureAwait(false); if (req == null) { return; } req.RequestState = requestState; req.ProcessedTime = DateTime.UtcNow; if (requestState == RequestState.Rejected && !string.IsNullOrWhiteSpace(rejectReason)) { req.RejectReason = rejectReason; } await context.SaveChangesAsync().ConfigureAwait(false); }).ConfigureAwait(false);
public async Task CreateClan(string name, ulong ownerId) => await _soraTransactor.DoInTransactionAsync(async context => { // Check if user is in clan already if (await context.ClanMembers .Where(x => x.UserId == ownerId) .CountAsync() > 0) { return; } // Check if clan with this name already exists, abort if it does if (await context.Clans.Where(x => x.Name == name) .CountAsync() > 0) { return; } // Now get or create user we attach to the clan var _ = await context.Users.GetOrCreateUserNoSaveAsync(ownerId); var clan = new Clan() { Name = name, OwnerId = ownerId, Created = DateTime.UtcNow, Level = 0 }; context.Clans.Add(clan); await context.SaveChangesAsync(); // Create clan member for the owner var member = new ClanMember() { ClanId = clan.Id, UserId = ownerId }; context.ClanMembers.Add(member); await context.SaveChangesAsync(); });