Exemplo n.º 1
0
        public async Task <ActionResult <CasoCovid> > PostCasoCovid(CasoCovid casoCovid)
        {
            casoCovid.CasoCovidId = null;
            _context.CasosCovid.Add(casoCovid);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCasoCovid", new { id = casoCovid.CasoCovidId }, casoCovid));
        }
Exemplo n.º 2
0
        public async Task <long> Insert(CasoCovid nuevoCaso)
        {
            await this.context.CasosCovid.AddAsync(nuevoCaso);

            await this.context.GuardarCambios();

            return(nuevoCaso.Id);
        }
Exemplo n.º 3
0
        public void Init()
        {
            _bancoCasos = new List <CasoCovid>();
            _bancoCasos.Add(new CasoCovid()
            {
                Id          = "def",
                Pais        = "EUA",
                Confirmados = 25,
                Mortes      = 10,
                Recuperados = 5,
                Ativos      = 5,
                Data        = DateTime.Parse("2021-02-26"),
            });

            _bancoCasos.Add(new CasoCovid()
            {
                Id          = "xyz",
                Pais        = "Angola",
                Confirmados = 50,
                Mortes      = 25,
                Recuperados = 10,
                Ativos      = 12,
                Data        = DateTime.Parse("2021-02-27"),
            });

            var casoCovidRepositoryMock = new Mock <ICasoCovidRepository>();

            _casoCovidRepository = casoCovidRepositoryMock.Object;

            casoCovidRepositoryMock.Setup(x => x.Salvar(It.IsAny <CasoCovid>())).Returns(
                (CasoCovid caso) => {
                CasoCovid casoExistente = null;
                if ((casoExistente = _bancoCasos.FirstOrDefault(x => x.Id == caso.Id)) == null)
                {
                    _bancoCasos.Add(caso);
                }
                else
                {
                    CopiadorPropriedade.Copiar <CasoCovid, CasoCovid>(casoExistente, caso);
                }

                return(caso);
            }
                );

            casoCovidRepositoryMock.Setup(x => x.ObterPorIntervalo(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns(
                (DateTime inicio, DateTime fim) => {
                return(_bancoCasos.Where(x => x.Data >= inicio && x.Data <= fim).ToList());
            }
                );
        }
Exemplo n.º 4
0
        public async Task <IActionResult> NuevoCaso([FromBody] CasoCovid casoCovid)
        {
            if (ModelState.IsValid)
            {
                this._context.Add(casoCovid);
                await this._context.SaveChangesAsync();

                return(new CreatedAtRouteResult("Nuevo caso registrado", new { id = casoCovid.CasoCovidId }, casoCovid));
            }
            else
            {
                return(BadRequest("Ocurrio un error con el servidor."));
            }
        }
Exemplo n.º 5
0
        public CasoCovid Salvar(CasoCovid caso)
        {
            if (_banco.CasosCovid.AsNoTracking().FirstOrDefault(x => x.Id == caso.Id) != null)
            {
                _banco.Update(caso);
            }
            else
            {
                _banco.Add(caso);
            }

            _banco.SaveChanges();

            return(caso);
        }
Exemplo n.º 6
0
        public void DeveAtualizarUmCasoExistente()
        {
            var casoCovidService = new CasoCovidService(_casoCovidRepository, new CovidAPIService());
            var caso             = new CasoCovid()
            {
                Id          = "xyz",
                Pais        = "Africa do Sul",
                Confirmados = 10,
                Mortes      = 5,
                Recuperados = 2,
                Ativos      = 5,
                Data        = DateTime.Now,
            };

            casoCovidService.Salvar(caso);
            Assert.AreEqual("Africa do Sul", _bancoCasos.FirstOrDefault(x => x.Id == "xyz").Pais);
        }
Exemplo n.º 7
0
        public void DeveInserirUmNovoCaso()
        {
            var casoCovidService = new CasoCovidService(_casoCovidRepository, new CovidAPIService());
            var caso             = new CasoCovid()
            {
                Id          = "abc123",
                Pais        = "Brazil",
                Confirmados = 10,
                Mortes      = 5,
                Recuperados = 2,
                Ativos      = 5,
                Data        = DateTime.Now,
            };

            casoCovidService.Salvar(caso);
            Assert.IsTrue(_bancoCasos.Any(x => x.Id == caso.Id));
        }
Exemplo n.º 8
0
 public async Task <ActionResult <long> > InsertCaso(CasoCovid datos)
 {
     if (datos.Sexo.Equals("M", StringComparison.InvariantCultureIgnoreCase) ||
         datos.Sexo.Equals("F", StringComparison.InvariantCultureIgnoreCase))
     {
         datos.Sexo = datos.Sexo.ToUpper();
     }
     else
     {
         throw new ValidationException($"'{datos.Sexo}' no es un valor valido para sexo");
     }
     if (datos.Edad < 0 || datos.Edad > 120)
     {
         throw new ValidationException($"'{datos.Edad}' no es una edad valida");
     }
     return(await this.casosCovidService.Insert(datos));
 }
Exemplo n.º 9
0
        public async Task Insert_EdadInvalida(int edad)
        {
            var newCaso = new CasoCovid {
                Edad          = edad,
                Sexo          = "M",
                FechaRegistro = DateTime.Now,
                Localizacion  = new Localizacion {
                    Pais         = "Guatemala",
                    Departamento = "Guatemala",
                    Municipio    = "Guatemala"
                }
            };

            casosCovidServiceMock.Setup(s => s.Insert(newCaso))
            .ReturnsAsync(1);

            await Assert.ThrowsAsync <ValidationException>(() => this.controller.InsertCaso(newCaso));
        }
Exemplo n.º 10
0
        public async Task Insert_Ok()
        {
            long nextId  = 1;
            var  newCaso = new CasoCovid {
                Edad          = 23,
                Sexo          = "M",
                FechaRegistro = DateTime.Now,
                Localizacion  = new Localizacion {
                    Pais         = "Guatemala",
                    Departamento = "Guatemala",
                    Municipio    = "Guatemala"
                }
            };

            casosCovidServiceMock.Setup(s => s.Insert(newCaso))
            .ReturnsAsync(nextId);

            long idNewCaso = (await controller.InsertCaso(newCaso)).Value;

            Assert.Equal(nextId, idNewCaso);
        }
Exemplo n.º 11
0
 public CasoCovid Salvar(CasoCovid caso)
 {
     return(_casoRepository.Salvar(caso));
 }