private void btnBuscar_Click(object sender, RoutedEventArgs e)
        {
            panel.IsEnabled = false;
            mantenimientosViewModel.PanelLoading = true;

            string matricula = "null";

            Object selectedTipo = cmbTipo.SelectedItem;
            string tipo         = "null";

            if (!txtMatricula.Text.Equals(""))
            {
                matricula = txtMatricula.Text.ToString();
            }

            if (null != selectedTipo && 0 < cmbTipo.SelectedIndex)
            {
                tipo = selectedTipo.ToString();

                foreach (var item in mantenimientosViewModel.ListaTipoMantenimiento)
                {
                    if (item.nombre.Equals(tipo))
                    {
                        tipo = item.id;
                    }
                }
            }

            if (!txtMatricula.Text.Equals(""))
            {
                matricula = txtMatricula.Text.ToString();
            }

            Thread t = new Thread(new ThreadStart(() =>
            {
                ServerServiceMantenimiento serverServiceMantenimiento   = new ServerServiceMantenimiento();
                ServerResponseMantenimiento serverResponseMantenimiento = serverServiceMantenimiento.GetAllFilter(tipo, matricula);

                if (200 == serverResponseMantenimiento.error.code)
                {
                    //Limpiar la lista para recuperar la informacion de la busqueda
                    Dispatcher.Invoke(new Action(() => { observableCollectionMantenimiento.Clear(); }));

                    foreach (var item in serverResponseMantenimiento.listaMantenimiento)
                    {
                        Dispatcher.Invoke(new Action(() => { observableCollectionMantenimiento.Add(item); }));
                    }
                }
                else
                {
                    Dispatcher.Invoke(new Action(() => { msgError(serverResponseMantenimiento.error.message); }));
                }

                Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; }));
                Dispatcher.Invoke(new Action(() => { mantenimientosViewModel.PanelLoading = false; }));
                Dispatcher.Invoke(new Action(() => { lstMant.ItemsSource = observableCollectionMantenimiento; }));
            }));

            t.Start();
        }
        public MantenimientosView()
        {
            InitializeComponent();

            mantenimientosViewModel = (MantenimientosViewModel)this.DataContext;

            panel.IsEnabled = false;
            mantenimientosViewModel.PanelLoading = true;

            cmbTipo.ItemsSource = mantenimientosViewModel.observableCollectionTipoMantenimiento;

            Thread t = new Thread(new ThreadStart(() =>
            {
                Dispatcher.Invoke(new Action(() => { mantenimientosViewModel.cargaCombo(); }));

                ServerServiceMantenimiento serverServiceMantenimiento   = new ServerServiceMantenimiento();
                ServerResponseMantenimiento serverResponseMantenimiento = serverServiceMantenimiento.GetAll();

                if (200 == serverResponseMantenimiento.error.code)
                {
                    foreach (var item in serverResponseMantenimiento.listaMantenimiento)
                    {
                        Dispatcher.Invoke(new Action(() => { observableCollectionMantenimiento.Add(item); }));
                    }
                }
                else
                {
                    Dispatcher.Invoke(new Action(() => { msgError(serverResponseMantenimiento.error.message); }));
                }

                Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; }));
                Dispatcher.Invoke(new Action(() => { mantenimientosViewModel.PanelLoading = false; }));
                Dispatcher.Invoke(new Action(() => { lstMant.ItemsSource = observableCollectionMantenimiento; }));
            }));

            t.Start();
        }
        private void btnAceptarMantenim_Click(object sender, RoutedEventArgs e)
        {
            if (modo == Constantes.NUEVO)
            {
                var dialog = new CustomMessageBox
                {
                    Caption            = "Nuevo",
                    InstructionHeading = "¿Está seguro que quiere guardar el mantenimiento?",
                    InstructionText    = "Esta acción guardará la información del mantenimiento",
                };
                dialog.SetButtonsPredefined(EnumPredefinedButtons.OkCancel);

                var result = dialog.ShowDialog();
                if (result.HasValue && result.Value && dialog.CustomCustomDialogResult == EnumDialogResults.Button1)
                {
                    if (cambiosMantenimiento())
                    {
                        txtError.Text = "";

                        panel.IsEnabled = false;
                        gestionMantenimientosViewModel.PanelLoading = true;

                        Thread t = new Thread(new ThreadStart(() =>
                        {
                            ServerServiceMantenimiento serverServiceMantenimiento   = new ServerServiceMantenimiento();
                            ServerResponseMantenimiento serverResponseMantenimiento = serverServiceMantenimiento.Save(mantenimientoModif, "null");

                            if (200 == serverResponseMantenimiento.error.code)
                            {
                                Dispatcher.Invoke(new Action(() => { mostrarAutoCloseMensaje("Nuevo", "Se ha guardado el mantenimiento correctamente."); }));

                                Dispatcher.Invoke(new Action(() => { gestionMantenimientosViewModel.mantenimiento = mantenimientoModif; }));
                                Dispatcher.Invoke(new Action(() => { volver(); }));
                            }
                            else
                            {
                                Dispatcher.Invoke(new Action(() => { msgError(serverResponseMantenimiento.error.message); }));
                            }

                            Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; }));
                            Dispatcher.Invoke(new Action(() => { gestionMantenimientosViewModel.PanelLoading = false; }));
                        }));

                        t.Start();
                    }
                }
            }
            else
            {
                var dialog = new CustomMessageBox
                {
                    Caption            = "Modificar",
                    InstructionHeading = "¿Está seguro que quiere modificar el mantenimiento?",
                    InstructionText    = "Esta acción modificará la información del mantenimiento",
                };
                dialog.SetButtonsPredefined(EnumPredefinedButtons.OkCancel);

                var result = dialog.ShowDialog();
                if (result.HasValue && result.Value && dialog.CustomCustomDialogResult == EnumDialogResults.Button1)
                {
                    if (cambiosMantenimiento())
                    {
                        txtError.Text = "";

                        panel.IsEnabled = false;
                        gestionMantenimientosViewModel.PanelLoading = true;

                        Thread t = new Thread(new ThreadStart(() =>
                        {
                            ServerServiceMantenimiento serverServiceMantenimiento   = new ServerServiceMantenimiento();
                            ServerResponseMantenimiento serverResponseMantenimiento = serverServiceMantenimiento.Save(mantenimientoModif, mantenimientoModif.id);

                            if (200 == serverResponseMantenimiento.error.code)
                            {
                                Dispatcher.Invoke(new Action(() => { mostrarAutoCloseMensaje("Modificar", "Se ha modificado el mantenimiento correctamente."); }));

                                Dispatcher.Invoke(new Action(() => { gestionMantenimientosViewModel.mantenimiento = mantenimientoModif; }));
                                Dispatcher.Invoke(new Action(() => { volver(); }));
                            }
                            else
                            {
                                Dispatcher.Invoke(new Action(() => { msgError(serverResponseMantenimiento.error.message); }));
                            }

                            Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; }));
                            Dispatcher.Invoke(new Action(() => { gestionMantenimientosViewModel.PanelLoading = false; }));
                        }));

                        t.Start();
                    }
                }
            }
        }