public NuevoMaestroHerramental_VM(Usuario ModelUsuario, Herramental MHerramental)
        {
            //Constructor para ver detalles de un herramental y cambiar la información
            usuario            = ModelUsuario;
            ListaPlano         = DataManager.GetPlano_Herramental();
            ListaClasificacion = DataManager.GetClasificacionHerramental(string.Empty);
            //Obtiene las propiedades del herramental
            MaestroHerramental ObjHerramental = DataManager.GetPropiedadesHerramental(MHerramental.Codigo);

            //Asignamos las propiedades
            bandCambios      = true;
            BttnEliminar     = true;
            EnabledCombo     = false;
            Codigo           = MHerramental.Codigo;
            Descripcion      = MHerramental.DescripcionGeneral;
            EnabledCodigo    = false;
            IsSelected       = ObjHerramental.activo;
            Id_clasificacion = ObjHerramental.id_clasificacion;
            IdPlano          = ObjHerramental.id_plano;
            CargarControlador(ObjHerramental.objetoXML);

            //Si el herramemtal no tiene clsificación, se habilita el combobox y se muestra el botón de búsqueda.
            if (Id_clasificacion == 0)
            {
                EnabledCombo = true;
            }
        }
        /// <summary>
        /// Método para moficiar el maestro herramental.
        /// </summary>
        /// <returns></returns>
        private int ModificaMaestro()
        {
            MaestroHerramental obj = new MaestroHerramental();

            //si el check box se seleccionó, el herramental está activo
            if (IsSelected)
            {
                obj.activo = true;
            }
            else
            {
                obj.activo = false;
            }

            //Asignamos los valores
            obj.Codigo           = codigo;
            obj.descripcion      = Descripcion;
            obj.fecha_cambio     = DateTime.Now.ToShortDateString();
            obj.usuario_cambio   = encriptar.desencript(usuario.NombreUsuario);
            obj.id_clasificacion = SelectedClasificacion.IdClasificacion;
            obj.id_plano         = IdPlano;

            //Ejecutamos el método para actualizar el registro
            return(DataManager.UpdateMaestroHerramental(obj));
        }
        /// <summary>
        /// Método que guarda la información del Maestro Herramnetal.
        /// </summary>
        /// <returns></returns>
        private string InsertMaestro()
        {
            MaestroHerramental obj = new MaestroHerramental();

            //se asigna el valor del checkbox
            if (IsSelected)
            {
                obj.activo = true;
            }
            else
            {
                obj.activo = false;
            }
            //Asignamos los valores
            obj.Codigo           = Codigo;
            obj.descripcion      = Descripcion;
            obj.fecha_creacion   = DateTime.Now.ToShortDateString();
            obj.fecha_cambio     = DateTime.Now.ToShortDateString();
            obj.usuario_cambio   = encriptar.desencript(usuario.NombreUsuario);
            obj.usuario_creacion = encriptar.desencript(usuario.NombreUsuario);
            obj.id_clasificacion = SelectedClasificacion.IdClasificacion;
            obj.id_plano         = 0;

            //Ejecutamos el método para insertar el maestro herramental
            return(DataManager.SetMaestroHerramentales(obj));
        }
        /// <summary>
        /// Método que elimina el maestro herramental.
        /// </summary>
        private async void eliminar()
        {
            //Declaramos un objeto de tipo MetroDialogSettings al cual le asignamos las propiedades que contendra el mensaje modal.
            MetroDialogSettings setting = new MetroDialogSettings();

            setting.AffirmativeButtonText = StringResources.lblYes;
            setting.NegativeButtonText    = StringResources.lblNo;

            //Ejecutamos el método para mostrar el mensaje con la información que el usuario capturó.El resultado lo asignamos a una variable local.
            MessageDialogResult result = await dialog.SendMessage(StringResources.ttlAlerta, StringResources.lblConfirmDeleteRecord, setting, MessageDialogStyle.AffirmativeAndNegative);

            //Si el resultado es verdadero
            if (result == MessageDialogResult.Affirmative)
            {
                MaestroHerramental obj = new MaestroHerramental();
                obj.Codigo = codigo;

                if (Controlador != null)
                {
                    //Se ejecuta el método de Eliminar el controlador.
                    if (Controlador.Delete() != 0)
                    {
                        //Ejecutamos el método de eliminar maestro herramental.
                        if (DataManager.DeleteMaestroHerramental(obj) != 0)
                        {
                            //Se muestra en pantalla, mensaje de cambios guardados
                            await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgCambiosRealizados);

                            //Obtenemos la pantalla actual, y casteamos para que se tome como tipo MetroWindow.
                            var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault();

                            //Verificamos que la pantalla sea diferente de nulo.
                            if (window != null)
                            {
                                //Cerramos la pantalla
                                window.Close();
                            }
                        }
                        else
                        {
                            await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgErrorEliminarHerramental);
                        }
                    }
                    else
                    {
                        //si hay erro al eliminar el registro, muestra un mensaje
                        await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgErrorEliminarHerramental);
                    }
                }
                else
                {
                    if (DataManager.DeleteMaestroHerramental(obj) != 0)
                    {
                        //Se muestra en pantalla, mensaje de cambios guardados
                        await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgCambiosRealizados);

                        //Obtenemos la pantalla actual, y casteamos para que se tome como tipo MetroWindow.
                        var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault();

                        //Verificamos que la pantalla sea diferente de nulo.
                        if (window != null)
                        {
                            //Cerramos la pantalla
                            window.Close();
                        }
                    }
                    else
                    {
                        await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgErrorEliminarHerramental);
                    }
                }
            }
        }