Exemple #1
0
        public async Task <ActionResult> Post([FromBody] ListaNegraCreacionDTO listaNegraCreacion)
        {
            var persona = await context.Personas.FirstOrDefaultAsync(x => x.DNI == listaNegraCreacion.DNI);

            if (persona == null)
            {
                var placaListaNegra = mapper.Map <ListaNegra>(listaNegraCreacion);
                placaListaNegra.Nombres = "Municipalidad";
                placaListaNegra.Estado  = "No Capturado";
                context.Add(placaListaNegra);
                var placas = await context.Placas.Where(x => x.NumeroDePlaca == listaNegraCreacion.NumeroDePlaca).ToListAsync();

                if (placas != null)
                {
                    foreach (Placa placa in placas)
                    {
                        var placaNegra = new PlacaListaNegra();
                        placaNegra.NumeroDePlaca = placa.NumeroDePlaca;
                        placaNegra.NombreCamara  = placa.NombreCamara;
                        placaNegra.Direccion     = placa.Direccion;
                        placaNegra.Latitud       = placa.Latitud;
                        placaNegra.Longitud      = placa.Longitud;
                        placaNegra.Hora          = placa.Hora;
                        placaNegra.Fecha         = placa.Fecha;
                        placaNegra.Codigo        = placa.Codigo;
                        placaNegra.ImagenCarro   = placa.ImagenCarro;
                        placaNegra.ImagenPlaca   = placa.ImagenPlaca;
                        context.PlacasListaNegra.Add(placaNegra);
                    }
                }
                await context.SaveChangesAsync();

                var placaListaNegraDTO = mapper.Map <ListaNegraDTO>(placaListaNegra);
                return(new CreatedAtRouteResult("ObtenerCamara", new { id = placaListaNegra.Id }, placaListaNegraDTO));
            }
            else
            {
                var placaListaNegra = mapper.Map <ListaNegra>(listaNegraCreacion);
                placaListaNegra.Persona           = persona;
                placaListaNegra.Nombres           = persona.Nombres;
                placaListaNegra.ApellidoPaterno   = persona.ApellidoPaterno;
                placaListaNegra.ApellidoMaterno   = persona.ApellidoMaterno;
                placaListaNegra.Direccion         = persona.Direccion;
                placaListaNegra.FechaDeNacimiento = persona.FechaDeNacimiento;
                placaListaNegra.NumeroDeCelular   = persona.NumeroDeCelular;
                placaListaNegra.Estado            = "No Capturado";
                context.Add(placaListaNegra);
                await context.SaveChangesAsync();

                var placaListaNegraDTO = mapper.Map <ListaNegraDTO>(placaListaNegra);
                return(new CreatedAtRouteResult("ObtenerCamara", new { id = placaListaNegra.Id }, placaListaNegraDTO));
            }
        }
        public async Task <ActionResult> Post([FromBody] PlacaCreacionDTO placaCreacion)
        {
            var camara = await context.Camaras.FirstOrDefaultAsync(x => x.Nombre == placaCreacion.NombreCamara);

            if (camara == null)
            {
                return(BadRequest("La camara no existe"));
            }
            else
            {
                var placa = mapper.Map <Placa>(placaCreacion);
                placa.CamaraDetectora = camara;
                placa.Direccion       = camara.Direccion;
                placa.Latitud         = camara.Latitud;
                placa.Longitud        = camara.Longitud;
                placa.Hora            = DateTime.Now.ToShortTimeString();
                placa.Fecha           = DateTime.Now.ToShortDateString();
                placa.Codigo          = $"{placa.NumeroDePlaca}-{camara.Id}";
                context.Add(placa);
                camara.Placas.Add(placa);
                var placaListaNegra = await context.ListaNegra.FirstOrDefaultAsync(x => x.NumeroDePlaca == placa.NumeroDePlaca);

                if (placaListaNegra != null)
                {
                    var placaNegra = new PlacaListaNegra();
                    placaNegra.NumeroDePlaca = placa.NumeroDePlaca;
                    placaNegra.NombreCamara  = placa.NombreCamara;
                    placaNegra.Direccion     = placa.Direccion;
                    placaNegra.Latitud       = placa.Latitud;
                    placaNegra.Longitud      = placa.Longitud;
                    placaNegra.Hora          = placa.Hora;
                    placaNegra.Fecha         = placa.Fecha;
                    placaNegra.Codigo        = placa.Codigo;
                    placaNegra.ImagenCarro   = placa.ImagenCarro;
                    placaNegra.ImagenPlaca   = placa.ImagenPlaca;
                    context.PlacasListaNegra.Add(placaNegra);
                }
                await context.SaveChangesAsync();

                var placaDTO = mapper.Map <PlacaDTO>(placa);
                return(new CreatedAtRouteResult("ObtenerPlaca", new { id = placa.Id }, placaDTO));
            }
        }