using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Conventions; using MongoDB.Bson.Serialization.Serializers; using Core.DomainObjects; using Core.DomainObjects.Pages; using Core.DomainObjects.PageSections; using Core.DomainObjects.Documents; namespace DataProviders { public class Mappings { public static void RegisterClassMap() { ConventionRegistry.Register("MyConventions", new ConventionPack { new CamelCaseElementNameConvention(), new IgnoreIfNullConvention(true) }, type => true); // https://kevsoft.net/2020/06/25/storing-guids-as-strings-in-mongodb-with-csharp.html BsonSerializer.RegisterSerializer(new GuidSerializer(BsonType.String)); #region Primitives if (!BsonClassMap.IsClassMapRegistered(typeof(Address))) { BsonClassMap.RegisterClassMap
(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Author))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Category))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Comment))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Contact))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Feature))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(FormItem))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Header))) { BsonClassMap.RegisterClassMap
(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Image))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Link))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Localization))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(MenuItem))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Reviewer))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.SetIsRootClass(true); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Route))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(Testimonial))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } #endregion #region PageSections if (!BsonClassMap.IsClassMapRegistered(typeof(BillingAddressSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(CallToActionSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(CommentsSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(FeaturedBlogSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(FeaturedBlogSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(FeaturesSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(PaymentSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ProductSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ProductsSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(RelatedProductsSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(SettingsSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ShippingAddressSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ShopItemsSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(SummarySection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(TestimonialsSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(TitleSection))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } #endregion #region Pages if (!BsonClassMap.IsClassMapRegistered(typeof(BlogCatalogPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(BlogItemPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(HomePage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ShopCartPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ShopCatalogPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ShopCheckoutPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(ShopItemPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(SignInPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(SignUpPage))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } #endregion #region BlogItem if (!BsonClassMap.IsClassMapRegistered(typeof(BlogItem))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } #endregion #region Content if (!BsonClassMap.IsClassMapRegistered(typeof(Content))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); //cm.GetMemberMap(c => c.Event) // .SetSerializer(new EnumerationSerializer()); }); } #endregion #region ShopItem if (!BsonClassMap.IsClassMapRegistered(typeof(ShopItem))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } #endregion #region User if (!BsonClassMap.IsClassMapRegistered(typeof(User))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); } #endregion } } }