Esempio n. 1
0
        public void LogUpdate(int unverifyTime, IUser fromUser, IUser toUser, IGuild guild)
        {
            var data = new UnverifyLogUpdate()
            {
                TimeFor = unverifyTime.ToString()
            };

            Save(UnverifyLogOperation.Update, fromUser, toUser, guild, data);
        }
Esempio n. 2
0
        public async Task LogUpdateAsync(DateTime startDateTime, DateTime endDateTime, IGuild guild, IUser fromUser, IUser toUser)
        {
            var data = new UnverifyLogUpdate()
            {
                EndDateTime   = endDateTime,
                StartDateTime = startDateTime
            };

            var toUserEntity = await GrillBotRepository.UsersRepository.GetOrCreateUserAsync(guild.Id, toUser.Id, UsersIncludes.None);

            var fromUserEntity = await GrillBotRepository.UsersRepository.GetOrCreateUserAsync(guild.Id, fromUser.Id, UsersIncludes.None);

            await GrillBotRepository.CommitAsync();

            GrillBotRepository.Detach(toUserEntity);
            GrillBotRepository.Detach(fromUserEntity);

            await SaveLogOperationAsync(UnverifyLogOperation.Update, data.ToJObject(), fromUserEntity.ID, toUserEntity.ID);
        }
Esempio n. 3
0
        public async Task <string> UpdateUnverifyAsync(int id, string time, SocketUser fromUser)
        {
            var unverifyTime = ParseUnverifyTime(time);
            var item         = Data.Find(o => o.ID == id);

            if (item == null)
            {
                throw new ArgumentException($"Reset pro ID {id} nelze provést. Záznam nebyl nalezen");
            }

            var guild = Client.GetGuild(item.GuildIDSnowflake);
            var user  = await guild.GetUserFromGuildAsync(item.UserID).ConfigureAwait(false);

            var logData = new UnverifyLogUpdate()
            {
                TimeFor = $"{time} ({unverifyTime})"
            };

            logData.SetUser(user);

            using (var repository = new GrillBotRepository(Config))
            {
                await repository.TempUnverify.LogOperationAsync(UnverifyLogOperation.Update, fromUser, guild, logData).ConfigureAwait(false);

                await repository.TempUnverify.UpdateTimeAsync(id, unverifyTime).ConfigureAwait(false);
            }

            item.TimeFor = unverifyTime;
            item.StartAt = DateTime.Now;
            item.ReInitTimer(ReturnAccess);

            await user.SendPrivateMessageAsync(GetFormatedPrivateMessage(user, item, null, true)).ConfigureAwait(false);

            return($"Reset času pro záznam o dočasném odebrání přístupu s ID **{id}** byl úspěšně aktualizován. " +
                   $"Role budou navráceny **{item.GetEndDatetime().ToLocaleDatetime()}**.");
        }