public async Task <string> UpdateUnverifyAsync(SocketGuildUser user, SocketGuild guild, string time, SocketUser fromUser) { var task = Queue.Get <UnverifyBackgroundTask>(o => o.GuildId == guild.Id && o.UserId == user.Id); if (task == null) { throw new NotFoundException("Aktualizace času nelze pro hledaného uživatele provést. Unverify nenalezeno."); } if (task.CanProcess() || (task.At - DateTime.Now).TotalSeconds < 30.0D) { throw new ValidationException("Aktualizace data a času již není možná. Vypršel čas, nebo zbývá méně, než půl minuty."); } var endDateTime = TimeParser.Parse(time, minimumMinutes: 10); await UnverifyLogger.LogUpdateAsync(DateTime.Now, endDateTime, guild, fromUser, user); var userEntity = await GrillBotRepository.UsersRepository.GetUserAsync(guild.Id, user.Id, UsersIncludes.Unverify); userEntity.Unverify.EndDateTime = endDateTime; userEntity.Unverify.StartDateTime = DateTime.Now; await GrillBotRepository.CommitAsync(); task.At = endDateTime; var pmMessage = MessageGenerator.CreateUpdatePMMessage(guild, endDateTime); await user.SendPrivateMessageAsync(pmMessage); return(MessageGenerator.CreateUpdateChannelMessage(user, endDateTime)); }