public async Task <int> Handle(DeleteAuditoriaCommand request, CancellationToken cancellationToken) { string COD_AUDITORIA = request.Codigo; var TAuditoria = _context.TAuditoria.Where(t => t.Estado == true && t.CodAuditoria.Equals(request.Codigo)).FirstOrDefault(); IList <string> list_codigo_hallazgo = new List <string>(); if (TAuditoria == null) { throw new NotFoundException("Auditoria", COD_AUDITORIA); } TAuditoria.Estado = false; _context.TAuditoria.Update(TAuditoria); var listEquipo = _context.TEquipoAuditor.Where(t => t.Estado == true && t.CodAuditoria.Equals(COD_AUDITORIA)); foreach (var itemEquipo in listEquipo) { itemEquipo.Estado = false; } _context.TEquipoAuditor.UpdateRange(listEquipo); var listHallasgo = _context.THallazgos .Where(t => t.Estado == true && t.CodAuditoria.Equals(COD_AUDITORIA)) .ToHashSet(); foreach (var itemHallazgo in listHallasgo) { itemHallazgo.Estado = false; if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.NoConformidad) { var item = _context.TAnalisisHallazgo.Where(t => t.Estado == true && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo)).FirstOrDefault(); item.Estado = false; var listAnaCausalidad = _context.TAuditoriaAnalisisCausalidad .Where(t => t.Estado == true && t.CodHallazgo.Equals(item.CodHallazgo)) .ToHashSet(); foreach (var itemAnaCausalidad in listAnaCausalidad) { itemAnaCausalidad.Estado = false; _context.TAuditoriaAnalisisCausalidad.Update(itemAnaCausalidad); } _context.TAnalisisHallazgo.Update(item); } if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.Observacion) { var item = _context.TDatosHallazgo.Where(t => t.Estado == true && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo)).FirstOrDefault(); item.Estado = false; _context.TDatosHallazgo.Update(item); } if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.OportunidadMejora) { var item = _context.TDatosHallazgo.Where(t => t.Estado == true && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo)).FirstOrDefault(); item.Estado = false; _context.TDatosHallazgo.Update(item); } if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.RequiereCorreccion) { var item = _context.TDatosHallazgo.Where(t => t.Estado == true && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo)).FirstOrDefault(); item.Estado = false; _context.TDatosHallazgo.Update(item); } list_codigo_hallazgo.Add(itemHallazgo.CodHallazgo); TAudCartilla AudCC = _context.TAudCartilla.Where(t => t.Estado == true && t.CodAuditoria.Equals(COD_AUDITORIA)).FirstOrDefault(); if (AudCC != null) { AudCC.Estado = true; _context.TAudCartilla.Update(AudCC); var listCCCriterios = _context.TAudCCCriterio .Where(t => t.Estado == true && t.CodAuditoria.Equals(COD_AUDITORIA) && t.CodCartilla.Equals(AudCC.CodCartilla)) .ToHashSet(); foreach (var itemCCCriterios in listCCCriterios) { itemCCCriterios.Estado = false; _context.TAudCCCriterio.Update(itemCCCriterios); } } } //var ri = _imagen.Delete(COD_AUDITORIA); var ri = await _mediator.Send(new DeleteFileDocRefCommand() { NroDocReferencia = COD_AUDITORIA }); //foreach (var itemCodigoHallazgo in list_codigo_hallazgo){ // var te = _planAccion.Delete(itemCodigoHallazgo); //} var te = await _mediator.Send(new DeleteDocRefCommand() { NroDocReferencia = COD_AUDITORIA }); return(await _context.SaveChangesAsync(cancellationToken)); }
public async Task <string> Handle(CreateAuditoriaCommand request, CancellationToken cancellationToken) { // Monitor.Enter(this); try{ // lock (this){ List <PlanVM> list_plan_accion = new List <PlanVM>(); var nuevo = _mapper.Map <AuditoriaDto, TAuditoria>(request.data); int addAuditorIndex = 0; foreach (var auditorDto in request.data.Equipo) { var addAuditorT = _mapper.Map <EquipoAuditorDto, TEquipoAuditor>(auditorDto); addAuditorT.Correlativo = addAuditorIndex++; nuevo.TEquipoAuditor.Add(addAuditorT); } var nuevoCodigo = nextCod(); var nextCorrelativo = nextCorrelativoHallazgo(); var CodigoHallazgo = nextCodHallazgo(); foreach (var hallasgoDto in request.data.Hallazgos) { CodigoHallazgo = nextCodHallazgo(CodigoHallazgo); var hallasgoT = _mapper.Map <HallazgoDto, THallazgos>(hallasgoDto); hallasgoT.CodHallazgo = CodigoHallazgo; nuevo.THallazgos.Add(hallasgoT); if (hallasgoDto.NoConformidad != null) { hallasgoT.CodTipoHallazgo = TipoHallazgo.NoConformidad; var AnalisisHallasgo = _mapper.Map <NoConformidadDto, TAnalisisHallazgo>(hallasgoDto.NoConformidad); AnalisisHallasgo.CodHallazgo = CodigoHallazgo; AnalisisHallasgo.CodTipoHallazgo = TipoHallazgo.NoConformidad; _context.TAnalisisHallazgo.Add(AnalisisHallasgo); if (hallasgoDto.NoConformidad.AnalisisCausalidad != null) { foreach (var analsisCausalidadDto in hallasgoDto.NoConformidad.AnalisisCausalidad) { var TAnalisisCausalidad = _mapper.Map <AnalisisCausalidadDto, TAuditoriaAnalisisCausalidad>(analsisCausalidadDto); TAnalisisCausalidad.CodHallazgo = CodigoHallazgo; _context.TAuditoriaAnalisisCausalidad.Add(TAnalisisCausalidad); } } } if (hallasgoDto.Observacion != null) { hallasgoT.CodTipoHallazgo = TipoHallazgo.Observacion; var ObservacionT = _mapper.Map <DatosHallazgoDto, TDatosHallazgo>(hallasgoDto.Observacion); ObservacionT.CodHallazgo = CodigoHallazgo; ObservacionT.CodTipoHallazgo = TipoHallazgo.Observacion; ObservacionT.Correlativo = nextCorrelativo; nextCorrelativo = nextCorrelativoHallazgo(nextCorrelativo); _context.TDatosHallazgo.Add(ObservacionT); } if (hallasgoDto.OportunidadMejora != null) { hallasgoT.CodTipoHallazgo = TipoHallazgo.OportunidadMejora; var OportunidadMejoraT = _mapper.Map <DatosHallazgoDto, TDatosHallazgo>(hallasgoDto.OportunidadMejora); OportunidadMejoraT.CodHallazgo = CodigoHallazgo; OportunidadMejoraT.CodTipoHallazgo = TipoHallazgo.OportunidadMejora; OportunidadMejoraT.Correlativo = nextCorrelativo; nextCorrelativo = nextCorrelativoHallazgo(nextCorrelativo); _context.TDatosHallazgo.Add(OportunidadMejoraT); } if (hallasgoDto.RequiereCorreccion != null) { hallasgoT.CodTipoHallazgo = TipoHallazgo.RequiereCorreccion; var RequiereCorreccionT = _mapper.Map <DatosHallazgoDto, TDatosHallazgo>(hallasgoDto.RequiereCorreccion); RequiereCorreccionT.CodHallazgo = CodigoHallazgo; RequiereCorreccionT.CodTipoHallazgo = TipoHallazgo.RequiereCorreccion; RequiereCorreccionT.Correlativo = nextCorrelativo; nextCorrelativo = nextCorrelativoHallazgo(nextCorrelativo); _context.TDatosHallazgo.Add(RequiereCorreccionT); } if (hallasgoDto.planAccion != null) { foreach (var plan in hallasgoDto.planAccion) { plan.docReferencia = nuevoCodigo; plan.docSubReferencia = CodigoHallazgo; list_plan_accion.Add(plan); } } } //control critico TAudCartilla AudCC = null; if (request.data.ControlCritico != null) { //malabares del modelado :V AudCC = _mapper.Map <ControlCriticoDto, TAudCartilla>(request.data.ControlCritico); AudCC.CodAuditoria = nuevoCodigo; AudCC.TAudCCCriterio = _mapper.Map <ICollection <CCCriteriosDto>, ICollection <TAudCCCriterio> >(request.data.ControlCritico.Criterios); _context.TAudCartilla.Add(AudCC); } nuevo.CodAuditoria = nuevoCodigo; _context.TAuditoria.Add(nuevo); var ii = await _context.SaveChangesAsync(cancellationToken); //var pa = await _planAccion.Create(list_plan_accion,""); var pa = await _mediator.Send(new CreatePlanAccionCommand() { planes = list_plan_accion }); return(nuevo.CodAuditoria); // } } catch (Exception e) { var ee = e; throw e; } finally { // Monitor.Exit(this); } }
public async Task <GetAuditoriaVM> Handle(GetAuditoriaQuery request, CancellationToken cancellationToken) { try{ var data = new GetAuditoriaVM(); var auditoria_T = _context.TAuditoria.Where( t => t.Estado == true && t.CodAuditoria.Equals(request.CodAuditoria) ) .FirstOrDefault(); if (auditoria_T == null) { throw new NotFoundException("Auditoria", request.CodAuditoria); } // esta linea puede causa error en el colapso de la memeoria si susede duplicar el parametro //var planAccion = await _planAccion.Get(request.CodAuditoria); var planAccion = await _mediator.Send(new GetPlanAccionDocReferenciaQuery() { DocReferencia = request.CodAuditoria }); // foreach(var plan in planAccion){ // foreach(var responsable in plan.responsable){ // } // } data.data = _mapper.Map <TAuditoria, AuditoriaDto>(auditoria_T); //Equipo Auditor data.data.Equipo = _context.TEquipoAuditor .Where(t => t.Estado == true && t.CodAuditoria.Equals(request.CodAuditoria)) .ProjectTo <EquipoAuditorDto>(_mapper.ConfigurationProvider) .ToHashSet(); data.data.Hallazgos = _context.THallazgos .Where(t => t.Estado == true && t.CodAuditoria.Equals(request.CodAuditoria)) .ProjectTo <HallazgoDto>(_mapper.ConfigurationProvider) .ToHashSet(); foreach (var itemHallazgo in data.data.Hallazgos) { if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.NoConformidad) { var item = _context.TAnalisisHallazgo .Where(t => t.Estado == true && t.CodHallazgo.Equals(itemHallazgo.CodHallazgo) && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo) ).FirstOrDefault(); itemHallazgo.NoConformidad = _mapper.Map <TAnalisisHallazgo, NoConformidadDto>(item); itemHallazgo.NoConformidad.AnalisisCausalidad = _context.TAuditoriaAnalisisCausalidad .Where(t => t.Estado == true && t.CodHallazgo.Equals(item.CodHallazgo)) .ProjectTo <AnalisisCausalidadDto>(_mapper.ConfigurationProvider) .ToHashSet(); itemHallazgo.NoConformidad.AnalisisCausalidad = await addInformacionYdescripcion(itemHallazgo.NoConformidad.AnalisisCausalidad); } if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.Observacion) { var item = _context.TDatosHallazgo .Where(t => t.Estado == true && t.CodHallazgo.Equals(itemHallazgo.CodHallazgo) && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo) ).FirstOrDefault(); itemHallazgo.Observacion = _mapper.Map <TDatosHallazgo, DatosHallazgoDto>(item); } if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.OportunidadMejora) { var item = _context.TDatosHallazgo .Where(t => t.Estado == true && t.CodHallazgo.Equals(itemHallazgo.CodHallazgo) && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo) ).FirstOrDefault(); itemHallazgo.OportunidadMejora = _mapper.Map <TDatosHallazgo, DatosHallazgoDto>(item); } if (itemHallazgo.CodTipoHallazgo == TipoHallazgo.RequiereCorreccion) { var item = _context.TDatosHallazgo .Where(t => t.Estado == true && t.CodHallazgo.Equals(itemHallazgo.CodHallazgo) && t.CodTipoHallazgo.Equals(itemHallazgo.CodTipoHallazgo) ).FirstOrDefault(); itemHallazgo.RequiereCorreccion = _mapper.Map <TDatosHallazgo, DatosHallazgoDto>(item); } itemHallazgo.planAccion = planAccion.data.Where(t => t.docSubReferencia.Equals(itemHallazgo.CodHallazgo)).ToList(); } TAudCartilla AudCC = _context.TAudCartilla.Where(t => t.Estado == true && t.CodAuditoria.Equals(request.CodAuditoria)).FirstOrDefault(); if (AudCC != null) { data.data.ControlCritico = _mapper.Map <TAudCartilla, ControlCriticoDto>(AudCC); data.data.ControlCritico.Criterios = _context.TAudCCCriterio .Where(t => t.Estado == true && t.CodAuditoria.Equals(request.CodAuditoria) && t.CodCartilla.Equals(AudCC.CodCartilla)) .ProjectTo <CCCriteriosDto>(_mapper.ConfigurationProvider) .ToHashSet(); } return(data); }catch (Exception e) { var ee = e; throw e; } }