Example #1
0
        private async Task RaiseAdvertConfirmedEvent(AdvertConfirmModel model)
        {
            var snsTopicUrn = _configuration.GetValue <string>("AdvertApiSnsTopic");
            var dbContext   = await _advertServiceStore.GetById(model.Id);

            using (var client = new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.USEast1))
            {
                var message = new AdvertConfirmedMessages
                {
                    Id    = model.Id,
                    Title = dbContext.Title
                };
                var messageJson = JsonConvert.SerializeObject(message);
                await client.PublishAsync(snsTopicUrn, messageJson);
            }
        }
Example #2
0
        public async Task <IActionResult> Confirm(AdvertConfirmModel model)
        {
            try
            {
                await _advertServiceStore.Confirm(model);
                await RaiseAdvertConfirmedEvent(model);
            }
            catch (KeyNotFoundException)
            {
                return(new NotFoundResult());
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }

            return(new OkResult());
        }
        public async Task Confirm(AdvertConfirmModel model)
        {
            using (var _client = new AmazonDynamoDBClient(Amazon.RegionEndpoint.USEast1))
            {
                using (var _context = new DynamoDBContext(_client))
                {
                    var advert = await _context.LoadAsync <AdvertDynamoDBModel>(model.Id);

                    if (advert == null)
                    {
                        throw new KeyNotFoundException($"Record is not found for corresponding ID = {advert.Id}");
                    }
                    if (model.Status == AdvertStatus.Active)
                    {
                        advert.Status = AdvertStatus.Active;
                        await _context.SaveAsync(advert);
                    }
                    else
                    {
                        await _context.DeleteAsync <AdvertDynamoDBModel>(advert);
                    }
                }
            }
        }