public void TestExecute_Somando_1_Ing_n_Semanas_Proporcao_Quantidade(int porcoes, int semanas, int diasdaSemana, double qtdEsperada) { Guid id = Guid.NewGuid(); var unidadeMedida = new UnidadeMedida { Id = Guid.NewGuid(), Nome = "Kilograma" }; var c = AdicionarCardapio(id, $"Cardapio teste 1 ing {semanas} semana(s), {diasdaSemana} dias (por semana)"); var catIng = AdicionarCategoria("Ingredientes", AdicionarCategoria("Cat pai", null)); Ingrediente i = AdicionarIngrediente(Guid.NewGuid(), "ing. único", catIng); var receitaId = Guid.NewGuid(); ItemListaIngredientes ili = AdicionarItemListaIngredientes(unidadeMedida, i, receitaId, "20 kilograma de ing. único", Guid.NewGuid(), 20.0); var r = AdicionarReceita(receitaId, "receita única", 2, new List <ItemListaIngredientes>() { ili }); ili.Receita = r; for (int semana = 1; semana <= semanas; semana++) { for (int diaDaSemana = 0; diaDaSemana < diasdaSemana; diaDaSemana++) { ItemCardapio ic = AdicionarItemCardapio(porcoes, cardapioId: id, semana, diaDaSemana); AdicionarItemCardapioReceita(r, ic); c.Itens.Add(ic); } } CardapioReportResultViewModel result = Execute(id); Assert.Equal("Cardápio", result.CabecalhoDoRelatorio[0].NomeCampo); Assert.Equal(c.Nome, result.CabecalhoDoRelatorio[0].ValorCampo); Assert_SemIntervalosDefinidos(result); Assert.Equal(1, result.Dados.Count); Assert.Equal(1, result.Dados[0].CabecalhoDoGrupo.Count); Assert_CabDados(result, 0, 0, "", "Cat pai -> Ingredientes"); Assert_RodapeDados(result, 0, 0, "Contador", "1"); Assert.Equal(1, result.Dados[0].Registros.CommaTextRegisters.Count); Asssert_RegistrosDados(result, indiceDados: 0, indiceRegistro: 0, numeroItem: 1, "ing. único", quantidade: qtdEsperada, "Kilograma"); }
private List <ItemParaComputarIngrediente> ObterDadosAgrupados(Guid id) { var from = 0; var to = -1; var itensCardapio = _itemService.Find(p => p.CardapioId == id, from, to); ItemParaComputarIngrediente ocor = null; List <ItemListaIngredientes> itensIng = null; ItemListaIngredientes itemIngAtual = null; var agrupadoPorIng = new List <ItemParaComputarIngrediente>(); foreach (var item in itensCardapio) { var itensCardRec = _itemReceitaService.Find(p => p.ItemCardapioId == item.Id, 0, -1); foreach (var itemCardRec in itensCardRec) { itensIng = _ingredientesService.Find(p => p.ReceitaId == itemCardRec.ReceitaId, 0, -1).ToList(); foreach (var itemIng in itensIng) { itemIngAtual = itemIng; //procura nos agrpamentos ocor = agrupadoPorIng.Find(p => p.IngredienteId == itemIngAtual.Ingrediente.Id && p.UnidadeMedidaId == itemIngAtual.UnidadeMedidaId); if (ocor == null) { ocor = new ItemParaComputarIngrediente(_receitaService, _param) { IngredienteId = itemIngAtual.Ingrediente.Id, NomeIngrediente = itemIngAtual.Ingrediente.Nome, QuantidadeTotal = 0.0, UnidadeMedidaId = itemIngAtual.UnidadeMedidaId, NomeUnidadeMedida = itemIngAtual.UnidadeMedida.Nome, NomeCategoria = ObterCaminhoCategoria(itemIngAtual.Ingrediente) }; ocor.Add(item, itemIngAtual.Receita, itemIngAtual); agrupadoPorIng.Add(ocor); } else { ocor.Add(item, itemIngAtual.Receita, itemIngAtual); } } } } return(agrupadoPorIng); }
private ItemListaIngredientes AdicionarItemListaIngredientes( UnidadeMedida unidadeMedida, Ingrediente i, Guid receitaId, string nomeNovoItemIngrediente, Guid idNovoItemIngrediente, double qtd) { var ili = new ItemListaIngredientes { Id = idNovoItemIngrediente, Ingrediente = i, IngredienteId = i.Id, Nome = nomeNovoItemIngrediente, Quantidade = qtd, UnidadeMedidaId = unidadeMedida.Id, UnidadeMedida = unidadeMedida, ReceitaId = receitaId }; (_ingredientesService as MockServiceBase <ItemListaIngredientes>).Model.Add(ili); return(ili); }
public void Add(int porcoes, Receita receita, ItemListaIngredientes itemIngrediente) { var o = new ItemOcorrenciaParaComputarIngrediente(_receitaService) { Semana = 1, DiaDaSemana = 0, ReceitaId = receita.Id, NomeReceita = receita.Nome, ReceitaPorcoes = receita.RendimentoPorcoes, ReceitaQuantidade = itemIngrediente.Quantidade, ItemCardapioPorcoes = porcoes }; Ocorrencias.Add(o); if (_param.MostrarDetalhesDoCalculo) { ItensDemostrativo.Add(o.gerarTextoDetalhe()); } }
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.ApplyConfigurationsFromAssembly(typeof(SaveTheCookTowerContext).Assembly); modelBuilder.Entity <Usuario>().HasData(new Usuario { Email = "*****@*****.**", Login = "******", Nome = "Administrador do sistema", Password = "******".ToHashMD5() }); modelBuilder.Entity <Usuario>().HasData(new Usuario { Email = "*****@*****.**", Login = "******", Nome = "Usuário de testes com login string e senha string", Password = "******".ToHashMD5() }); var unidade = new UnidadeMedida { Nome = "unidade", NomeResumido = "un", Sinonimos = "unidades,unidade(un)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Unidades }; modelBuilder.Entity <UnidadeMedida>().HasData(unidade); modelBuilder.Entity <UnidadeMedida>().HasData(new UnidadeMedida { Nome = "grama", NomeResumido = "g", Sinonimos = "gramas,grama(g)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Massa }); var kilograma = new UnidadeMedida { Nome = "kilograma", NomeResumido = "kg", Sinonimos = "kilo,kilos,kilo gramas,kilogramas,kilograma(kg)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Massa }; modelBuilder.Entity <UnidadeMedida>().HasData(kilograma); var l = new UnidadeMedida { Nome = "litro", NomeResumido = "l", Sinonimos = "litros,litro(l)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Volume }; modelBuilder.Entity <UnidadeMedida>().HasData(l); var xic = new UnidadeMedida { Nome = "xícara de chá", NomeResumido = "xíc", Sinonimos = "xic,cicara de cha, xícara chá, xícaras de chá,xícara(chá)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Volume }; modelBuilder.Entity <UnidadeMedida>().HasData(xic); var pt = new UnidadeMedida { Nome = "pitada", NomeResumido = "pt", Sinonimos = "pitada,punhadinho,cadinho", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Volume }; modelBuilder.Entity <UnidadeMedida>().HasData(pt); var cch = new UnidadeMedida { Nome = "colher de chá", NomeResumido = "ccha", Sinonimos = "colher pequena", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Volume }; modelBuilder.Entity <UnidadeMedida>().HasData(new UnidadeMedida { Nome = "colher de sopa", NomeResumido = "cso", Sinonimos = "colher media", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Volume }); modelBuilder.Entity <UnidadeMedida>().HasData(new UnidadeMedida { Nome = "fatia", NomeResumido = "fat", Sinonimos = "fatia", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Volume }); modelBuilder.Entity <UnidadeMedida>().HasData(new UnidadeMedida { Nome = "unidade", NomeResumido = "un", Sinonimos = "unidade", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Unidades }); modelBuilder.Entity <UnidadeMedida>().HasData(cch); var m = new UnidadeMedida { Nome = "metro", NomeResumido = "m", Sinonimos = "metros,metro(m)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Comprimento }; modelBuilder.Entity <UnidadeMedida>().HasData(m); var mm = new UnidadeMedida { Nome = "milimetro", NomeResumido = "mm", Sinonimos = "milimetros,milimetro(ml)", Tipo = CrossCutting.Utils.Enumerations.TiposDeUnidadesDeMedida.Comprimento }; modelBuilder.Entity <UnidadeMedida>().HasData(mm); modelBuilder.Entity <EquivalenciaEntreUnidadesDeMedida>().HasData(new EquivalenciaEntreUnidadesDeMedida { Nome = "metro para milimetros", OrigemId = m.Id, DestinoId = mm.Id, RazaoOrigemDestino = 1.0 / 1000.0, Sinonimos = "razão m/ml, metro para milimetros,m para ml" }); modelBuilder.Entity <EquivalenciaEntreUnidadesDeMedida>().HasData(new EquivalenciaEntreUnidadesDeMedida { Nome = "xícaras de chá pra litros", OrigemId = xic.Id, DestinoId = l.Id, RazaoOrigemDestino = 250.0 / 1000.0, Sinonimos = "razão xíc/l, xícara de chá apra litros,xíc para l,xic para l" }); var cp = new Categoria { Nome = "Categorias", Sinonimos = "Categoria Raiz", CategoriaPai = null }; modelBuilder.Entity <Categoria>().HasData(cp); var cat_ing = new Categoria { Nome = "Ingredientes", Sinonimos = "Categoria Raiz dos Ingredientes", CategoriaPaiId = cp.Id }; modelBuilder.Entity <Categoria>().HasData(cat_ing); var cat_ing_carnes = new Categoria { Nome = "Carnes", Sinonimos = "carnes", CategoriaPaiId = cat_ing.Id }; modelBuilder.Entity <Categoria>().HasData(cat_ing_carnes); var cat_ing_hortifruti = new Categoria { Nome = "hortifrutigranjeiro", Sinonimos = "hortaliças,frutas,verduras,ovos,hortifruti", CategoriaPaiId = cat_ing.Id }; modelBuilder.Entity <Categoria>().HasData(cat_ing_hortifruti); var cat_ing_geral = new Categoria { Nome = "geral", Sinonimos = "geral", CategoriaPaiId = cat_ing.Id }; modelBuilder.Entity <Categoria>().HasData(cat_ing_geral); var cat_cardapio = new Categoria { Nome = "Cardápios", Sinonimos = "Categoria Raiz dos Cardápios", CategoriaPaiId = cp.Id }; modelBuilder.Entity <Categoria>().HasData(cat_cardapio); var rec = new Categoria { Nome = "Receitas", Sinonimos = "Categoria Raiz das Receitas", CategoriaPaiId = cp.Id }; modelBuilder.Entity <Categoria>().HasData(rec); modelBuilder.Entity <Categoria>().HasData(new Categoria { Nome = "Tortas", Sinonimos = "Categoria Raiz das tortas", CategoriaPaiId = rec.Id }); var cat_cafe = new Categoria { Nome = "Café da manhã", Sinonimos = "Cafe da manha", CategoriaPaiId = rec.Id }; modelBuilder.Entity <Categoria>().HasData(cat_cafe); modelBuilder.Entity <Categoria>().HasData(new Categoria { Nome = "Jantar", Sinonimos = "Categoria Raiz dos Jantares", CategoriaPaiId = rec.Id }); var farinha = new Ingrediente { Nome = "Farinha de Trigo", CategoriaId = cat_ing_geral.Id, Sinonimos = "Trigo", Densidade = 700, UnidadeMedidaParaListaComprasId = kilograma.Id, UnidadeMedidaDefaultParaListaIngredientesId = xic.Id }; modelBuilder.Entity <Ingrediente>().HasData(farinha); var fermento = new Ingrediente { Nome = "Fermento para Pão", CategoriaId = cat_ing_geral.Id, Sinonimos = "Fermento biológico", Densidade = 1000, UnidadeMedidaParaListaComprasId = kilograma.Id, UnidadeMedidaDefaultParaListaIngredientesId = xic.Id }; modelBuilder.Entity <Ingrediente>().HasData(fermento); var ovo = new Ingrediente { Nome = "Ovo de galinha", CategoriaId = cat_ing_hortifruti.Id, Sinonimos = "Ovo", Densidade = 1, UnidadeMedidaParaListaComprasId = unidade.Id, UnidadeMedidaDefaultParaListaIngredientesId = unidade.Id }; modelBuilder.Entity <Ingrediente>().HasData(ovo); var agua = new Ingrediente { Nome = "Água", CategoriaId = cat_ing_geral.Id, Sinonimos = "Agua", Densidade = 1, UnidadeMedidaParaListaComprasId = l.Id, UnidadeMedidaDefaultParaListaIngredientesId = l.Id }; modelBuilder.Entity <Ingrediente>().HasData(agua); var rec1 = new Receita { Nome = "Pão de Forma", Sinonimos = "Pão assado,pao assado", ReceitaPaiId = null, TempoPreparoMinutos = 120, RendimentoPorcoes = 5, CategoriaId = cat_cafe.Id }; modelBuilder.Entity <Receita>().HasData(rec1); var li1 = new ItemListaIngredientes { ReceitaId = rec1.Id, Nome = farinha.Nome, IngredienteId = farinha.Id, Ordem = 0, Quantidade = 3, UnidadeMedidaId = xic.Id }; modelBuilder.Entity <ItemListaIngredientes>().HasData(li1); var li2 = new ItemListaIngredientes { ReceitaId = rec1.Id, Nome = farinha.Nome, IngredienteId = farinha.Id, Ordem = 0, Quantidade = 3, UnidadeMedidaId = xic.Id }; modelBuilder.Entity <ItemListaIngredientes>().HasData(li2); var li3 = new ItemListaIngredientes { ReceitaId = rec1.Id, Nome = fermento.Nome, IngredienteId = fermento.Id, Ordem = 1, Quantidade = 1, UnidadeMedidaId = xic.Id }; modelBuilder.Entity <ItemListaIngredientes>().HasData(li3); var li4 = new ItemListaIngredientes { ReceitaId = rec1.Id, Nome = ovo.Nome, IngredienteId = ovo.Id, Ordem = 2, Quantidade = 5, UnidadeMedidaId = unidade.Id }; modelBuilder.Entity <ItemListaIngredientes>().HasData(li4); var li5 = new ItemListaIngredientes { ReceitaId = rec1.Id, Nome = agua.Nome, IngredienteId = agua.Id, Ordem = 3, Quantidade = 0.5, UnidadeMedidaId = l.Id }; modelBuilder.Entity <ItemListaIngredientes>().HasData(li5); var cardapio1 = new Cardapio() { Nome = "Comendo pão no café da manhã todo dia (mensal)", Sinonimos = "café", Descricao = "Dieta abase de pão comum", CategoriaId = cat_cardapio.Id }; modelBuilder.Entity <Cardapio>().HasData(cardapio1); int semana, dia; var diasS = new string[] { "Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado" }; var itens = new List <ItemCardapio>(); for (semana = 1; semana < 5; semana++) { for (dia = 0; dia < 7; dia++) { var tipo = CrossCutting.Utils.Enumerations.TipoItemCardapio.CafeDaManha; var s = Utils.GetDescription < CrossCutting.Utils.Enumerations.TipoItemCardapio>(tipo); var item = new ItemCardapio() { CardapioId = cardapio1.Id, Tipo = tipo, Porcoes = 1, Semana = semana, DiaDaSemana = dia + 1, Nome = $"{s}, {diasS[dia]} da {semana}a semana " }; modelBuilder.Entity <ItemCardapio>().HasData(item); itens.Add(item); } } foreach (var ic in itens) { modelBuilder.Entity <ItemCardapioReceita>().HasData(new ItemCardapioReceita() { Nome = $"Rel. Item Cardápio({ic.Nome}) x Receita({rec1.Nome})", ItemCardapioId = ic.Id, ReceitaId = rec1.Id }); } }