public ActionResult Index(FormCollection form)
        {
            var model = new AmostraPacienteVirusViewModel()
            {
                AmostraEntrada = form["amostra_entrada"]
            };

            var lab = new Laboratorio();

            lab.ProcessaAmostra(model);

            return(Json(lab.Resultado));
        }
Beispiel #2
0
        public void ProcessaAmostra(AmostraPacienteVirusViewModel model)
        {
            try
            {
                IEnumerable <string> entradas = model.AmostraEntrada
                                                .Split('\n')
                                                .Where(x => !string.IsNullOrEmpty(x))
                                                .ToList();

                if (!int.TryParse(entradas.First(), out int numAmostras))
                {
                    throw new Exception("Número de amostras inválido - Valor não numérico informado na primeira linha.");
                }

                //RN1
                if (numAmostras < 1 || numAmostras > 10)
                {
                    throw new Exception("Número de amostras inválido - Era esperado um valor numérico entre 1 e 10 na primeira linha.");
                }

                int conta         = 0;
                var listaAmostras = entradas
                                    .Skip(1)
                                    .Select(x => new Amostra(x, ++conta))
                                    .ToList();

                //RN2
                if (numAmostras != listaAmostras.Count)
                {
                    throw new Exception("Número de amostra incompatível com o informado.");
                }

                Resultado = string.Join("\r\n", listaAmostras.Select(x => AnalisaAmostras(x)));
            }
            catch (Exception ex)
            {
                Resultado = ex.Message;
            }
        }