Exemplo n.º 1
0
        public async Task <List <ReferenceData> > Handle(GetUnitsOfMeasureRequest request,
                                                         CancellationToken cancellationToken)
        {
            using var connection = await _db.GetOpenConnection(cancellationToken);

            var results =
                await connection.QueryAsync <QueryResult>(@"select ""id"", ""name"" from ""unit_of_measure_lib""");

            return(results.Select(r => new ReferenceData(UnitOfMeasure.FromValue(r.Id).Name, r.Name)).ToList());
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity <Recipe>(entity =>
            {
                ConfigureBaseModel(entity);

                entity.Property(e => e.Name).IsRequired().HasMaxLength(256);
                entity.Property(e => e.Description);

                entity.HasMany(e => e.RecipeIngredients)
                .WithOne(o => o.Recipe)
                .HasForeignKey("RecipeId");
            });

            modelBuilder.Entity <RecipeIngredient>(entity =>
            {
                ConfigureBaseModel(entity);

                entity.Property <long>("RecipeId");
                entity.HasOne(e => e.Recipe)
                .WithMany(r => r.RecipeIngredients)
                .HasForeignKey("RecipeId");

                entity.Property(o => o.UnitOfMeasure).IsRequired()
                .HasConversion(
                    enm => enm.Value,
                    id => UnitOfMeasure.FromValue(id))
                .HasColumnName("unit_of_measure_id");

                entity.Property <long>("IngredientId");
                entity.HasOne(e => e.Ingredient)
                .WithMany()
                .HasForeignKey("IngredientId");
            });

            modelBuilder.Entity <Ingredient>(entity =>
            {
                ConfigureBaseModel(entity);

                entity.Property(e => e.Name).HasMaxLength(256).IsRequired();
            });
        }