public void Configure(EntityTypeBuilder <MapHiveUser> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(MapHiveUser), "users", "mh_meta");

            builder.ApplyMapHiveUserBaseConfiguration();

            builder.Property(p => p.Forename).HasColumnName("forename");
            builder.Property(p => p.Surname).HasColumnName("surname");
            builder.Property(p => p.Fullname).HasColumnName("full_name");
            builder.Property(p => p.ContactPhone).HasColumnName("contact_phone");
            builder.Property(p => p.Slug).HasColumnName("slug");
            builder.Property(p => p.Bio).HasColumnName("bio");
            builder.Property(p => p.Company).HasColumnName("company");
            builder.Property(p => p.Department).HasColumnName("department");
            builder.Property(p => p.Location).HasColumnName("location");
            builder.Property(p => p.GravatarEmail).HasColumnName("gravatar_email");

            builder.Property(p => p.ProfilePicture).HasColumnName("profile_picture");


            builder.Property(p => p.IsOrgUser).HasColumnName("is_org_user");
            builder.Property(p => p.UserOrgId).HasColumnName("user_org_id");
            builder.Property(p => p.VisibleInCatalogue).HasColumnName("visible_in_catalogue");
            builder.Property(p => p.ParentOrganizationId).HasColumnName("parent_org_id");

            builder.Ignore(p => p.OrganizationRole);

            builder.HasIndex(t => t.Slug)
            .HasName($"idx_{nameof(MapHiveUser).ToColumnName()}_uq_slug")
            .IsUnique();
        }
        public void Configure(EntityTypeBuilder <Application> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(Application), "applications", "mh_meta");

            builder.Property(p => p.ShortName).HasColumnName("short_name");
            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");
            builder.Property(p => p.Urls).HasColumnName("urls");
            builder.Property(p => p.UseSplashscreen).HasColumnName("use_splashscreen");
            builder.Property(p => p.RequiresAuth).HasColumnName("requires_auth");
            builder.Property(p => p.IsCommon).HasColumnName("is_common");
            builder.Property(p => p.IsDefault).HasColumnName("is_default");
            builder.Property(p => p.IsHome).HasColumnName("is_home");
            builder.Property(p => p.IsHive).HasColumnName("is_hive");
            builder.Property(p => p.IsApi).HasColumnName("is_api");
            builder.Property(p => p.HasDesktopVersion).HasColumnName("has_desktop");
            builder.Property(p => p.HasMobileVersion).HasColumnName("has_mobile");
            builder.Property(p => p.ProviderId).HasColumnName("provider_id");

            builder.Ignore(p => p.LicenseOptions);
            builder.Property(p => p.LicenseOptionsSerialized).HasColumnName("license_options");

            builder.Ignore(p => p.VisualIdentification);
            builder.Property(p => p.VisualIdentificationSerialized).HasColumnName("visual_identification");

            builder.Ignore(p => p.OrgUserAppAccessCredentials);

            builder.HasIndex(p => p.ShortName)
            .HasName($"idx_{nameof(Application).ToColumnName()}_uq_short_name")
            .IsUnique();
        }
Ejemplo n.º 3
0
        public void Configure(EntityTypeBuilder <Team> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(Team), "teams", "mh_meta");

            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");
        }
        public static void ApplyMapLayerBaseConfiguration <TEntity>(this EntityTypeBuilder <TEntity> builder, string entityName, string tableName, string schema = null)
            where TEntity : LayerBase
        {
            builder.ApplyIBaseConfiguration(entityName, tableName);

            builder.Property(p => p.Identifier).HasColumnName("identifier");

            builder.Property(p => p.IsDefault).HasColumnName("is_default");
            builder.Property(p => p.Type).HasColumnName("type").HasConversion <int>();

            builder.Property(p => p.SourceLayerId).HasColumnName("source_layer_id");

            builder.Property(p => p.Order).HasColumnName("order");

            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");

            builder.Property(p => p.Visible).HasColumnName("visible");

            builder.Property(p => p.VisibilityScaleMin).HasColumnName("visibility_scale_min");
            builder.Property(p => p.VisibilityScaleMax).HasColumnName("visibility_scale_max");

            builder.Property(p => p.DataStoreId).HasColumnName("data_store_id");

            //ignore convenience properties
            builder.Ignore(p => p.SourceLayer);
        }
        /// <summary>
        /// Applies ISimpleDictionary confoguration
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="builder"></param>
        /// <param name="entityName"></param>
        /// <param name="tableName"></param>
        /// <param name="schema"></param>
        public static void ApplyISimpleDictionaryConfiguration <TEntity>(this EntityTypeBuilder <TEntity> builder, string entityName, string tableName, string schema = null)
            where TEntity : class, IBase, ISimpleDictionary
        {
            builder.ApplyIBaseConfiguration(entityName, tableName, schema);

            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");
        }
        public void Configure(EntityTypeBuilder <Lang> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(Lang), "langs", "mh_localization");

            builder.Property(p => p.LangCode).HasColumnName("lang_code");
            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");
            builder.Property(p => p.IsDefault).HasColumnName("is_default");
        }
Ejemplo n.º 7
0
        public void Configure(EntityTypeBuilder <Role> builder)
        {
            //roles take the default off the model builder, so can be reused in other schemas too!
            builder.ApplyIBaseConfiguration(nameof(Role), "roles");

            builder.Property(p => p.Identifier).HasColumnName("identifier");
            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");

            builder.Ignore(p => p.Privileges);
            builder.Property(p => p.PrivilegesSerialized).HasColumnName("privileges");
        }
        public void Configure(EntityTypeBuilder <LocalizationClass> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(LocalizationClass), "localization_classes", "mh_localization");

            builder.Property(p => p.ApplicationName).HasColumnName("application_name");
            builder.Property(p => p.ClassName).HasColumnName("class_name");
            builder.Property(p => p.InheritedClassName).HasColumnName("inherited_class_name");

            builder.Ignore(p => p.TranslationKeys);

            builder.HasIndex(t => new { t.ApplicationName, t.ClassName }) //this should create a unique composite field idx!
            .HasName($"idx_{nameof(LocalizationClass).ToColumnName()}_uq_app_name_class_name")
            .IsUnique();
        }
        public void Configure(EntityTypeBuilder <Resource> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(Resource), "resources");

            builder.Property(p => p.OwnerId).HasColumnName("owner_id");
            builder.Property(p => p.OwnerTypeId).HasColumnName("owner_type_id");
            builder.Property(p => p.Identifier).HasColumnName("identifier");
            builder.Property(p => p.OriginalFileName).HasColumnName("original_file_name");
            builder.Property(p => p.Mime).HasColumnName("mime");
            builder.Property(p => p.Data).HasColumnName("data");

            builder.HasIndex(p => p.OwnerId)
            .HasName($"idx_{nameof(Resource).ToColumnName()}_owner_id");
        }
        public static void ApplyMapDataStoreBaseConfiguration <TEntity>(this EntityTypeBuilder <TEntity> builder,
                                                                        string entityName, string tableName, string schema = null)
            where TEntity : DataStore
        {
            builder.ApplyIBaseConfiguration(entityName, tableName);

            builder.Property(p => p.InUse).HasColumnName("name");
            builder.Property(p => p.InUse).HasColumnName("in_use");

            builder.Property(p => p.DataSourceSerialized).HasColumnName("data_source");
            builder.Ignore(p => p.DataSource);

            builder.Property(p => p.LinkedDataStoreIdsSerialized).HasColumnName("linked_data_stores");
            builder.Ignore(p => p.LinkedDataStoreIds);
            builder.Ignore(p => p.LinkedDataStores);
        }
Ejemplo n.º 11
0
        public void Configure(EntityTypeBuilder <Token> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(Token), "tokens", "mh_meta");

            builder.Property(p => p.OrganizationId).HasColumnName("organization_id");
            builder.Ignore(p => p.ApplicationIds);
            builder.Property(p => p.ApplicationIdsSerialized).HasColumnName("application_ids");
            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");

            builder.Ignore(p => p.Referrers);
            builder.Property(p => p.ReferrersSerialized).HasColumnName("referrers");

            builder.Property(p => p.CanIgnoreReferrer).HasColumnName("can_ignore_referrer");
            builder.Property(p => p.IsMaster).HasColumnName("is_master");
        }
        public void Configure(EntityTypeBuilder <OrganizationDatabase> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(OrganizationDatabase), "organization_databases", "mh_meta");

            builder.Property(p => p.OrganizationId).HasColumnName("organization_id");
            builder.Property(p => p.Identifier).HasColumnName("identifier");
            builder.Property(p => p.UserName).HasColumnName("user_name");
            builder.Property(p => p.Pass).HasColumnName("password");
            builder.Property(p => p.ServerHost).HasColumnName("server_host");
            builder.Property(p => p.ServerPort).HasColumnName("server_port");
            builder.Property(p => p.DbName).HasColumnName("db_name");

            builder.Property(p => p.ServiceUserName).HasColumnName("service_user_name");
            builder.Property(p => p.ServiceUserPass).HasColumnName("service_user_password");
            builder.Property(p => p.ServiceDb).HasColumnName("service_db_name");

            builder.Property(p => p.DataSourceProvider).HasColumnName("provider");

            builder.HasIndex(p => new { p.OrganizationId, p.Identifier }) //this should create a unique composite field idx!
            .HasName($"idx_{nameof(OrganizationDatabase).ToColumnName()}_uq_org_uuid_identifier")
            .IsUnique();
        }
        public static void ApplyTranslationKeyBaseConfiguration <TEntity>(this EntityTypeBuilder <TEntity> builder, string entityName, string tableName, string schema = null)
            where TEntity : TranslationKeyBase
        {
            builder.ApplyIBaseConfiguration(entityName, tableName, schema);

            builder.Property(p => p.LocalizationClassUuid).HasColumnName("localization_class_uuid");

            builder.Property(p => p.Key).HasColumnName("key");

            builder.Property(p => p.Inherited).HasColumnName("inherited");
            builder.Property(p => p.Overwrites).HasColumnName("overwrites");

            //Stuff below would be true if the class derived from ILocalizationConfiguration; this does not seem to work though...
            //and need to set the mapping explicitly. Looks like EF is not always happy with the interfaces.
            //Note: Translations dobe via ILocalizationConfiguration
            builder.Ignore(p => p.Translations);
            builder.Property(p => p.TranslationsSerialized).HasColumnName("translations");


            builder.HasIndex(t => new { t.LocalizationClassUuid, t.Key }) //this should create a unique composite field idx!
            .HasName($"idx_{nameof(TranslationKey).ToColumnName()}_uq_localization_class_translation_key")
            .IsUnique();
        }
Ejemplo n.º 14
0
        public void Configure(EntityTypeBuilder <EmailTemplateLocalization> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(EmailTemplateLocalization), "email_templates", "mh_localization");

            builder.Property(p => p.ApplicationIdentifier).HasColumnName("application_identifier");
            builder.Property(p => p.Name).HasColumnName("name");
            builder.Property(p => p.Description).HasColumnName("description");
            builder.Property(p => p.Identifier).HasColumnName("identifier");
            builder.Property(p => p.IsBodyHtml).HasColumnName("is_body_html");

            //Stuff below would be true if the class derived from ILocalizationConfiguration; this does not seem to work though...
            //Note: Translations dobe via ILocalizationConfiguration
            builder.Ignore(p => p.Translations);
            builder.Property(p => p.TranslationsSerialized).HasColumnName("translations");


            builder.HasIndex(t => t.ApplicationIdentifier)
            .HasName($"idx_{nameof(EmailTemplateLocalization).ToColumnName()}_app_identifier");

            builder.HasIndex(t => new { ApplicationName = t.ApplicationIdentifier, t.Identifier }) //this should create a unique composite field idx!
            .HasName($"idx_{nameof(EmailTemplateLocalization).ToColumnName()}_uq_app_name_translation_identifier")
            .IsUnique();
        }
        public void Configure(EntityTypeBuilder <Organization> builder)
        {
            builder.ApplyIBaseConfiguration(nameof(Organization), "organizations", "mh_meta");

            builder.Property(p => p.Slug).HasColumnName("slug");
            builder.Property(p => p.DisplayName).HasColumnName("display_name");
            builder.Property(p => p.Description).HasColumnName("description");
            builder.Property(p => p.Location).HasColumnName("location");
            builder.Property(p => p.Url).HasColumnName("url");
            builder.Property(p => p.Email).HasColumnName("email");
            builder.Property(p => p.GravatarEmail).HasColumnName("gravatar_email");
            builder.Ignore(p => p.ProfilePicture);
            builder.Property(p => p.ProfilePictureId).HasColumnName("profile_picture_id");
            builder.Property(p => p.BillingEmail).HasColumnName("billing_email");
            builder.Property(p => p.BillingAddress).HasColumnName("billing_address");

            builder.Ignore(p => p.BillingExtraInfo);
            builder.Property(p => p.BillingExtraInfoSerialized).HasColumnName("billing_extra_info");

            builder.Ignore(p => p.LicenseOptions);
            builder.Property(p => p.LicenseOptionsSerialized).HasColumnName("license_options");

            builder.Ignore(p => p.VisualIdentification);
            builder.Property(p => p.VisualIdentificationSerialized).HasColumnName("visual_identification");

            builder.Ignore(p => p.Admins);
            builder.Ignore(p => p.Owners);
            builder.Ignore(p => p.Roles);
            builder.Ignore(p => p.Users);
            builder.Ignore(p => p.Applications);
            builder.Ignore(p => p.Databases);
            builder.Ignore(p => p.EncryptedDatabases);

            builder.HasIndex(t => t.Slug)
            .HasName($"idx_{nameof(Organization).ToColumnName()}_uq_slug")
            .IsUnique();
        }