protected async Task InvokeAsync()
        {
            var sqsClient    = AwsClientsSingletonsProvider.GetSqsClient();
            var queueService = new QueueService(sqsClient);

            await queueService.AddMessageAsync(new ItemMessage(Guid.NewGuid()), GetQueueUrl());
        }
Ejemplo n.º 2
0
        private static S3Repository GetS3Repository()
        {
            var s3Client = AwsClientsSingletonsProvider.GetS3Client();
            var s3Config = ConfigurationReader.GetS3Config();

            return(new S3Repository(s3Client, s3Config));
        }
Ejemplo n.º 3
0
        protected override async Task HandleAsync(AddItemLambdaRequest lambdaRequest)
        {
            var newItem = lambdaRequest.ToNewItem();

            var s3Client     = AwsClientsSingletonsProvider.GetS3Client();
            var s3Config     = ConfigurationReader.GetS3Config();
            var s3Repository = new S3Repository(s3Client, s3Config);
            await s3Repository.PutNewItemAsync(newItem);

            Logger.Log("New item saved", "INFO");

            var sqsClient    = AwsClientsSingletonsProvider.GetSqsClient();
            var queueService = new QueueService(sqsClient, ConfigurationReader.GetSqsConfig());
            await queueService.AddMessageAsync(new ItemMessage(newItem.Id));

            Logger.Log("New item added event sent", "INFO");
        }
Ejemplo n.º 4
0
        protected override async Task HandleAsync(SQSEvent sqsEvent)
        {
            var itemMessage  = ExtractItemMessage(sqsEvent, LambdaContext, XRayTracing);
            var s3Repository = GetS3Repository();

            var item = await s3Repository.GetNewItemAsync(itemMessage.ItemId);

            var doneItem = item.Finish(DateTime.UtcNow);

            Logger.Log("New item finished", "INFO");
            await s3Repository.PutDoneItemAsync(doneItem);

            Logger.Log("Done item saved", "INFO");

            await AwsClientsSingletonsProvider.GetLambdaClient()
            .InvokeAsync(
                new InvokeRequest
            {
                InvocationType = InvocationType.Event,
                FunctionName   = ConfigurationReader.GetNotifyLambdaName(),
                Payload        = JsonSerializer.Serialize(new AddItemLambdaRequest("test connection"))
            }
                );
        }