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 }
private static AmenityModel MapAmenity(Domain.Entities.Amenity a) { return(new AmenityModel { Id = a.Id, Name = a.Name }); }