private Task SyncAmenityAsync(IQueryDbContext queryDb, Domain.Entities.Amenity dbAmenity, CancellationToken stoppingToken)
        {
#pragma warning disable CS0251 // Indexing an array with a negative index (Justification: Element at negative index translates to $ - has special meaning to MongoDB.Driver)

            var filter = Builders <ApartmentModel> .Filter.ElemMatch(a => a.Amenities, amenity => amenity.Id == dbAmenity.Id);

            var update = Builders <ApartmentModel> .Update.Set(a => a.Amenities[-1].Name, dbAmenity.Name);

            if (dbAmenity.IsDeleted)
            {
                update = Builders <ApartmentModel> .Update.PullFilter(a => a.Amenities, amenity => amenity.Id == dbAmenity.Id);
            }

            return(queryDb.Apartments.UpdateManyAsync(filter, update));

#pragma warning restore CS0251
        }
Example #2
0
 private static AmenityModel MapAmenity(Domain.Entities.Amenity a)
 {
     return(new AmenityModel {
         Id = a.Id, Name = a.Name
     });
 }