/// <summary>
        /// Método para guardar los cambios de una LeCCION
        /// </summary>
        private async void guardarLeccion(Usuario ModelUsuario)
        {
            User = ModelUsuario;
            //declaramos un objeto de tipo dialogservice
            DialogService       service = new DialogService();
            MetroDialogSettings button  = new MetroDialogSettings();

            //asignamos los valores de los botones
            button.AffirmativeButtonText = StringResources.lblYes;
            button.NegativeButtonText    = StringResources.lblNo;

            MessageDialogResult result = await service.SendMessage(StringResources.ttlAlerta, StringResources.msgConfirmacion, button, MessageDialogStyle.AffirmativeAndNegative);

            if (result == MessageDialogResult.Affirmative)
            {
                InsertarNuevosCentrosDeTrabajo();
                InsertarNuevosTiposDeCambio();
                bool SaveData = GuardarCambios();

                //verificamos que ningun campo se encuentre vacio
                if (SaveData == true)
                {
                    //declaramos un objeto del tipo lecciones aprendidas
                    LeccionesAprendidas NewData = new LeccionesAprendidas();

                    //asigamos los valores
                    if (Module.UsuarioIsRol(User.Roles, 2))
                    {
                        NewData.ID_USUARIO = _usuarioAutorizo;
                    }
                    else
                    {
                        NewData.ID_USUARIO = AuxUsuarioAutorizo;
                    }
                    NewData.COMPONENTE           = _COMPONENTE;
                    NewData.CAMBIO_REQUERIDO     = _CAMBIO_REQUERIDO;
                    NewData.DESCRIPCION_PROBLEMA = _DESCRIPCION_PROBLEMA;
                    NewData.FECHA_ULTIMO_CAMBIO  = _FECHA_ULTIMO_CAMBIO;
                    NewData.FECHA_ACTUALIZACION  = _FECHA_ACTUALIZACION;
                    NewData.REPORTADO_POR        = _REPORTADO_POR;
                    NewData.SOLICITUD_DE_TRABAJO = _SOLICITUD_TRABAJO_DE_ING;

                    //los insertamos a la base de datos
                    int i = DataManagerControlDocumentos.UpdateLecccion(id_leccion,
                                                                        NewData.ID_USUARIO,
                                                                        NewData.COMPONENTE,
                                                                        NewData.NIVEL_DE_CAMBIO,
                                                                        NewData.CENTRO_DE_TRABAJO,
                                                                        NewData.OPERACION,
                                                                        NewData.DESCRIPCION_PROBLEMA,
                                                                        NewData.FECHA_ULTIMO_CAMBIO,
                                                                        NewData.FECHA_ACTUALIZACION,
                                                                        NewData.REPORTADO_POR,
                                                                        NewData.SOLICITUD_DE_TRABAJO);


                    int BorrarArchivos = DataManagerControlDocumentos.Delete_Archivo_Lecciones(id_leccion);

                    if (BorrarArchivos != 0)
                    {
                        foreach (var item in ListaDocumentos)
                        {
                            int e = DataManagerControlDocumentos.SetArchivo_Lecciones(item.ARCHIVO, item.EXT, item.NOMBRE_ARCHIVO, id_leccion);
                        }
                    }

                    //verificamos que se hayan insertado los valores correctamente
                    if (i > 0)
                    {
                        await service.SendMessage(StringResources.ttlAlerta, StringResources.msgCambiosRealizados);

                        //obtenemos la ventana actual
                        var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault();

                        if (window != null)
                        {
                            //cerramos la ventana
                            window.Close();
                        }
                    }
                    else
                    {
                        await service.SendMessage(StringResources.msgError, StringResources.msgErrorGeneral);
                    }
                }
                else
                {
                    await service.SendMessage(StringResources.ttlAlerta, StringResources.msgFillFlields);
                }
            }
        }
        /// <summary>
        /// Constructor para eliminar o modificar una lección
        /// </summary>
        /// <param name="SelectedLeccion"></param>
        public ModificarLeccionVM(LeccionesAprendidas SelectedLeccion, Usuario ModelUsuario)
        {
            AuxLeccionSeleccionada = SelectedLeccion;
            User = ModelUsuario;

            //verificamos que se haya seleccionado una leccion
            if (SelectedLeccion != null)
            {
                if (Module.UsuarioIsRol(User.Roles, 2))
                {
                    BttnEnabled = true;
                }

                CreateMenuItems();
                ListaCentrosDeTrabajoSeleccionados = new ObservableCollection <CentrosTrabajo>();
                User = ModelUsuario;
                //asignamos los valores a los botones
                IsEnabled = false;
                Encriptacion ecr = new Encriptacion();

                //obtenemos los usuarios
                ListaUsuarios = DataManagerControlDocumentos.GetUsuarios();

                //Obtenemos los centros de trabajo que esten relacionados con la lección aprendida
                ListaCentrosDeTrabajoSeleccionados = DataManagerControlDocumentos.GetCentrosDetrabajoLecciones(SelectedLeccion.ID_LECCIONES_APRENDIDAS);

                //Obtenemos los tipos de cambio que esten relacionados con la leccion aprendida
                ListaTipoCambioLeccion = DataManagerControlDocumentos.GetTipoCambioLecciones(SelectedLeccion.ID_LECCIONES_APRENDIDAS);

                //Obtenemos todos los centros de trabajo
                ListaCentrosDeTrabajo = DataManagerControlDocumentos.GetCentrosDeTrabajo("");

                //Obtenemos el motivo del cambio de la lección.
                MotivoCambio = DataManagerControlDocumentos.GetMotivoCambioByLeccion(SelectedLeccion.ID_LECCIONES_APRENDIDAS);

                //Si no tiene motivo registrado se le asigna un N/A
                MotivoCambio = string.IsNullOrEmpty(MotivoCambio) ? "N/A" : MotivoCambio;

                //Obtenemos todos los tipos de cambio
                ListaNivelesDeCambio = DataManagerControlDocumentos.GetNivelesDeCambio();

                //
                foreach (var item in ListaCentrosDeTrabajo)
                {
                    if (ExisteCentroDeTrabajo(item.CentroTrabajo, ListaCentrosDeTrabajoSeleccionados))
                    {
                        item.IsSelected = true;
                    }
                }

                //
                foreach (var item in ListaNivelesDeCambio)
                {
                    if (ExisteNivelDeCambio(item.ID_TIPOCAMBIO, ListaTipoCambioLeccion))
                    {
                        item.IsSelected = true;
                    }
                }



                //verificamos que el usuario sea administrador del sistema
                if (Module.UsuarioIsRol(User.Roles, 2))
                {
                    IsEnabled = true;
                }

                //mostramos los valores de la leccion
                id_leccion               = SelectedLeccion.ID_LECCIONES_APRENDIDAS;
                usuarioAutorizo          = ecr.encript(SelectedLeccion.ID_USUARIO);
                AuxUsuarioAutorizo       = ModelUsuario.NombreUsuario;
                CAMBIO_REQUERIDO         = SelectedLeccion.CAMBIO_REQUERIDO;
                COMPONENTE               = SelectedLeccion.COMPONENTE;
                REPORTADO_POR            = SelectedLeccion.REPORTADO_POR;
                FECHA_ULTIMO_CAMBIO      = SelectedLeccion.FECHA_ULTIMO_CAMBIO;
                FECHA_ACTUALIZACION      = SelectedLeccion.FECHA_ACTUALIZACION;
                DESCRIPCION_PROBLEMA     = SelectedLeccion.DESCRIPCION_PROBLEMA;
                SOLICITUD_TRABAJO_DE_ING = SelectedLeccion.SOLICITUD_DE_TRABAJO;


                //obtenemos la lista de las lecciones aprendidas
                ListaDocumentos = DataManagerControlDocumentos.GetArchivosLecciones(SelectedLeccion.ID_LECCIONES_APRENDIDAS);
                //asignamos una imagen dependiendo de la extencion del archivo
                foreach (var item in ListaDocumentos)
                {
                    if (item.EXT == ".pdf")
                    {
                        item.rutaIcono = @"/Images/p.png";
                    }
                    else if (item.EXT == ".doc" || item.EXT == ".DOC")
                    {
                        item.rutaIcono = @"/Images/w.png";
                    }
                    else if (item.EXT == ".xlsx")
                    {
                        item.rutaIcono = @"/Images/E.jpg";
                    }
                    else if (item.EXT == ".pptx")
                    {
                        item.rutaIcono = @"/Images/PP.png";
                    }
                    else
                    {
                        item.rutaIcono = @"/Images/I.png";
                    }
                }
            }
        }