Ejemplo n.º 1
0
        public async Task <IActionResult> UpdateScheduledMessagesPlugin([FromRoute] string guildId,
                                                                        [FromBody] ScheduledMessagesPluginDto scheduledMessagesPluginDto)
        {
            var result = await _pluginService.UpdateScheduledMessagesPluginAsync(guildId, scheduledMessagesPluginDto,
                                                                                 await _userManager.GetUserAsync(User));

            if (!result)
            {
                return(BadRequest());
            }

            return(Ok());
        }
Ejemplo n.º 2
0
        public async Task <bool> UpdateScheduledMessagesPluginAsync(string guildId, ScheduledMessagesPluginDto scheduledMessagesPluginDto, User user)
        {
            try
            {
                var guild = await _guildService.GetByGuildIdAsync(guildId);

                var discordGuild = await _botService.GetGuildAsync(guildId);

                var member = await discordGuild.GetMemberAsync(ulong.Parse(user.UserId));

                var hasPermission = await CheckIfHasPermissionAsync(member, discordGuild, guild);

                if (!hasPermission)
                {
                    return(false);
                }

                if (scheduledMessagesPluginDto.IsEnabled != guild.ScheduledMessagesPlugin.IsEnabled)
                {
                    guild.ScheduledMessagesPlugin.IsEnabled = scheduledMessagesPluginDto.IsEnabled;
                }

                var initiator =
                    await _userService.GetByUsernameAndDiscriminatorAsync(user.UserName, user.Discriminator);

                // TODO: log

                await _pluginRepository.SaveAllAsync();

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(false);
            }
        }