Пример #1
0
            public async Task <Unit> Handle(DeleteObservacionCommand request, CancellationToken cancellationToken)
            {
                string COD_OBSERVACION = (request.CodObservacion);

                TObservacion obs = _context.TObservaciones.Find(COD_OBSERVACION);

                obs.Estado = false;
                _context.TObservaciones.Update(obs);

                if (obs.CodTipoObservacion == 1) //TipoObservacion.Comportamiento
                {
                    eliminarComportamiento(COD_OBSERVACION);
                }
                else if (obs.CodTipoObservacion == 2) //TipoObservacion.Condicion
                {
                    eliminarCondicion(COD_OBSERVACION);
                }
                else if (obs.CodTipoObservacion == 3) //TipoObservacion.Tarea
                {
                    eliminarTarea(COD_OBSERVACION);
                }
                else if (obs.CodTipoObservacion == 4 && obs.CodSubTipoObs == "1") //TipoObservacion.Iteraccion_Seguridad
                {
                    eliminarIteraccionSeguridad(COD_OBSERVACION);
                }
                else if (obs.CodTipoObservacion == 4 && obs.CodSubTipoObs == "1") //TipoObservacion.Iteraccion_Seguridad
                {
                    eliminarIteraccionSeguridad(COD_OBSERVACION);
                }
                else if (obs.CodTipoObservacion == 4 && obs.CodSubTipoObs == "1") // TipoObservacion.Iteraccion_Seguridad
                {
                    eliminarVerificacionControlCritico(COD_OBSERVACION);
                }


                var r1 = await _context.SaveChangesAsync(cancellationToken);

                //var r2 = await _planAccion.DeleteByCodRef(COD_OBSERVACION);
                var r2 = await _mediator.Send(new DeleteDocRefCommand()
                {
                    NroDocReferencia = COD_OBSERVACION
                });

                //var r3 = await _imagen.DeleteByRefe(COD_OBSERVACION);
                var r3 = await _mediator.Send(new DeleteFileDocRefCommand()
                {
                    NroDocReferencia = COD_OBSERVACION
                });

                return(Unit.Value);
            }
Пример #2
0
            public async Task <string> Handle(CreateObservacionCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    string         CodObservacion = nextCod();
                    ObservacionDto obsNueva       = request.data;
                    if (obsNueva.CodTipoObservacion.Length > 1)
                    {
                        obsNueva.CodSubTipoObs      = obsNueva.CodTipoObservacion.Substring(2, 1);
                        obsNueva.CodTipoObservacion = obsNueva.CodTipoObservacion.Substring(0, 1);
                    }

                    TObservacion obs = _mapper.Map <ObservacionDto, TObservacion>(obsNueva);
                    obs.CodObservacion = CodObservacion;
                    _context.TObservaciones.Add(obs);
                    //await _context.SaveChangesAsync(cancellationToken);
                    //obs.CodObservacion = string.Format("OBS{0,10:D10}", obs.Correlativo);

                    if (obsNueva.Tarea != null)
                    {
                        TObservacionTarea tarea = _mapper.Map <TareaDto, TObservacionTarea>(obsNueva.Tarea);
                        tarea.CodObservacion = CodObservacion;
                        _context.TObservacionTareas.Add(tarea);
                        foreach (string persona in obsNueva.Tarea.PersonaObservadas)
                        {
                            TObsTaPersonaObservada temp = new TObsTaPersonaObservada();
                            temp.CodPersonaMiembro = persona;
                            temp.CodObservacion    = CodObservacion;
                            _context.TObsTaPersonaObservadas.Add(temp);
                        }
                        foreach (RegistroEncuestaDto encuesta in obsNueva.Tarea.RegistroEncuestas)
                        {
                            TObsTaRegistroEncuesta temp = _mapper.Map <TObsTaRegistroEncuesta>(encuesta);
                            temp.CodObservacion = CodObservacion;
                            _context.TObsTaRegistroEncuestas.Add(temp);
                        }
                        int correlativo = 1;
                        foreach (EtapaTareaDto etapa in obsNueva.Tarea.EtapaTareas)
                        {
                            TObsTaEtapaTarea temp = _mapper.Map <TObsTaEtapaTarea>(etapa);
                            temp.CodObservacion = CodObservacion;
                            temp.Correlativo    = correlativo++;
                            _context.TObsTaEtapaTareas.Add(temp);
                        }
                        int orden = 1;
                        foreach (ComentarioDto comentario in obsNueva.Tarea.Comentarios)
                        {
                            TObsTaComentario temp = _mapper.Map <TObsTaComentario>(comentario);
                            temp.CodObservacion = CodObservacion;
                            temp.Orden          = orden++;
                            _context.TObsTaComentarios.Add(temp);
                        }
                    }
                    else if (obsNueva.Comportamiento != null)
                    {
                        TObservacionComportamiento comportamiento = _mapper.Map <ComportamientoDto, TObservacionComportamiento>(obsNueva.Comportamiento);
                        comportamiento.CodObservacion = obs.CodObservacion;
                        _context.TObservacionComportamientos.Add(comportamiento);
                    }
                    else if (obsNueva.Condicion != null)
                    {
                        TObservacionCondicion condicion = _mapper.Map <CondicionDto, TObservacionCondicion>(obsNueva.Condicion);
                        condicion.CodObservacion = obs.CodObservacion;
                        _context.TObservacionCondiciones.Add(condicion);
                    }
                    else if (obsNueva.IteraccionSeguridad != null)
                    {
                        TObservacionIteraccion iteraccion = _mapper.Map <IteraccionSeguridadDto, TObservacionIteraccion>(obsNueva.IteraccionSeguridad);
                        iteraccion.CodObservacion = obs.CodObservacion;

                        _context.TObservacionIteracciones.Add(iteraccion);

                        foreach (String CodDescripcion in obsNueva.IteraccionSeguridad.MetodologiaGestionRiesgos)
                        {
                            TObsISRegistroEncuesta temp = new TObsISRegistroEncuesta();
                            temp.CodObservacion = CodObservacion;
                            temp.CodDescripcion = CodDescripcion;
                            temp.CodEncuesta    = TipoEncuestaIteraccion.MetodologiaGestionRiesgos.GetHashCode().ToString();
                            _context.TObsISRegistroEncuestas.Add(temp);
                        }
                        foreach (String CodDescripcion in obsNueva.IteraccionSeguridad.ActividadAltoRiesgo)
                        {
                            TObsISRegistroEncuesta temp = new TObsISRegistroEncuesta();
                            temp.CodObservacion = CodObservacion;
                            temp.CodDescripcion = CodDescripcion;
                            temp.CodEncuesta    = TipoEncuestaIteraccion.ActividadAltoRiesgo.GetHashCode().ToString();
                            _context.TObsISRegistroEncuestas.Add(temp);
                        }
                        foreach (String CodDescripcion in obsNueva.IteraccionSeguridad.ClasificacionObservacion)
                        {
                            TObsISRegistroEncuesta temp = new TObsISRegistroEncuesta();
                            temp.CodObservacion = CodObservacion;
                            temp.CodDescripcion = CodDescripcion;
                            temp.CodEncuesta    = TipoEncuestaIteraccion.ClasificacionObservacion.GetHashCode().ToString();
                            _context.TObsISRegistroEncuestas.Add(temp);
                        }
                        foreach (String CodDescripcion in obsNueva.IteraccionSeguridad.ComportamientoRiesgoCondicion)
                        {
                            TObsISRegistroEncuesta temp = new TObsISRegistroEncuesta();
                            temp.CodObservacion = CodObservacion;
                            temp.CodDescripcion = CodDescripcion;
                            temp.CodEncuesta    = TipoEncuestaIteraccion.ComportamientoRiesgoCondicion.GetHashCode().ToString();
                            _context.TObsISRegistroEncuestas.Add(temp);
                        }
                    }
                    else if (obsNueva.VerificacionControlCritico != null)
                    {
                        TObservacionVerControlCritico vcc = _mapper.Map <VerificacionControlCriticoDto, TObservacionVerControlCritico>(obsNueva.VerificacionControlCritico);
                        vcc.CodObservacion = obs.CodObservacion;
                        string codigoVCC = nextCodVCC();
                        vcc.CodVcc = codigoVCC;
                        _context.TObservacionVerControlCritico.Add(vcc);
                        ICollection <string> herramientas = obsNueva.VerificacionControlCritico.Herramientas;
                        foreach (var item in herramientas)
                        {
                            var data = new TObsVCCHerramienta();
                            data.CodDesHe = item;
                            data.CodVcc   = codigoVCC;
                            _context.TObsVCCHerramienta.Add(data);
                        }
                        ICollection <CriterioDto> Criterios = obsNueva.VerificacionControlCritico.Criterios;

                        var ControlCritico = Criterios.GroupBy(t => t.CodCC).Select(t => t.Key).ToList();
                        foreach (var item in ControlCritico)
                        {
                            var data = new TObsVCCVerCCEfectividad();
                            data.CodCC       = item;
                            data.CodVcc      = codigoVCC;
                            data.CodCartilla = obsNueva.VerificacionControlCritico.CodCartilla;
                            data.Efectividad = efectividad(Criterios).ToString();
                            _context.TObsVCCVerCCEfectividad.Add(data);
                        }

                        foreach (var item in Criterios)
                        {
                            var data = _mapper.Map <CriterioDto, TObsVCCRespuesta>(item);
                            data.CodVcc = codigoVCC;
                            _context.TObsVCCRespuesta.Add(data);
                        }
                        ICollection <CierreInteraccionDto> CierreInteraccion = obsNueva.VerificacionControlCritico.CierreInteracion;
                        foreach (var item in CierreInteraccion)
                        {
                            var data = _mapper.Map <CierreInteraccionDto, TObsVCCCierreIteraccion>(item);
                            data.CodVcc = codigoVCC;
                            _context.TObsVCCCierreIteraccion.Add(data);
                        }
                    }
                    else if (obsNueva.Covid19 != null)
                    {
                        TObservacionVerControlCritico vcc = _mapper.Map <VerificacionControlCriticoDto, TObservacionVerControlCritico>(obsNueva.Covid19);
                        vcc.CodObservacion = obs.CodObservacion;
                        string codigoVCC = nextCodVCC();
                        vcc.CodVcc = codigoVCC;
                        _context.TObservacionVerControlCritico.Add(vcc);
                        ICollection <string> herramientas = obsNueva.Covid19.Herramientas;
                        foreach (var item in herramientas)
                        {
                            var data = new TObsVCCHerramienta();
                            data.CodDesHe = item;
                            data.CodVcc   = codigoVCC;
                            _context.TObsVCCHerramienta.Add(data);
                        }
                        ICollection <CriterioDto> Criterios = obsNueva.Covid19.Criterios;

                        var ControlCritico = Criterios.GroupBy(t => t.CodCC).Select(t => t.Key).ToList();
                        foreach (var item in ControlCritico)
                        {
                            var data = new TObsVCCVerCCEfectividad();
                            data.CodCC  = item;
                            data.CodVcc = codigoVCC;
                            //data.CodCartilla = obsNueva.VerificacionControlCritico.CodCartilla;
                            data.CodCartilla = obsNueva.Covid19.CodCartilla;
                            data.Efectividad = efectividad(Criterios).ToString();
                            _context.TObsVCCVerCCEfectividad.Add(data);
                        }

                        foreach (var item in Criterios)
                        {
                            var data = _mapper.Map <CriterioDto, TObsVCCRespuesta>(item);
                            data.CodVcc = codigoVCC;
                            _context.TObsVCCRespuesta.Add(data);
                        }
                        ICollection <CierreInteraccionDto> CierreInteraccion = obsNueva.Covid19.CierreInteracion;
                        foreach (var item in CierreInteraccion)
                        {
                            var data = _mapper.Map <CierreInteraccionDto, TObsVCCCierreIteraccion>(item);
                            data.CodVcc = codigoVCC;
                            _context.TObsVCCCierreIteraccion.Add(data);
                        }
                    }

                    //try
                    //{
                    //    var r1 = await _context.SaveChangesAsync(cancellationToken);
                    //    var r2 = await _imagen.Upload(obsNueva.files, CodObservacion);
                    //    var r3 = await _planAccion.Create(obsNueva.PlanAccion, CodObservacion);
                    //}
                    //catch (Exception e)
                    //{
                    //    Console.WriteLine(e);
                    //}

                    var r1 = await _context.SaveChangesAsync(cancellationToken);


                    //var r2 = await _imagen.Upload(obsNueva.files, CodObservacion);
                    var r2 = await _mediator.Send(new CreateListFilesCommand { File = obsNueva.files, NroDocReferencia = CodObservacion, NroSubDocReferencia = CodObservacion, CodTablaRef = "TOBS" });

                    //var r3 = await _planAccion.Create(obsNueva.PlanAccion, CodObservacion);
                    obsNueva.PlanAccion.ForEach(t => { t.docReferencia = CodObservacion; t.docSubReferencia = CodObservacion; });
                    var r3 = await _mediator.Send(new CreatePlanAccionCommand()
                    {
                        planes = obsNueva.PlanAccion
                    });

                    return(CodObservacion);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw e;
                }
            }
Пример #3
0
            public async Task <Unit> Handle(UpdateObservacionCommand request, CancellationToken cancellationToken)
            {
                try {
                    ObservacionDto obsDto         = request.data;
                    string         CodObservacion = obsDto.CodObservacion;

                    TObservacion obs = _context.TObservaciones.First(o => o.CodObservacion.Equals(CodObservacion));

                    //int oldTipo = obs.CodTipoObservacion;
                    string oldTipo = (obs.CodTipoObservacion == 4) ? obs.CodTipoObservacion + "." + obs.CodSubTipoObs : obs.CodTipoObservacion.ToString();

                    if (obsDto.CodTipoObservacion.Length > 1)
                    {
                        obsDto.CodSubTipoObs      = obsDto.CodTipoObservacion.Substring(2, 1);
                        obsDto.CodTipoObservacion = obsDto.CodTipoObservacion.Substring(0, 1);
                    }

                    obs = _mapper.Map <ObservacionDto, TObservacion> (obsDto, obs);

                    //int newTipo = obs.CodTipoObservacion;
                    string newTipo = (obs.CodTipoObservacion == 4) ? obs.CodTipoObservacion + "." + obs.CodSubTipoObs : obs.CodTipoObservacion.ToString();

                    _strategia = _tipos.First(t => t.Item1 == oldTipo).Item2;  // seleccion de subtipo
                    //_strategia.DeleteSubtipo (obs.CodObservacion);
                    _strategia.DeleteDetalleSubtipo(obs.CodObservacion);

                    _strategia = _tipos.First(t => t.Item1 == newTipo).Item2;  // seleccion de subtipo
                    _strategia.UpsertSubTipo(obsDto);
                    _strategia.CreateDetalleSubTipo(obsDto);



                    _context.TObservaciones.Update(obs);
                    await _context.SaveChangesAsync(cancellationToken);

                    foreach (var item in obsDto.FilesSTR)
                    {
                        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 obsDto.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, CodObservacion);
                    createList.ForEach(t => { t.docReferencia = CodObservacion; t.docSubReferencia = CodObservacion; });
                    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 (obsDto.files, CodObservacion);
                    var r6 = await _mediator.Send(new CreateListFilesCommand { File = obsDto.files, NroDocReferencia = CodObservacion, NroSubDocReferencia = CodObservacion, CodTablaRef = "TOBS" });

                    return(Unit.Value);
                } catch (Exception e) {
                    var ee = e;
                    throw e;
                }
            }
Пример #4
0
            public async Task <ObservacionVM> Handle(GetObservacionQuery request, CancellationToken cancellationToken)
            {
                TObservacion obs = _context.TObservaciones
                                   .FirstOrDefault(o => o.Estado == true && o.CodObservacion.Equals(request.CodObservacion));

                if (obs == null)
                {
                    throw new NotFoundException("observacion", request.CodObservacion);
                }

                string        COD_OBSERVACION = obs.CodObservacion;
                ObservacionVM obsVM           = _mapper.Map <TObservacion, ObservacionVM>(obs);

                obsVM.CodTipoObservacion = (obsVM.CodSubTipoObs != null && obsVM.CodSubTipoObs != "") ? obsVM.CodTipoObservacion + "." + obsVM.CodSubTipoObs : obsVM.CodTipoObservacion;

                if (obsVM.CodTipoObservacion == "3") //obs.CodTipoObservacion == TipoObservacion.Tarea
                {
                    TObservacionTarea obs_tarea = _context.TObservacionTareas
                                                  .First(ocon => ocon.CodObservacion.Equals(COD_OBSERVACION));
                    obsVM.Tarea = _mapper.Map <TObservacionTarea, TareaDto>(obs_tarea);

                    obsVM.Tarea.RegistroEncuestas = _context.TObsTaRegistroEncuestas
                                                    .Where(t => t.CodObservacion.Equals(COD_OBSERVACION))
                                                    .ProjectTo <RegistroEncuestaDto>(_mapper.ConfigurationProvider)
                                                    .ToList();
                    obsVM.Tarea.EtapaTareas = _context.TObsTaEtapaTareas
                                              .Where(t => t.CodObservacion.Equals(COD_OBSERVACION))
                                              .ProjectTo <EtapaTareaDto>(_mapper.ConfigurationProvider)
                                              .ToList();
                    obsVM.Tarea.Comentarios = _context.TObsTaComentarios
                                              .Where(t => t.CodObservacion.Equals(COD_OBSERVACION))
                                              .ProjectTo <ComentarioDto>(_mapper.ConfigurationProvider)
                                              .ToList();
                    obsVM.Tarea.PersonaObservadas = _context.TObsTaPersonaObservadas
                                                    .Where(t => t.CodObservacion.Equals(COD_OBSERVACION))
                                                    .Select(t => t.CodPersonaMiembro)
                                                    .ToList();
                }
                if (obsVM.CodTipoObservacion == "4.1") //obs.CodTipoObservacion == TipoObservacion.Iteraccion_Seguridad
                {
                    TObservacionIteraccion obs_iteraccion = _context.TObservacionIteracciones
                                                            .First(ocon => ocon.CodObservacion.Equals(obs.CodObservacion));
                    obsVM.IteraccionSeguridad = _mapper.Map <TObservacionIteraccion, IteraccionSeguridadDto>(obs_iteraccion);

                    IList <TObsISRegistroEncuesta> list = _context
                                                          .TObsISRegistroEncuestas
                                                          .Where(orem => orem.CodObservacion.Equals(COD_OBSERVACION))
                                                          .ToList();

                    IList <TObsISRegistroEncuesta> listTemp;
                    listTemp = list.Where(t => t.CodEncuesta.Equals(TipoEncuestaIteraccion.ActividadAltoRiesgo.GetHashCode().ToString())).ToList();
                    foreach (var obj in listTemp)
                    {
                        obsVM.IteraccionSeguridad.ActividadAltoRiesgo.Add(obj.CodDescripcion.ToString());
                    }
                    listTemp = list.Where(t => t.CodEncuesta.Equals(TipoEncuestaIteraccion.ClasificacionObservacion.GetHashCode().ToString())).ToList();
                    foreach (var obj in listTemp)
                    {
                        obsVM.IteraccionSeguridad.ClasificacionObservacion.Add(obj.CodDescripcion.ToString());
                    }
                    listTemp = list.Where(t => t.CodEncuesta.Equals(TipoEncuestaIteraccion.ComportamientoRiesgoCondicion.GetHashCode().ToString())).ToList();
                    foreach (var obj in listTemp)
                    {
                        obsVM.IteraccionSeguridad.ComportamientoRiesgoCondicion.Add(obj.CodDescripcion.ToString());
                    }
                    listTemp = list.Where(t => t.CodEncuesta.Equals(TipoEncuestaIteraccion.MetodologiaGestionRiesgos.GetHashCode().ToString())).ToList();
                    foreach (var obj in listTemp)
                    {
                        obsVM.IteraccionSeguridad.MetodologiaGestionRiesgos.Add(obj.CodDescripcion.ToString());
                    }
                }
                if (obsVM.CodTipoObservacion == "1") //obs.CodTipoObservacion == TipoObservacion.Comportamiento
                {
                    TObservacionComportamiento obs_comportamiento = _context.TObservacionComportamientos
                                                                    .First(ocon => ocon.CodObservacion.Equals(obs.CodObservacion));
                    obsVM.Comportamiento = _mapper.Map <TObservacionComportamiento, ComportamientoDto>(obs_comportamiento);
                }
                if (obsVM.CodTipoObservacion == "2") //obs.CodTipoObservacion == TipoObservacion.Condicion
                {
                    TObservacionCondicion obs_condicion = _context.TObservacionCondiciones
                                                          .First(ocon => ocon.CodObservacion.Equals(obs.CodObservacion));
                    obsVM.Condicion = _mapper.Map <TObservacionCondicion, CondicionDto>(obs_condicion);
                }
                if (obsVM.CodTipoObservacion == "4.2" || obsVM.CodTipoObservacion == "4.3") //obs.CodTipoObservacion == TipoObservacion.VerificacionControlCritico || obs.CodTipoObservacion == TipoObservacion.Covid19
                {
                    TObservacionVerControlCritico obs_vcc = _context.TObservacionVerControlCritico
                                                            .First(ocon => ocon.CodObservacion.Equals(obs.CodObservacion));
                    var verControlCritico = _mapper.Map <TObservacionVerControlCritico, VerificacionControlCriticoDto>(obs_vcc);
                    verControlCritico.Herramientas = _context.TObsVCCHerramienta
                                                     .Where(t => t.CodVcc.Equals(obs_vcc.CodVcc))
                                                     .Select(t => t.CodDesHe)
                                                     .ToHashSet();
                    verControlCritico.Criterios = _context.TObsVCCRespuesta
                                                  .Where(t => t.CodVcc.Equals(obs_vcc.CodVcc))
                                                  .ProjectTo <CriterioDto>(_mapper.ConfigurationProvider)
                                                  .OrderBy(t => t.CodCrit)
                                                  .ToHashSet()
                    ;
                    verControlCritico.CierreInteracion = _context.TObsVCCCierreIteraccion
                                                         .Where(t => t.CodVcc.Equals(obs_vcc.CodVcc))
                                                         .ProjectTo <CierreInteraccionDto>(_mapper.ConfigurationProvider)
                                                         .ToHashSet();

                    var cartillaStr = verControlCritico.CodCartilla;

                    //var cartillaObj = await _general.GetCartilla(cartillaStr);
                    var cartillaObj = await _mediator.Send(new GetCartillaQuery()
                    {
                        CodCartilla = cartillaStr
                    });

                    //if(cartillaObj.PeligroFatal.Equals("CCPF0000022")){
                    //    obsVM.Covid19 = verControlCritico;
                    //}
                    //else{
                    //    obsVM.VerificacionControlCritico = verControlCritico;
                    //}
                    if (obsVM.CodTipoObservacion == "4.2")
                    {
                        obsVM.VerificacionControlCritico = verControlCritico;
                    }
                    else
                    {
                        obsVM.Covid19 = verControlCritico;
                    }
                }

                //obsVM.PlanAccion = await _planAccion.Get(request.CodObservacion);
                //obsVM.PlanAccion = await _planAccion.Get("INSP0000008308");

                //obsVM.Files =

                return(obsVM);
            }