{#- This file can be edited -#} /** * This is a generated file. Do not edit, changes will be overwritten. */ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Data; using Microsoft.EntityFrameworkCore; using Npgsql.EntityFrameworkCore.PostgreSQL; using WebApi.DataAccess.Models; namespace WebApi.DataAccess { public partial class DatabaseContext : DbContext { private readonly string _connectionString; public DatabaseContext(string connectionString) { _connectionString = connectionString; } public DatabaseContext(DbContextOptions options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (_connectionString != null) { optionsBuilder.UseNpgsql(_connectionString); } } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasPostgresExtension("uuid-ossp"); {% for table in dataSource.getTables() %}{% if (table.hasAny()) %} modelBuilder.Entity<{{ table.getName() | escapeReservedWords }}>().ToTable("{{ table.getName() | escapeString }}"); {% for column in table.getColumns() %}{% if (column.isSelected()) %} modelBuilder.Entity<{{ table.getName() | escapeReservedWords }}>() .Property(e => e.{{ column.getName() | escapeReservedWords }}) .HasColumnName("{{ column.getName() | escapeString }}"); {% endif %}{% endfor %} modelBuilder.Entity<{{ table.getName() | escapeReservedWords }}>() .HasKey(c => new { {% for column in table.getPrimaryKeys() %}{% if (column.isSelected()) %}c.{{ column.getName() | escapeReservedWords }}{% if not (loop.last) %}, {% endif %}{% endif %}{% endfor %} }); {% for column in table.getColumns() %}{% if (column.isSelected()) and (column.hasDefaultValue()) %} modelBuilder.Entity<{{ table.getName() | escapeReservedWords }}>() .Property(e => e.{{ column.getName() | escapeReservedWords }}) .HasDefaultValueSql("{{ column.getDefaultValue() | escapeString }}"); {% endif %}{% endfor %} {% for fk in table.getSourceForeignKeys() %}{% if (fk.isSelected()) %} modelBuilder.Entity<{{ fk.getSourceTable().getName() | escapeReservedWords }}>() .HasOne(e => e.{{ fk.getSourceForeignKeyName() | escapeReservedWords }}) .WithMany(e => e.{{ fk.getTargetForeignKeyName() | escapeReservedWords }}) .HasForeignKey(e => new { {% for column in fk.getSourceColumns() %}e.{{ column.getName | escapeReservedWords | escapeString }}{% if not (loop.last) %}, {% endif %}{% endfor %} }) .HasConstraintName("{{ fk.getName() | escapeString }}"); {% endif %}{% endfor %} {% endif %}{% endfor %} } {% for table in dataSource.getTables() %}{% if (table.hasAny()) %} public virtual DbSet<{{ table.getName() | escapeReservedWords }}> {{ table.getName() | escapeReservedWords }} { get; set; } {% endif %}{% endfor %} {% for sp in dataSource.getStoredProcedures() %}{% if (sp.isSelected()) %} public static {% if (sp.getType().getLanguageTypeName() == null) %}void{% else %}{{ sp.getType().getLanguageTypeName() }}{% endif %} {{ sp.getName() | escapeReservedWords }}({% for arg in sp.getArguments() %}{{ arg.getType().getLanguageTypeName() }} {{ arg.getName() | escapeReservedWords }}{% if not (loop.last) %}, {% endif %}{% endfor %}) { throw new NotImplementedException(); } public {% if (sp.getType().getLanguageTypeName() == null) %}void{% else %}{{ sp.getType().getLanguageTypeName() }}{% endif %} sp_{{ sp.getName() | escapeReservedWords }}({% for arg in sp.getArguments() %}{{ arg.getType().getLanguageTypeName() }} {{ arg.getName() | escapeReservedWords }}{% if not (loop.last) %}, {% endif %}{% endfor %}) { using (var connection = Database.GetDbConnection()) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandType = CommandType.StoredProcedure; command.CommandText = "{{ sp.getName() | escapeString }}"; {% for arg in sp.getArguments() %} var arg_{{ arg.getName() }} = command.CreateParameter(); arg_{{ arg.getName() }}.ParameterName = "{{ arg.getName() | escapeString }}"; arg_{{ arg.getName() }}.Direction = ParameterDirection.Input; arg_{{ arg.getName() }}.Value = {{ arg.getName() | escapeReservedWords }}; command.Parameters.Add(arg_{{ arg.getName() }}); {% endfor %} using (var reader = command.ExecuteReader()) { {% if (sp.getType().isSetOf()) %} var value = new List<{{ sp.getType().getLanguageBaseTypeName() }}>(); {% else %} var value = default({{ sp.getType().getLanguageTypeName() }}); {% endif %} while (reader.Read()) { {% if ((sp.getType().getLanguageType() != null)) %} var item = new {{ sp.getType().getLanguageBaseTypeName() }} { {% for col in sp.getType().getLanguageType().getColumns() %}{{ col.getName() | escapeReservedWords }} = ({{ col.getType().getLanguageTypeName() }}) reader.GetValue({{ loop.index0 }}){% if not (loop.last) %},{% endif %} {% endfor %} }; {% else %} var item = ({{ sp.getType().getLanguageBaseTypeName() }}) reader.GetValue(0); {% endif %} {% if (sp.getType().isSetOf()) %} value.Add(item); {% else %} value = item; {% endif %} } connection.Close(); {% if (sp.getType().getLanguageTypeName() != null) %} return value; {% endif %} } } } } {% endif %}{% endfor %} } }