示例#1
0
        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));
        }
示例#2
0
        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();
        }
示例#3
0
        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"
            });
        }
示例#4
0
        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);
        }