Ejemplo n.º 1
0
        public ICallistoUpdate <Person> CreateAddAttributeOperation(Guid id, PersonAttributeDto command)
        {
            _logger.LogInformation("Creating callisto operation object");
            UpdateDefinition <Person> update = Builders <Person> .Update.Push(a => a.Attributes, (PersonAttribute)command);

            return(_updateOperationFactory.CreateUpdateById(id, update));
        }
Ejemplo n.º 2
0
        public ICallistoUpdate <Person> CreateRemoveAttributeOperation(Guid id, PersonAttributeDto command)
        {
            _logger.LogInformation("Creating callisto operation object");
            FilterDefinition <PersonAttribute> pullFilter = Builders <PersonAttribute> .Filter.Eq(a => a.AttributeName, command.AttributeName);

            UpdateDefinition <Person> update = Builders <Person> .Update.PullFilter(a => a.Attributes, pullFilter);

            return(_updateOperationFactory.CreateUpdateById(id, update));
        }
Ejemplo n.º 3
0
        public ICallistoUpdate <Person> CreateUpdateAttributeOperation(Guid id, PersonAttributeDto command)
        {
            _logger.LogInformation("Creating callisto operation object");
            FilterDefinition <Person> filter = Builders <Person> .Filter.Where(a => a.Id == id && a.Attributes
                                                                               .Any(at => at.AttributeName == command.AttributeName));

            UpdateDefinition <Person> update = Builders <Person> .Update.Set(x => x.Attributes[-1].AttributeValue, command.AttributeValue);

            return(_updateOperationFactory.CreateUpdate(update, filter));
        }