private VehicleMake ValidateMake(string make)
        {
            var vehicleMake = VehicleMake.FromString(make);

            if (vehicleMake == VehicleMake.Null)
            {
                throw new ArgumentException("Vehicle make is required!");
            }
            return(vehicleMake);
        }
Beispiel #2
0
        protected override void OnModelCreating(ModelBuilder builder)
        {
            // Vehicle entity
            builder.Entity <Vehicle>()
            .ToTable("Vehicle")
            .HasKey(e => e.Id);

            /*
             * builder.Entity<Vehicle>()
             *  .Property(v => v.Id)
             *  .ValueGeneratedOnAdd();
             */

            builder.Entity <Vehicle>()
            .Property(e => e.Vin)
            .HasColumnType("varchar(17)")
            .IsRequired();

            builder.Entity <Vehicle>()
            .Property(e => e.Make)
            .HasConversion(
                v => v.ToString(),
                v => VehicleMake.FromString(v))
            .HasColumnType("varchar(100)")
            .IsRequired();

            builder.Entity <Vehicle>()
            .Property(e => e.Year)
            .IsRequired();

            builder.Entity <Vehicle>()
            .Property(e => e.Model)
            .HasColumnType("varchar(50)")
            .IsRequired();

            // Inspection entity
            builder.Entity <Inspection>()
            .ToTable("Inspection")
            .HasKey(e => e.Id);

            builder.Entity <Inspection>()
            .Property(e => e.Passed)
            .IsRequired();

            builder.Entity <Inspection>()
            .Property(e => e.Inspector)
            .HasColumnName("InspectorName")
            .IsRequired();

            builder.Entity <Inspection>()
            .Property(e => e.Location)
            .HasColumnName("InspectorLocation")
            .IsRequired();

            builder.Entity <Inspection>()
            .Property(e => e.Date)
            .HasColumnName("InspectionDate")
            .IsRequired();

            builder.Entity <Inspection>()
            .Property(e => e.VehicleId)
            .HasColumnName("VehicleId");

            builder.Entity <Inspection>()
            .Property(e => e.Notes)
            .HasColumnName("Notes")
            .HasColumnType("nvarchar(max)");

            builder.Entity <Inspection>()
            .HasOne <Vehicle>()
            .WithMany()
            .HasForeignKey(i => i.VehicleId);
        }