public async Task MuteUser(MuteCommand command, Contexts contexts) { var userToMute = await this._usersService.GetUserByIdAsync(contexts.Server, command.User); if (userToMute == null || userToMute.Id == this._usersService.GetBot().Id) { throw new UserNotFoundException(command.User.GetUserMention()); } var timeRange = TimeRange.FromNow(DateTime.UtcNow + command.Time); //todo: change DateTime.UtcNow to Contexts.SentAt var muteEvent = new MuteEvent(userToMute.Id, timeRange, command.Reason, contexts.Server.Id, contexts.Channel.Id); await this._mutingService.MuteUserOrOverwrite(contexts, muteEvent, userToMute); this._unmutingService.UnmuteInFuture(contexts, muteEvent, userToMute); }