Ejemplo n.º 1
0
        private static async Task ProcessOptions(ProgramOptions options, ServiceProvider serviceProvider)
        {
            var logger = serviceProvider.GetRequiredService <ILogger <Program> >();
            var resourceGroupWrapper = serviceProvider.GetService <ResourceGroupWrapper>();

            if (resourceGroupWrapper == null)
            {
                logger.LogError("Unable to create {Name}. Aborting.", nameof(ResourceGroupWrapper));
                return;
            }

            var deletedResourceGroups = await resourceGroupWrapper.DeleteNonLockedResourceGroups(options.Simulate).ConfigureAwait(false);

            if (!string.IsNullOrWhiteSpace(options.Channel))
            {
                var slackClient = serviceProvider.GetRequiredService <ISlackClient>();
                if (slackClient == null)
                {
                    logger.LogError("Unable to create {Name}. Aborting.", nameof(ISlackClient));
                    return;
                }
                var context = new MessageContext
                {
                    DeletedResourceGroups = deletedResourceGroups,
                    WasSimulated          = options.Simulate
                };

                var message = MessageUtil.CreateDeleteInformationMessage(options.Channel, context);
                await slackClient.PostMessage(message).ConfigureAwait(false);
            }
        }
        public async Task ReportToSlack([ActivityTrigger] SlackReportingContext slackReportingContext)
        {
            if (slackReportingContext is null)
            {
                throw new ArgumentNullException(nameof(slackReportingContext));
            }

            var context = new MessageUtil.MessageContext
            {
                DeletedResourceGroups = slackReportingContext.DeletedResourceGroups,
                WasSimulated          = _cleanupConfiguration.Simulate
            };
            var message = MessageUtil.CreateDeleteInformationMessage(_cleanupConfiguration.SlackChannel, context);
            await _slackClient.PostMessage(message).ConfigureAwait(false);
        }