private void QuitarImputado()
 {
     try
     {
         var s = SelectedIngresoSeleccionado;
         if (LstIngresosSeleccionados.Remove(SelectedIngresoSeleccionado))
         {
             var encontrado = LstIngresos.FirstOrDefault(w => w.Ingreso.ID_IMPUTADO == s.ID_IMPUTADO && w.Ingreso.ID_ANIO == s.ID_ANIO && w.Ingreso.ID_CENTRO == s.ID_CENTRO);
             if (encontrado != null)
             {
                 encontrado.Seleccionado = false;
             }
             SeleccionadosIngresos.Remove(SeleccionadosIngresos.FirstOrDefault(w => w.ID_ANIO == s.ID_ANIO && w.ID_IMPUTADO == s.ID_IMPUTADO && w.ID_INGRESO == s.ID_INGRESO && w.ID_CENTRO == s.ID_CENTRO));
             StaticSourcesViewModel.SourceChanged = true;
         }
         var temp = LstIngresos;
         LstIngresos = new RangeEnabledObservableCollection <cTrasladoIngreso>();
         LstIngresos.InsertRange(temp);
         SelectedIngresoSeleccionado = null;
     }
     catch (Exception ex)
     {
         StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al agregar el imputado", ex);
     }
 }
        private async void cerrarVisualizadorDocumentos()
        {
            try
            {
                PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.VISUALIZAR_DOCUMENTOS);
                var amparo = new cAmparoIndirectoTipos().Obtener(SelectedIngreso.Ingreso.ID_CENTRO, SelectedIngreso.Ingreso.ID_ANIO, SelectedIngreso.Ingreso.ID_IMPUTADO, SelectedIngreso.Ingreso.ID_INGRESO, null, 5, 2).FirstOrDefault();
                var res    = await new Dialogos().ConfirmacionTresBotonesDinamico("Mensaje", "El interno " + ObtieneNombre(SelectedIngreso.Ingreso.IMPUTADO) + " tiene un amparo para traslado", "Agregar", Convert.ToInt32(Tipo_Respuesta.Agregar),
                                                                                  "Ver amparo", Convert.ToInt32(Tipo_Respuesta.Mostrar_Documento), string.Empty, Convert.ToInt32(Tipo_Respuesta.Cancelar));
                switch ((Tipo_Respuesta)res)
                {
                case Tipo_Respuesta.Agregar:
                    SelectedIngreso.Seleccionado = true;
                    LstIngresosSeleccionados.Add(SelectedIngreso.Ingreso);
                    SeleccionadosIngresos.Add(SelectedIngreso.Ingreso);
                    var temp = LstIngresos;
                    LstIngresos = new RangeEnabledObservableCollection <cTrasladoIngreso>();
                    LstIngresos.InsertRange(temp);
                    SelectedIngreso = null;
                    break;

                case Tipo_Respuesta.Cancelar:
                    SelectedIngreso = null;
                    break;

                case Tipo_Respuesta.Mostrar_Documento:
                    var encontro_amparo_doc = new cAmparoIndirectoDocto().Obtener(amparo.ID_CENTRO, amparo.ID_ANIO, amparo.ID_IMPUTADO, amparo.ID_INGRESO, amparo.ID_AMPARO_INDIRECTO).FirstOrDefault();
                    if (encontro_amparo_doc == null)
                    {
                        new Dialogos().ConfirmacionDialogo("Mensaje", "El documento del amparo no se encuentra en el sistema");
                    }
                    else
                    {
                        var _file = encontro_amparo_doc.DOCUMENTO;
                        await Task.Factory.StartNew(() =>
                        {
                            var fileNamepdf = Path.GetTempPath() + Path.GetRandomFileName().Split('.')[0] + ".pdf";
                            File.WriteAllBytes(fileNamepdf, _file);
                            Application.Current.Dispatcher.Invoke((System.Action)(delegate
                            {
                                PDFViewer.LoadFile(fileNamepdf);
                                PDFViewer.Visibility = Visibility.Visible;
                            }));
                        });

                        PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.VISUALIZAR_DOCUMENTOS);
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al agregar el imputado", ex);
            }
        }
 private async void Guardar()
 {
     try
     {
         var traslado_detalle = new List <TRASLADO_DETALLE>();
         if (SelectedTraslado == null)
         {
             foreach (var item in LstIngresosSeleccionados)
             {
                 traslado_detalle.Add(new TRASLADO_DETALLE {
                     ID_ANIO                   = item.ID_ANIO,
                     ID_CENTRO                 = item.ID_CENTRO,
                     ID_CENTRO_TRASLADO        = GlobalVar.gCentro,
                     ID_ESTATUS                = "PR",
                     ID_IMPUTADO               = item.ID_IMPUTADO,
                     ID_INGRESO                = item.ID_INGRESO,
                     ID_ESTATUS_ADMINISTRATIVO = item.ID_ESTATUS_ADMINISTRATIVO
                 });
             }
         }
         else
         {
             foreach (var item in SelectedTraslado.TRASLADO_DETALLE)
             {
                 traslado_detalle.Add(new TRASLADO_DETALLE
                 {
                     ID_ANIO            = item.ID_ANIO,
                     ID_CENTRO          = item.ID_CENTRO,
                     ID_CENTRO_TRASLADO = GlobalVar.gCentro,
                     ID_ESTATUS         = LstIngresosSeleccionados.FirstOrDefault(w => w.ID_IMPUTADO == item.ID_IMPUTADO && w.ID_ANIO == item.ID_ANIO &&
                                                                                  w.ID_CENTRO == item.ID_CENTRO && w.ID_INGRESO == item.ID_INGRESO) == null?"CA":item.ID_ESTATUS,
                     ID_IMPUTADO = item.ID_IMPUTADO,
                     ID_INGRESO  = item.ID_INGRESO,
                     ID_ESTATUS_ADMINISTRATIVO = item.ID_ESTATUS_ADMINISTRATIVO,
                     ID_TRASLADO = item.ID_TRASLADO
                 });
             }
         }
         var _traslado = new TRASLADO {
             AUTORIZA_SALIDA     = AutorizaSalida,
             AUTORIZA_TRASLADO   = Autoridad_Traslado,
             ID_CENTRO           = GlobalVar.gCentro,
             CENTRO_ORIGEN       = GlobalVar.gCentro,
             ORIGEN_TIPO         = "L", //como es traslado originado en los centros estatales el tipo es L "LOCAL"
             ID_ESTATUS          = SelectedTraslado == null ? "PR" : SelectedTraslado.ID_ESTATUS,
             ID_MOTIVO           = DTMotivo,
             ID_MOTIVO_SALIDA    = id_motivo_traslado.Value,
             JUSTIFICACION       = DTJustificacion,
             OFICIO_AUTORIZACION = DTNoOficio,
             OFICIO_SALIDA       = DENoOficio,
             CENTRO_DESTINO      = DTCentroDestino.Value,
             TRASLADO_DETALLE    = traslado_detalle,
             TRASLADO_FEC        = DTFecha.Value,
             ID_TRASLADO         = SelectedTraslado == null ? 0 : SelectedTraslado.ID_TRASLADO
         };
         if (SelectedTraslado == null)
         {
             if (await StaticSourcesViewModel.OperacionesAsync <bool>("Insertando traslado", () =>
             {
                 new cTraslado().Insertar(_traslado, (short)enumMensajeTipo.CALENDARIZACION_TRASLADO, _FechaServer);
                 return(true);
             }))
             {
                 new Dialogos().ConfirmacionDialogo("EXITO!", "El traslado ha sido registrado");
             }
         }
         else
         {
             if (await StaticSourcesViewModel.OperacionesAsync <bool>("Actualizando traslado", () =>
             {
                 new cTraslado().Actualizar(_traslado, (short)enumMensajeTipo.CALENDARIZACION_TRASLADO, _FechaServer);
                 return(true);
             }))
             {
                 new Dialogos().ConfirmacionDialogo("EXITO!", "El traslado ha sido registrado");
             }
         }
         HabilitaImputados   = true;
         CancelarMenuEnabled = false;
         Limpiar();
         selectedTraslado = null;
         await ObtenerTodosActivos();
     }
     catch (Exception ex)
     {
         StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al salvar el traslado.", ex);
     }
 }