Ejemplo n.º 1
0
        private async Task RaiseAdvertConfirmMessage(AdvertDbModel model)
        {
            var topicArn = _configuration.GetValue <string>("TopicArn");

            using (var client = new AmazonSimpleNotificationServiceClient())
            {
                var msg = JsonConvert.SerializeObject(_mapper.Map <AdvertConfirmedMessage>(model));
                await client.PublishAsync(topicArn, msg);
            }
        }
        public async Task <string> Add(AdvertModel model)
        {
            AdvertDbModel dbModel = _mapper.Map <AdvertDbModel>(model);

            dbModel.Id = Guid.NewGuid().ToString();
            dbModel.CreatedDateTime = DateTime.UtcNow;
            dbModel.AdvertStatus    = AdvertStatus.Pending;

            //using AmazonDynamoDBClient client = new();
            using DynamoDBContext context = new(_amazonDynamoDBClient);
            await context.SaveAsync(dbModel);

            return(dbModel.Id);
        }
        public async Task <bool> Confirm(ConfirmAdvertModel model)
        {
            //using AmazonDynamoDBClient client = new();
            using DynamoDBContext context = new(_amazonDynamoDBClient);
            AdvertDbModel dbModel = await context.LoadAsync <AdvertDbModel>(model.Id);

            if (dbModel == null)
            {
                throw new KeyNotFoundException($"A Record with id={model.Id} was not found");
            }
            if (model.Status == AdvertStatus.Active)
            {
                dbModel.AdvertStatus = model.Status;
                await context.SaveAsync(dbModel);

                return(true);
            }
            else
            {
                await context.DeleteAsync(dbModel);

                return(false);
            }
        }