Exemple #1
0
            public async Task <DetalleDto> Handle(GetIncidenteDetalleQuery request, CancellationToken cancellationToken)
            {
                var VM = new DetalleDto();
                var CODIGO_INCIDENTE = request.CodIncidente;

                TIncidente objTIncidente = _context.TIncidente.Find(request.CodIncidente);

                if (objTIncidente == null || objTIncidente.Estado == false)
                {
                    throw new NotFoundException("Incidente", request.CodIncidente);
                }

                VM = _mapper.Map <DetalleDto>(objTIncidente);

                VM.EquipoInvestigacion = _context.TEquipoInvestigacion
                                         .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                         .ProjectTo <EquipoInvestigacionDetalleDto>(_mapper.ConfigurationProvider)
                                         .ToList();

                VM.SecuenciaEventos = _context.TSecuenciaEvento
                                      .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                      .ProjectTo <SecuenciaEventosDetalleDto>(_mapper.ConfigurationProvider)
                                      .ToList();

                VM.TestigosInvolucrados = _context.TTestigoInvolucrado
                                          .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                          .ProjectTo <TestigosInvolucradosDetalleDto>(_mapper.ConfigurationProvider)
                                          .ToList();


                return(VM);
            }
            public long maximoNumero(TIncidente incidente)
            {
                var maxComunidad    = incidente.TafectadoComunidad.Select(t => t.Correlativo).DefaultIfEmpty(0).Max();
                var maxMediAmbiente = incidente.TafectadoMedioAmbiente.Select(t => t.Correlativo).DefaultIfEmpty(0).Max();
                var maxPropiedad    = incidente.TafectadoPropiedad.Select(t => t.Correlativo).DefaultIfEmpty(0).Max();
                var maxAfectado     = incidente.TinvestigaAfectado.Select(t => t.Correlativo).DefaultIfEmpty(0).Max();

                var maxCorrelativo = new[] { maxComunidad, maxMediAmbiente, maxPropiedad, maxAfectado };

                return(maxCorrelativo.Max());
            }
            public async Task <AfectadosDescipcionesAccionesVM> Handle(GetIncidenteAfectadoQuery request, CancellationToken cancellationToken)
            {
                var VM = new AfectadosDescipcionesAccionesVM();
                var CODIGO_INCIDENTE = request.CodIncidente;

                TIncidente objTIncidente = _context.TIncidente.Find(request.CodIncidente);

                if (objTIncidente == null || objTIncidente.Estado == false)
                {
                    throw new NotFoundException("Incidente", request.CodIncidente);
                }


                VM = _context.TDetalleAfectado
                     .Where(t => t.Estado == true && t.CodIncidente.Equals(CODIGO_INCIDENTE))
                     .ProjectTo <AfectadosDescipcionesAccionesVM>(_mapper.ConfigurationProvider)
                     .FirstOrDefault();

                var listAC = _context.TAfectadoComunidad.Where(t => t.Estado == true && t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listAC)
                {
                    var obj = _mapper.Map <DetalleAfectadoDto>(item);
                    VM.Afectados.Add(obj);
                }

                var listMA = _context.TAfectadoMedioAmbiente.Where(t => t.Estado == true && t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listMA)
                {
                    var obj = _mapper.Map <DetalleAfectadoDto>(item);
                    VM.Afectados.Add(obj);
                }

                var listProp = _context.TAfectadoPropiedad.Where(t => t.Estado == true && t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listProp)
                {
                    var obj = _mapper.Map <DetalleAfectadoDto>(item);
                    VM.Afectados.Add(obj);
                }

                var listPersona = _context.TInvestigaAfectado.Where(t => t.Estado == true && t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listPersona)
                {
                    var obj = _mapper.Map <DetalleAfectadoDto>(item);
                    VM.Afectados.Add(obj);
                }

                return(VM);
            }
            public async Task <DatosGeneralesDto> Handle(GetIncidenteGeneralQuery request, CancellationToken cancellationToken)
            {
                var VM = new DatosGeneralesDto();
                var CODIGO_INCIDENTE = request.CodIncidente;

                TIncidente objTIncidente = _context.TIncidente.Find(request.CodIncidente);

                if (objTIncidente == null || objTIncidente.Estado == false)
                {
                    throw new NotFoundException("Incidente", request.CodIncidente);
                }

                VM = _mapper.Map <TIncidente, DatosGeneralesDto>(objTIncidente);

                return(VM);
            }
            public async Task <List <ICAMDto> > Handle(GetIncidenteICAMQuery request, CancellationToken cancellationToken)
            {
                var VM = new List <ICAMDto>();
                var CODIGO_INCIDENTE = request.CodIncidente;

                TIncidente objTIncidente = _context.TIncidente.Find(request.CodIncidente);

                if (objTIncidente == null || objTIncidente.Estado == false)
                {
                    throw new NotFoundException("Incidente", request.CodIncidente);
                }

                VM = _context.TIcam
                     .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                     .ProjectTo <ICAMDto>(_mapper.ConfigurationProvider)
                     .ToList();

                return(VM);
            }
Exemple #6
0
            public async Task <List <PortletTipoIncidente> > Handle(GetPortletTipoMesQuery request, CancellationToken cancellationToken)
            {
                TIncidente temp = new TIncidente();

                temp.CodTipoIncidente = "";
                string user = _httpContext.HttpContext.User.Claims.SingleOrDefault(c => c.Type == ClaimTypes.Name)?.Value;

                if (user == null)
                {
                    user = "******";
                }

                var today = DateTime.Today;

                var trendData =
                    (from ti in _context.TIncidente
                     where ti.FechaDelSuceso.Value.Year == today.Year &&
                     ti.FechaDelSuceso.Value.Month == today.Month &&
                     (ti.CreadoPor.Equals(user))
                     group ti by new
                {
                    TipoIncidente = ti.CodTipoIncidente
                                    //,SubTipoIncidente = ti.CodSubTipoIncidente
                } into g
                     select new
                {
                    CodTipoIncidente = g.Key.TipoIncidente,
                    //SubTipoIncidente = g.Key.SubTipoIncidente,
                    Total = g.Count()
                }
                    ).AsEnumerable()
                    .Select(g => new PortletTipoIncidente
                {
                    CodTipoIncidente = g.CodTipoIncidente,
                    Total            = g.Total
                }).ToList();

                return(trendData);
            }
            public async Task <int> Handle(UpdateIncidenteCommand request, CancellationToken cancellationToken)
            {
                // try{

                //var estado = await _general.GetEstadoAprobacion(request.data.CodIncidente, "TINC");
                var estado = await _mediator.Send(new GetEstadoDocQuery()
                {
                    docReferencia = request.data.CodIncidente, codTabla = "TINC"
                });

                //assert(estado);

                IncidenteDto VM            = request.data;
                string       COD_INCIDENTE = VM.CodIncidente;

                TIncidente incidente = _context.TIncidente.Find(VM.CodIncidente);

                var rol = request.rol;

                if (incidente.EstadoIncidente.Equals("C") && (!(rol.Equals("1") || rol.Equals("4"))))
                {
                    throw new Exception("usuario no autorizado");
                }


                //datos generales
                incidente = _mapper.Map(VM.DatosGenerales, incidente);

                //ICAM
                incidente.Ticam = _context.TIcam.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                incidente.Ticam = _mapper.Map <IList <ICAMDto>, IList <TIcam> >(VM.ICAM);
                int indexIcan = 1;

                foreach (var item in incidente.Ticam)
                {
                    item.Correlativo = indexIcan++;
                }

                //analisis Causa
                incidente.TincidenteAnalisisCausa = _context.TIncidenteAnalisisCausa.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                incidente.TincidenteAnalisisCausa = _mapper.Map <IList <AnalisisCausalidadDto>, IList <TIncidenteAnalisisCausa> >(VM.AnalisisCausalidad);

                //detalle
                incidente = _mapper.Map(VM.Detalle, incidente);

                incidente.TequipoInvestigacion = _context.TEquipoInvestigacion.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                incidente.TequipoInvestigacion = _mapper.Map <IList <EquipoInvestigacionDetalleDto>, IList <TEquipoInvestigacion> >(VM.Detalle.EquipoInvestigacion);
                int indexEI = 1;

                foreach (var item in incidente.TequipoInvestigacion)
                {
                    item.Correlativo = ++indexEI;
                }
                incidente.TsecuenciaEvento = _context.TSecuenciaEvento.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                incidente.TsecuenciaEvento = _mapper.Map <IList <SecuenciaEventosDetalleDto>, IList <TSecuenciaEvento> >(VM.Detalle.SecuenciaEventos);
                int indexSE = 1;

                foreach (var item in incidente.TsecuenciaEvento)
                {
                    item.Correlativo = ++indexSE;
                }
                incidente.TtestigoInvolucrado = _context.TTestigoInvolucrado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                incidente.TtestigoInvolucrado = _mapper.Map <IList <TestigosInvolucradosDetalleDto>, IList <TTestigoInvolucrado> >(VM.Detalle.TestigosInvolucrados);
                int indexTI = 1;

                foreach (var item in incidente.TtestigoInvolucrado)
                {
                    item.Correlativo = ++indexTI;
                }

                //estado cerrado o pentiente
                if (VM.EstadoIncidente != null && (VM.EstadoIncidente.Equals("P") || VM.EstadoIncidente.Equals("C")))
                {
                    incidente.EstadoIncidente = VM.EstadoIncidente;
                }
                else
                {
                    incidente.EstadoIncidente = "P";
                }

                //afectados
                var DetalleAfectado = _context.TDetalleAfectado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).First();

                if (DetalleAfectado == null)
                {
                    DetalleAfectado = new TDetalleAfectado();
                }
                DetalleAfectado = _mapper.Map <AfectadosDescipcionesAccionesDto, TDetalleAfectado>(VM.AfectadosDescipcionesAcciones, DetalleAfectado);
                _context.TDetalleAfectado.Update(DetalleAfectado);


                incidente.TafectadoComunidad = _context.TAfectadoComunidad.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                var deleteAfectadoComunidad = incidente.TafectadoComunidad.ToHashSet();

                incidente.TafectadoMedioAmbiente = _context.TAfectadoMedioAmbiente.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                var deleteAfectadoMedioAmbiente = incidente.TafectadoMedioAmbiente.ToHashSet();

                incidente.TafectadoPropiedad = _context.TAfectadoPropiedad.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                var deleteAfectadoPropiedad = incidente.TafectadoPropiedad.ToHashSet();

                incidente.TinvestigaAfectado = _context.TInvestigaAfectado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                var deleteinvetigaAfectado = incidente.TinvestigaAfectado.ToHashSet();

                var index = maximoNumero(incidente);

                foreach (var item in VM.AfectadosDescipcionesAcciones.Afectados)
                {
                    if (item.tipoAfectado == TipoAfectado.Comunidad)
                    {
                        var correlativo = item.Comunidad.Correlativo;
                        var data        = _context.TAfectadoComunidad.Find(correlativo, COD_INCIDENTE);
                        if (data == null)
                        {
                            data             = new TAfectadoComunidad();
                            data             = _mapper.Map <ComunidadAfectadoDto, TAfectadoComunidad>(item.Comunidad);
                            data.Correlativo = Convert.ToInt32(++index);
                            incidente.TafectadoComunidad.Add(data);
                        }
                        else
                        {
                            data = _mapper.Map <ComunidadAfectadoDto, TAfectadoComunidad>(item.Comunidad, data);
                            _context.TAfectadoComunidad.Update(data);
                            deleteAfectadoComunidad.Remove(data);
                        }
                    }
                    else if (item.tipoAfectado == TipoAfectado.Medio_Ambiente)
                    {
                        var correlativo = item.MedioAmbiente.Correlativo;
                        var data        = _context.TAfectadoMedioAmbiente.Find(correlativo, COD_INCIDENTE);
                        if (data == null)
                        {
                            data             = new TAfectadoMedioAmbiente();
                            data             = _mapper.Map <MedioAmbienteAfectadoDto, TAfectadoMedioAmbiente>(item.MedioAmbiente);
                            data.Correlativo = Convert.ToInt32(++index);
                            incidente.TafectadoMedioAmbiente.Add(data);
                        }
                        else
                        {
                            data = _mapper.Map <MedioAmbienteAfectadoDto, TAfectadoMedioAmbiente>(item.MedioAmbiente, data);
                            _context.TAfectadoMedioAmbiente.Update(data);
                            deleteAfectadoMedioAmbiente.Remove(data);
                        }
                    }
                    else if (item.tipoAfectado == TipoAfectado.Propiedad)
                    {
                        var correlativo = item.Propiedad.Correlativo;
                        var data        = _context.TAfectadoPropiedad.Find(correlativo, COD_INCIDENTE);
                        if (data == null)
                        {
                            data             = new TAfectadoPropiedad();
                            data             = _mapper.Map <PropiedadAfectadoDto, TAfectadoPropiedad>(item.Propiedad);
                            data.Correlativo = Convert.ToInt32(++index);
                            incidente.TafectadoPropiedad.Add(data);
                        }
                        else
                        {
                            data = _mapper.Map <PropiedadAfectadoDto, TAfectadoPropiedad>(item.Propiedad, data);
                            _context.TAfectadoPropiedad.Update(data);
                            deleteAfectadoPropiedad.Remove(data);
                        }
                    }
                    else if (item.tipoAfectado == TipoAfectado.Persona)
                    {
                        //var data = _context.TInvestigaAfectado.Find(new { CodIncidente = COD_INCIDENTE, Correlativo = item.Propiedad.Correlativo });
                        var correlativo = Convert.ToInt64(item.Persona.Correlativo);
                        var data        = _context.TInvestigaAfectado.Find(COD_INCIDENTE, correlativo);
                        if (data == null)
                        {
                            data             = new TInvestigaAfectado();
                            data             = _mapper.Map <PersonaAfectadoDto, TInvestigaAfectado>(item.Persona);
                            data.Correlativo = Convert.ToInt32(++index);
                            incidente.TinvestigaAfectado.Add(data);
                            var diasPerdidiosAfectados = _mapper.Map <ICollection <MenAfectadoPersonaDto>, ICollection <TDiasPerdidosAfectado> >(item.Persona.Men);
                            int i = 1;
                            foreach (var itemDPA in diasPerdidiosAfectados)
                            {
                                itemDPA.CodPersona   = data.DocAfectado;
                                itemDPA.Correlativo  = i++;
                                itemDPA.CodIncidente = COD_INCIDENTE;
                            }
                            _context.TDiasPerdidosAfectado.AddRange(diasPerdidiosAfectados);
                        }
                        else
                        {
                            data = _mapper.Map <PersonaAfectadoDto, TInvestigaAfectado>(item.Persona, data);
                            var ListModeloAfectadoPersonasMen = item.Persona.Men;
                            _context.TInvestigaAfectado.Update(data);

                            IList <TDiasPerdidosAfectado> Men = _context.TDiasPerdidosAfectado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE) && t.CodPersona.Equals(data.DocAfectado)).ToList();
                            var deleteMen   = Men.ToList();
                            var maxIndexMen = Men.Select(t => t.Correlativo).DefaultIfEmpty(0).Max();

                            //IList<TDiasPerdidosAfectado> updateListDiasPerdidos = new List<TDiasPerdidosAfectado>();
                            foreach (var itemMen in ListModeloAfectadoPersonasMen)
                            {
                                var toInsertOrUpdate = Men.Where(t => t.Correlativo.ToString().Equals(itemMen.Correlativo)).FirstOrDefault();

                                if (toInsertOrUpdate != null)
                                {
                                    toInsertOrUpdate = _mapper.Map <MenAfectadoPersonaDto, TDiasPerdidosAfectado>(itemMen, toInsertOrUpdate);
                                    _context.TDiasPerdidosAfectado.Update(toInsertOrUpdate);
                                    deleteMen.Remove(toInsertOrUpdate);
                                }
                                else
                                {
                                    toInsertOrUpdate = _mapper.Map <MenAfectadoPersonaDto, TDiasPerdidosAfectado>(itemMen);
                                    toInsertOrUpdate.CodIncidente = COD_INCIDENTE;
                                    toInsertOrUpdate.CodPersona   = data.DocAfectado;
                                    toInsertOrUpdate.Correlativo  = Convert.ToInt32(++maxIndexMen);
                                    _context.TDiasPerdidosAfectado.Add(toInsertOrUpdate);
                                }
                            }
                            _context.TDiasPerdidosAfectado.RemoveRange(deleteMen);
                            deleteinvetigaAfectado.Remove(data);
                        }
                    }
                    else
                    {
                        throw new NotFoundException("", "");
                    }
                }

                _context.TAfectadoComunidad.RemoveRange(deleteAfectadoComunidad);
                _context.TAfectadoMedioAmbiente.RemoveRange(deleteAfectadoMedioAmbiente);
                _context.TAfectadoPropiedad.RemoveRange(deleteAfectadoPropiedad);
                _context.TInvestigaAfectado.RemoveRange(deleteinvetigaAfectado);

                _context.TIncidente.Update(incidente);
                await _context.SaveChangesAsync(cancellationToken);


                foreach (var item in request.updateFiles)
                {
                    if (item.Estado == false)
                    {
                        //var r1 = await _imagen.Delete(item.CorrelativoArchivos.ToString());
                        var r1 = await _mediator.Send(new DeleteFileCommand()
                        {
                            CorrelativoArchivos = item.CorrelativoArchivos
                        });
                    }
                    else if (item.Estado == true && item.CorrelativoArchivos != 0)
                    {
                        //var r2 = await _imagen.Update(item);
                        var r2 = await _mediator.Send(new UpdateFileCommand()
                        {
                            CorrelativoArchivos = item.CorrelativoArchivos, Descripcion = item.Descripcion
                        });
                    }
                }

                var updateList = new List <PlanVM>();
                var createList = new List <PlanVM>();

                foreach (var item in request.planAccion)
                {
                    if (item.estado == false && item.codAccion > 0)
                    {
                        //var r3 = await _planAccion.Delete(item.codAccion.ToString());
                        var r3 = await _mediator.Send(new DeletePlanAccionCommand()
                        {
                            CodAccion = item.codAccion
                        });
                    }
                    else if (item.estado == true && item.codAccion > 0)
                    {
                        updateList.Add(item);
                    }
                    else if (item.codAccion < 0)
                    {
                        createList.Add(item);
                    }
                }
                //var r4 = await _planAccion.Create(createList, COD_INCIDENTE);
                createList.ForEach(t => { t.docReferencia = COD_INCIDENTE; t.docSubReferencia = COD_INCIDENTE; });
                var r4 = await _mediator.Send(new CreatePlanAccionCommand()
                {
                    planes = createList
                });

                //var r5 = await _planAccion.Update(updateList);
                var r5 = await _mediator.Send(new UpdatePlanAccionCommand()
                {
                    planes = updateList
                });

                //var r6 = await _imagen.Upload(request.newFiles, COD_INCIDENTE);
                var r6 = await _mediator.Send(new CreateListFilesCommand { File = request.newFiles, NroDocReferencia = COD_INCIDENTE, NroSubDocReferencia = COD_INCIDENTE, CodTablaRef = "TINC" });

                // }catch(Exception e){
                //     var ee = e;
                // }

                return(0);
            }
            public async Task <string> Handle(CreateIncidenteCommand request, CancellationToken cancellationToken)
            {
                var nuevo   = new TIncidente();
                var dataInc = request.data;

                nuevo.CodIncidente = nextCod();

                //mapear datos generales
                nuevo = _mapper.Map(dataInc.DatosGenerales, nuevo);

                //mapear ICAN
                nuevo.Ticam = _mapper.Map <IList <ICAMDto>, IList <TIcam> >(dataInc.ICAM);
                int indexIcan = 0;

                foreach (var item in nuevo.Ticam)
                {
                    item.Correlativo = ++indexIcan;
                }

                //mapear analisis causa
                if (dataInc.AnalisisCausalidad != null)
                {
                    nuevo.TincidenteAnalisisCausa = _mapper.Map <IList <AnalisisCausalidadDto>, IList <TIncidenteAnalisisCausa> >(dataInc.AnalisisCausalidad);
                }

                //mapear detalles
                if (dataInc.Detalle != null)
                {
                    nuevo = _mapper.Map(dataInc.Detalle, nuevo);

                    nuevo.TequipoInvestigacion = _mapper.Map <IList <EquipoInvestigacionDetalleDto>, IList <TEquipoInvestigacion> >(dataInc.Detalle.EquipoInvestigacion);
                    int indexEI = 0;
                    foreach (var item in nuevo.TequipoInvestigacion)
                    {
                        item.Correlativo = ++indexEI;
                    }
                    nuevo.TsecuenciaEvento = _mapper.Map <IList <SecuenciaEventosDetalleDto>, IList <TSecuenciaEvento> >(dataInc.Detalle.SecuenciaEventos);
                    int indexSE = 0;
                    foreach (var item in nuevo.TsecuenciaEvento)
                    {
                        item.Correlativo = ++indexSE;
                    }
                    nuevo.TtestigoInvolucrado = _mapper.Map <IList <TestigosInvolucradosDetalleDto>, IList <TTestigoInvolucrado> >(dataInc.Detalle.TestigosInvolucrados);
                    int indexTI = 0;
                    foreach (var item in nuevo.TtestigoInvolucrado)
                    {
                        item.Correlativo = ++indexTI;
                    }
                }

                //mapear afectados
                var nuevoDetalleAfectado = _mapper.Map <AfectadosDescipcionesAccionesDto, TDetalleAfectado>(dataInc.AfectadosDescipcionesAcciones);

                nuevo.TdetalleAfectado.Add(nuevoDetalleAfectado);

                foreach (var item in dataInc.AfectadosDescipcionesAcciones.Afectados)
                {
                    if (item.tipoAfectado == TipoAfectado.Comunidad)
                    {
                        var data = _mapper.Map <ComunidadAfectadoDto, TAfectadoComunidad>(item.Comunidad);
                        nuevo.TafectadoComunidad.Add(data);
                    }
                    else if (item.tipoAfectado == TipoAfectado.Medio_Ambiente)
                    {
                        var data = _mapper.Map <MedioAmbienteAfectadoDto, TAfectadoMedioAmbiente>(item.MedioAmbiente);
                        nuevo.TafectadoMedioAmbiente.Add(data);
                    }
                    else if (item.tipoAfectado == TipoAfectado.Propiedad)
                    {
                        var data = _mapper.Map <PropiedadAfectadoDto, TAfectadoPropiedad>(item.Propiedad);
                        nuevo.TafectadoPropiedad.Add(data);
                    }
                    else if (item.tipoAfectado == TipoAfectado.Persona)
                    {
                        var data = _mapper.Map <PersonaAfectadoDto, TInvestigaAfectado>(item.Persona);
                        nuevo.TinvestigaAfectado.Add(data);
                        var diasPerdidiosAfectados = _mapper.Map <ICollection <MenAfectadoPersonaDto>, ICollection <TDiasPerdidosAfectado> >(item.Persona.Men);
                        int i = 1;
                        foreach (var itemDPA in diasPerdidiosAfectados)
                        {
                            itemDPA.CodPersona  = data.DocAfectado;
                            itemDPA.Correlativo = i++;
                        }
                        nuevo.TdiasPerdidosAfectado = diasPerdidiosAfectados;
                    }
                    else
                    {
                        throw new NotFoundException("", "");
                    }
                }

                //estado cerrado o pentiente
                if (dataInc.EstadoIncidente != null && (dataInc.EstadoIncidente.Equals("P") || dataInc.EstadoIncidente.Equals("C")))
                {
                    nuevo.EstadoIncidente = dataInc.EstadoIncidente;
                }
                else
                {
                    nuevo.EstadoIncidente = "P";
                }

                int index = 1;

                foreach (var item in nuevo.TafectadoComunidad)
                {
                    item.Correlativo = index++;
                }
                foreach (var item in nuevo.TafectadoMedioAmbiente)
                {
                    item.Correlativo = index++;
                }
                foreach (var item in nuevo.TafectadoPropiedad)
                {
                    item.Correlativo = index++;
                }
                foreach (var item in nuevo.TinvestigaAfectado)
                {
                    item.Correlativo = index++;
                }

                _context.TIncidente.Add(nuevo);

                var r1 = await _context.SaveChangesAsync(cancellationToken);

                //var r2 = await _imagenes.Upload(request.Files, nuevo.CodIncidente);
                var r2 = await _mediator.Send(new CreateListFilesCommand { File = request.Files, NroDocReferencia = nuevo.CodIncidente, NroSubDocReferencia = nuevo.CodIncidente, CodTablaRef = "TINC" });

                //var r3 = await _planAccion.Create(request.planAccion, nuevo.CodIncidente);
                request.planAccion.ForEach(t => { t.docReferencia = nuevo.CodIncidente; t.docSubReferencia = nuevo.CodIncidente; });
                var r3 = await _mediator.Send(new CreatePlanAccionCommand()
                {
                    planes = request.planAccion
                });

                return(nuevo.CodIncidente);
            }
            public async Task <int> Handle(DeleteIncidenteCommand request, CancellationToken cancellationToken)
            {
                string COD_INCIDENTE = request.Codigo;

                TIncidente incidente = _context.TIncidente.Find(COD_INCIDENTE);

                if (incidente == null || incidente.Estado == false)
                {
                    throw new NotFoundException("incidente", COD_INCIDENTE);
                }
                incidente.Estado = false;
                _context.TIncidente.Update(incidente);

                //ICAM
                incidente.Ticam = _context.TIcam.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.Ticam)
                {
                    item.Estado = false;
                }
                _context.TIcam.UpdateRange(incidente.Ticam);

                //analisis Causa
                incidente.TincidenteAnalisisCausa = _context.TIncidenteAnalisisCausa.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TincidenteAnalisisCausa)
                {
                    item.Estado = false;
                }
                _context.TIncidenteAnalisisCausa.UpdateRange(incidente.TincidenteAnalisisCausa);

                //detalle
                incidente.TequipoInvestigacion = _context.TEquipoInvestigacion.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TequipoInvestigacion)
                {
                    item.Estado = false;
                }
                _context.TEquipoInvestigacion.UpdateRange(incidente.TequipoInvestigacion);
                incidente.TsecuenciaEvento = _context.TSecuenciaEvento.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TsecuenciaEvento)
                {
                    item.Estado = false;
                }
                _context.TSecuenciaEvento.UpdateRange(incidente.TsecuenciaEvento);
                incidente.TtestigoInvolucrado = _context.TTestigoInvolucrado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TtestigoInvolucrado)
                {
                    item.Estado = false;
                }
                _context.TTestigoInvolucrado.UpdateRange(incidente.TtestigoInvolucrado);

                //afectados
                var DetalleAfectado = _context.TDetalleAfectado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).First();

                DetalleAfectado.Estado = false;
                _context.TDetalleAfectado.Update(DetalleAfectado);

                incidente.TafectadoComunidad = _context.TAfectadoComunidad.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TafectadoComunidad)
                {
                    item.Estado = false;
                }
                _context.TAfectadoComunidad.UpdateRange(incidente.TafectadoComunidad);

                incidente.TafectadoMedioAmbiente = _context.TAfectadoMedioAmbiente.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TafectadoMedioAmbiente)
                {
                    item.Estado = false;
                }
                _context.TAfectadoMedioAmbiente.UpdateRange(incidente.TafectadoMedioAmbiente);

                incidente.TafectadoPropiedad = _context.TAfectadoPropiedad.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TafectadoPropiedad)
                {
                    item.Estado = false;
                }
                _context.TAfectadoPropiedad.UpdateRange(incidente.TafectadoPropiedad);

                incidente.TinvestigaAfectado = _context.TInvestigaAfectado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TinvestigaAfectado)
                {
                    item.Estado = false;
                }
                _context.TInvestigaAfectado.UpdateRange(incidente.TinvestigaAfectado);

                incidente.TdiasPerdidosAfectado = _context.TDiasPerdidosAfectado.Where(t => t.CodIncidente.Equals(COD_INCIDENTE)).ToHashSet();
                foreach (var item in incidente.TdiasPerdidosAfectado)
                {
                    item.Estado = false;
                }
                _context.TInvestigaAfectado.UpdateRange(incidente.TinvestigaAfectado);

                //var ri = _imagen.Delete(COD_INCIDENTE);
                var ri = await _mediator.Send(new DeleteFileDocRefCommand()
                {
                    NroDocReferencia = COD_INCIDENTE
                });

                //var rplan = _planAccion.Delete(COD_INCIDENTE);
                var rplan = await _mediator.Send(new DeleteDocRefCommand()
                {
                    NroDocReferencia = COD_INCIDENTE
                });

                return(await _context.SaveChangesAsync(cancellationToken));
            }
Exemple #10
0
            public async Task <IncidenteDto> Handle(GetIncidenteQuery request, CancellationToken cancellationToken)
            {
                try{
                    var VM = new IncidenteDto();
                    var CODIGO_INCIDENTE = request.CodIncidente;

                    TIncidente objTIncidente = _context.TIncidente.Find(request.CodIncidente);

                    if (objTIncidente == null)
                    {
                        throw new NotFoundException("Incidente", request.CodIncidente);
                    }

                    VM.CodIncidente = request.CodIncidente;


                    //datos generales
                    VM.DatosGenerales = _mapper.Map <TIncidente, DatosGeneralesDto>(objTIncidente);

                    //analisis causa
                    VM.AnalisisCausalidad = _context.TIncidenteAnalisisCausa
                                            .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                            .ProjectTo <AnalisisCausalidadDto>(_mapper.ConfigurationProvider)
                                            .ToList();

                    //detalle
                    VM.Detalle = _mapper.Map <DetalleDto>(objTIncidente);

                    VM.Detalle.EquipoInvestigacion = _context.TEquipoInvestigacion
                                                     .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                                     .ProjectTo <EquipoInvestigacionDetalleDto>(_mapper.ConfigurationProvider)
                                                     .ToList();

                    VM.Detalle.SecuenciaEventos = _context.TSecuenciaEvento
                                                  .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                                  .ProjectTo <SecuenciaEventosDetalleDto>(_mapper.ConfigurationProvider)
                                                  .ToList();

                    VM.Detalle.TestigosInvolucrados = _context.TTestigoInvolucrado
                                                      .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                                                      .ProjectTo <TestigosInvolucradosDetalleDto>(_mapper.ConfigurationProvider)
                                                      .ToList();

                    //ICAM
                    VM.ICAM = _context.TIcam
                              .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                              .ProjectTo <ICAMDto>(_mapper.ConfigurationProvider)
                              .ToList();

                    //Estado Incidente
                    VM.EstadoIncidente = objTIncidente.EstadoIncidente;

                    //_mapper.Map<IList<ICAMDto>, IList<TIcam>>(dataInc.ICAM);

                    //Afectados
                    var DetalleAfectado = _context.TDetalleAfectado.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE)).FirstOrDefault();
                    VM.AfectadosDescipcionesAcciones = _mapper.Map <TDetalleAfectado, AfectadosDescipcionesAccionesDto>(DetalleAfectado);

                    var listAC = _context.TAfectadoComunidad.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));
                    foreach (var item in listAC)
                    {
                        var obj = new DetalleAfectadoDto();
                        obj.Comunidad    = _mapper.Map <ComunidadAfectadoDto>(item);
                        obj.tipoAfectado = TipoAfectado.Comunidad;
                        VM.AfectadosDescipcionesAcciones.Afectados.Add(obj);
                    }

                    var listMA = _context.TAfectadoMedioAmbiente.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));
                    foreach (var item in listMA)
                    {
                        var obj = new DetalleAfectadoDto();
                        obj.MedioAmbiente = _mapper.Map <MedioAmbienteAfectadoDto>(item);
                        obj.tipoAfectado  = TipoAfectado.Medio_Ambiente;
                        VM.AfectadosDescipcionesAcciones.Afectados.Add(obj);
                    }

                    var listProp = _context.TAfectadoPropiedad.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));
                    foreach (var item in listProp)
                    {
                        var obj = new DetalleAfectadoDto();
                        obj.Propiedad    = _mapper.Map <PropiedadAfectadoDto>(item);
                        obj.tipoAfectado = TipoAfectado.Propiedad;
                        VM.AfectadosDescipcionesAcciones.Afectados.Add(obj);
                    }

                    var listPersona = _context.TInvestigaAfectado.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));
                    foreach (var item in listPersona)
                    {
                        var obj = new DetalleAfectadoDto();
                        obj.Persona      = _mapper.Map <PersonaAfectadoDto>(item);
                        obj.tipoAfectado = TipoAfectado.Persona;
                        obj.Persona.Men  = _context.TDiasPerdidosAfectado
                                           .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE) && t.CodPersona.Equals(obj.Persona.DocAfectado))
                                           .ProjectTo <MenAfectadoPersonaDto>(_mapper.ConfigurationProvider)
                                           .ToList();
                        VM.AfectadosDescipcionesAcciones.Afectados.Add(obj);
                    }


                    return(VM);
                }
                catch (System.Exception e) {
                    var ee = e;
                    throw;
                }
            }
Exemple #11
0
            public async Task <AfectadosDescipcionesAccionesDto> Handle(GetAfectadosDescipcionesAccionesQuery request, CancellationToken cancellationToken)
            {
                var VM = new AfectadosDescipcionesAccionesDto();
                var CODIGO_INCIDENTE = request.CodIncidente;

                TIncidente objTIncidente = _context.TIncidente.Find(request.CodIncidente);

                if (objTIncidente == null || objTIncidente.Estado == false)
                {
                    throw new NotFoundException("Incidente", request.CodIncidente);
                }


                //_mapper.Map<IList<ICAMDto>, IList<TIcam>>(dataInc.ICAM);
                VM = _context.TDetalleAfectado
                     .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE))
                     .ProjectTo <AfectadosDescipcionesAccionesDto>(_mapper.ConfigurationProvider)
                     .FirstOrDefault();

                var listAC = _context.TAfectadoComunidad.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listAC)
                {
                    var obj = new DetalleAfectadoDto();
                    obj.Comunidad    = _mapper.Map <ComunidadAfectadoDto>(item);
                    obj.tipoAfectado = TipoAfectado.Comunidad;
                    VM.Afectados.Add(obj);
                }

                var listMA = _context.TAfectadoMedioAmbiente.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listMA)
                {
                    var obj = new DetalleAfectadoDto();
                    obj.MedioAmbiente = _mapper.Map <MedioAmbienteAfectadoDto>(item);
                    obj.tipoAfectado  = TipoAfectado.Medio_Ambiente;
                    VM.Afectados.Add(obj);
                }

                var listProp = _context.TAfectadoPropiedad.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listProp)
                {
                    var obj = new DetalleAfectadoDto();
                    obj.Propiedad    = _mapper.Map <PropiedadAfectadoDto>(item);
                    obj.tipoAfectado = TipoAfectado.Propiedad;
                    VM.Afectados.Add(obj);
                }

                var listPersona = _context.TInvestigaAfectado.Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE));

                foreach (var item in listPersona)
                {
                    var obj = new DetalleAfectadoDto();
                    obj.Persona      = _mapper.Map <PersonaAfectadoDto>(item);
                    obj.tipoAfectado = TipoAfectado.Persona;
                    obj.Persona.Men  = _context.TDiasPerdidosAfectado
                                       .Where(t => t.CodIncidente.Equals(CODIGO_INCIDENTE) && t.CodPersona.Equals(obj.Persona.DocAfectado))
                                       .ProjectTo <MenAfectadoPersonaDto>(_mapper.ConfigurationProvider)
                                       .ToList();

                    VM.Afectados.Add(obj);
                }



                return(VM);
            }