public async Task <StoryContent> FindByQuery(IQueryParameter query, CancellationToken cancellationToken)
        {
            var storyId   = ((StoryQuery)query).StoryId;
            var dbContext = _clientFactory.GetDynamoDBContext();

            return(await dbContext.LoadAsync <StoryContent>(storyId, _dynamoDBOperationConfig, cancellationToken));
        }
        public async Task <List <Person> > GetAllPeople(CancellationToken cancellationToken)
        {
            var dbContext = _awsClientFactory.GetDynamoDBContext();
            var results   = await dbContext.ScanAsync <Person>(new List <ScanCondition>(), _operationConfig).GetRemainingAsync(cancellationToken);

            return(results);
        }
예제 #3
0
        public async Task <TEntity> FindByQuery(IQueryParameter query, CancellationToken cancellationToken)
        {
            var personQuery   = (PersonIdentifier)query;
            var dynamoContext = _clientFactory.GetDynamoDBContext();


            var dynamoOperationContext = new DynamoDBOperationConfig()
            {
                ConditionalOperator = ConditionalOperatorValues.And,
                TableNamePrefix     = "familybryce."
            };


            if (personQuery.PersonId.HasValue)
            {
                return(await dynamoContext.LoadAsync <TEntity>(personQuery.PersonId.Value, _dynamoDBOperationConfig, cancellationToken));
            }
            else
            {
                dynamoOperationContext.QueryFilter.Add(new ScanCondition("FirstName", ScanOperator.Equal, personQuery.FirstName));
                dynamoOperationContext.QueryFilter.Add(new ScanCondition("LastName", ScanOperator.Equal, personQuery.LastName));
                dynamoOperationContext.QueryFilter.Add(new ScanCondition("EmailAddress", ScanOperator.Equal, personQuery.EmailAddress));
                var person = await dynamoContext.QueryAsync <TEntity>(dynamoOperationContext).GetRemainingAsync();

                return(person.FirstOrDefault());
            }
        }
        public async Task <List <FamilyEvent> > GetAllEventsStartingAfter(DateTime referenceDate, CancellationToken cancellation)
        {
            var dbContext = _awsClientFactory.GetDynamoDBContext();

            var batchGetBatches = new List <BatchGet <FamilyEvent> >();

            return(await dbContext.ScanAsync <FamilyEvent>(new List <ScanCondition>()
            {
                new ScanCondition("StartDate", ScanOperator.GreaterThan, referenceDate)
            }, _operationConfig).GetRemainingAsync(cancellation));
        }
예제 #5
0
        public async Task <IEnumerable <Model.Gallery> > FindAllByFamilyEvent(Guid familyEventId, CancellationToken cancellationToken)
        {
            var dbContext = _awsClientFactory.GetDynamoDBContext();

            var dynamoOperationContext = new DynamoDBOperationConfig()
            {
                ConditionalOperator = ConditionalOperatorValues.And,
                TableNamePrefix     = "familybryce.",
                IndexName           = "FamilyEvent-DefaultFamilyEventGallery-index"
            };

            return(await dbContext.QueryAsync <Model.Gallery>(familyEventId, QueryOperator.Equal, new[] { (object)true }, dynamoOperationContext).GetRemainingAsync(cancellationToken));
        }
예제 #6
0
        public async Task <List <StoryIndex> > GetStoryIndexes(CancellationToken cancellationToken)
        {
            var dbContext = _clientFactory.GetDynamoDBContext();

            var dynamoOperationContext = new DynamoDBOperationConfig()
            {
                TableNamePrefix = "familybryce.",
                IndexName       = "ID-index"
            };

            var results = await dbContext.ScanAsync <StoryIndex>(new List <ScanCondition>(), dynamoOperationContext).GetRemainingAsync(cancellationToken);

            return(results);
        }
        public async Task Save(TEntity entity, CancellationToken cancellationToken)
        {
            var dynamoContext = _clientFactory.GetDynamoDBContext();

            entity.LastUpdated = DateTime.Now;
            await dynamoContext.SaveAsync(entity, _dynamoDBOperationConfig, cancellationToken);
        }
        public async Task <TEntity> FindByQuery(IQueryParameter query, CancellationToken cancellationToken)
        {
            var personQuery   = (UnionQuery)query;
            var dynamoContext = _clientFactory.GetDynamoDBContext();


            var dynamoOperationContext = new DynamoDBOperationConfig()
            {
                ConditionalOperator = ConditionalOperatorValues.And,
                TableNamePrefix     = "familybryce.",
                IndexName           = "Members-index",
            };

            var queryResult = await dynamoContext.QueryAsync <TEntity>(BuildIndex(personQuery.Partner1Id, personQuery.Partner2Id), dynamoOperationContext).GetRemainingAsync(cancellationToken);

            return(queryResult.FirstOrDefault());
        }
예제 #9
0
        public async Task <TEntity> Load(TId id, CancellationToken cancellationToken)
        {
            var context = _awsContext.GetDynamoDBContext();

            return(await context.LoadAsync <TEntity>(id));
        }
예제 #10
0
        public async Task Save(TEntity entity, CancellationToken cancellationToken)
        {
            var context = _awsClientFactory.GetDynamoDBContext();

            await context.SaveAsync(entity, _dynamoDBOperationConfig, cancellationToken);
        }
예제 #11
0
        public async Task <Model.ImageReference> Load(Guid imageId, Guid galleryId, CancellationToken cancellationToken)
        {
            var dynamoContext = _awsClientFactory.GetDynamoDBContext();

            return(await dynamoContext.LoadAsync <Model.ImageReference>(imageId, galleryId, _operationConfig, cancellationToken));
        }