private bool ValidateModel(out string msgErr) { msgErr = null; CombinacaoAlimentar combinacao = (CombinacaoAlimentar)Model; if (!Regex.IsMatch(combinacao.Calorias, "\\d{1,4}")) { msgErr += "Campo Calorias deve ser um valor numérico de no máximo 4 dígitos"; } return(string.IsNullOrEmpty(msgErr)); }
public void Show(ConsoleView consoleView, IModel model) { Model = model; CombinacaoAlimentar combinacao = (CombinacaoAlimentar)Model; consoleView.StartScreen(Presenter); consoleView.EnableSearch = true; consoleView.ScreenSection(0, 1, "Calorias totais (digite o valor e pressiona F3):"); consoleView.ScreenSection(50, 1, Model, "Calorias", EnScreenType.eString, 4); consoleView.ScreenSection(0, 3, "========== COMBINAÇÕES =========="); if (combinacao.CombinacoesAlimentares.Count == 0) { consoleView.ScreenSection(0, 4, "Vazia!"); } else { int row = 4; foreach (Alimento alimento in combinacao.CombinacoesAlimentares) { string str = string.Format("{0}, Grupo {1}, {2} calorias", alimento.NomeAlimento, alimento.GrupoAlimentar, alimento.Calorias); consoleView.ScreenSection(0, row++, str); if (row >= 24) { break; } } } consoleView.CreateScreen(); }
private void LoadDataSet() { CombinacaoAlimentar combinacao = (CombinacaoAlimentar)Model; combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Maça", Calorias = "2", GrupoAlimentar = "1" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Melão", Calorias = "20", GrupoAlimentar = "2" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Jaca", Calorias = "200", GrupoAlimentar = "3" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Arroz", Calorias = "1000", GrupoAlimentar = "2" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Feijão", Calorias = "1500", GrupoAlimentar = "1" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Macarrão", Calorias = "3000", GrupoAlimentar = "3" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Abóbora", Calorias = "110", GrupoAlimentar = "3" }); combinacao.Alimentos.Add(new Alimento() { NomeAlimento = "Carnes", Calorias = "250", GrupoAlimentar = "1" }); }
private List <Alimento> CreateCombination() { CombinacaoAlimentar combinacao = (CombinacaoAlimentar)Model; List <Alimento> novaCombinacao = new List <Alimento>(); int caloriasTotais = Convert.ToInt32(combinacao.Calorias); int calorias = 0; int acum = 0; List <Alimento> grupo1 = combinacao.Alimentos.Where(c => c.GrupoAlimentar.Equals("1")).ToList(); List <Alimento> grupo2 = combinacao.Alimentos.Where(c => c.GrupoAlimentar.Equals("2")).ToList(); List <Alimento> grupo3 = combinacao.Alimentos.Where(c => c.GrupoAlimentar.Equals("3")).ToList(); int grupo = 0; int grupo1Pos = 0; int grupo2Pos = 0; int grupo3Pos = 0; Alimento alimento; do { alimento = null; switch (grupo) { case 0: if (grupo1Pos < grupo1.Count) { alimento = grupo1[grupo1Pos++]; } break; case 1: if (grupo2Pos < grupo2.Count) { alimento = grupo2[grupo2Pos++]; } break; case 2: if (grupo3Pos < grupo3.Count) { alimento = grupo3[grupo3Pos++]; } break; } grupo = (++grupo % 3); calorias = Convert.ToInt32(alimento.Calorias); acum += calorias; if (acum < caloriasTotais) { novaCombinacao.Add(alimento); } } while(acum < caloriasTotais); // foreach(Alimento alimento in combinacao.Alimentos) // { // int cal = Convert.ToInt32(alimento.Calorias); // acum += cal; // if (acum > caloriasTotais) // break; // else // novaCombinacao.Add(alimento); // } return(novaCombinacao); }