/// <summary> /// Valida que un objeto ReimpresionMotive /// cumpla con los filtros actuales /// </summary> /// <param name="reimpresionMotive">objeto a validar</param> /// <returns>True. si cump´le | False. No cumple</returns> /// <history> /// [emoguel] created 16/04/2016 /// </history> private bool ValidateFilter(ReimpresionMotive reimpresionMotive) { if (_nStatus != -1)//Filtro por estatus { if (reimpresionMotive.rmA != Convert.ToBoolean(_nStatus)) { return(false); } } if (_reimpresionMotiveFilter.rmID > 0)//filtro por ID { if (_reimpresionMotiveFilter.rmID != reimpresionMotive.rmID) { return(false); } } if (!string.IsNullOrWhiteSpace(_reimpresionMotiveFilter.rmN))//Filtro por descripción { if (!reimpresionMotive.rmN.Contains(_reimpresionMotiveFilter.rmN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <summary> /// Muestra la ventana detalle en modo edit /// </summary> /// <history> /// [emoguel] 15/04/2016 Created /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { ReimpresionMotive reimpresionMotive = (ReimpresionMotive)dgrReimpresionMotives.SelectedItem; frmReimpresionMotiveDetail frmReimpresionMotive = new frmReimpresionMotiveDetail(); frmReimpresionMotive.Owner = this; frmReimpresionMotive.enumMode = EnumMode.Edit; frmReimpresionMotive.oldReimpresionMotive = reimpresionMotive; if (frmReimpresionMotive.ShowDialog() == true) { int nIndex = 0; List <ReimpresionMotive> lstReimpresionMotive = (List <ReimpresionMotive>)dgrReimpresionMotives.ItemsSource; if (ValidateFilter(frmReimpresionMotive.reimpresionMotive)) //Verificamos que cumpla con los filtros actuales del grid { ObjectHelper.CopyProperties(reimpresionMotive, frmReimpresionMotive.reimpresionMotive); //Actualizamos los valores lstReimpresionMotive.Sort((x, y) => string.Compare(x.rmN, y.rmN)); //Ordenamos la lista nIndex = lstReimpresionMotive.IndexOf(reimpresionMotive); //Obtenemos el index del registro } else { lstReimpresionMotive.Remove(reimpresionMotive); //Quitamos el registro } dgrReimpresionMotives.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrReimpresionMotives, nIndex); //Seleccionamos el contador StatusBarReg.Content = lstReimpresionMotive.Count + " Reimpresion Motives."; //Actualizamos el contador } }
/// <summary> /// Valida que tenga un motivo seleccionado y cierra el formulario /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [vipacheco] 09/Junio/2016 Created /// </history> private void btnOk_Click(object sender, RoutedEventArgs e) { ReimpresionMotive Selected = LstMotives.SelectedItem as ReimpresionMotive; if (Selected != null) { DialogResult = true; } else { UIHelper.ShowMessage("Please specify the motive", MessageBoxImage.Information, "Reimpresion Motives"); } }
/// <summary> /// Abre la ventana detalle en modo Add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 16/04/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmReimpresionMotiveDetail frmReimpresionMotive = new frmReimpresionMotiveDetail(); frmReimpresionMotive.Owner = this; frmReimpresionMotive.enumMode = EnumMode.Add; if (frmReimpresionMotive.ShowDialog() == true) { ReimpresionMotive reimpresionMotive = frmReimpresionMotive.reimpresionMotive; if (ValidateFilter(reimpresionMotive))//Verificamos si cumple con los filtros actuales { List <ReimpresionMotive> lstReimpresionMotive = (List <ReimpresionMotive>)dgrReimpresionMotives.ItemsSource; lstReimpresionMotive.Add(reimpresionMotive); //Agregamos el registro nuevo lstReimpresionMotive.Sort((x, y) => string.Compare(x.rmN, y.rmN)); //Ordenamos la lista int nIndex = lstReimpresionMotive.IndexOf(reimpresionMotive); //Obtemos la posicion del nuevo registro dgrReimpresionMotives.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrReimpresionMotives, nIndex); //Seleccionamos el registro nuevo StatusBarReg.Content = lstReimpresionMotive.Count + " Reimpresion Motives."; //Actualizamos el contador } } }
/// <summary> /// Llena el grid de Reimpresion Motives /// </summary> /// <param name="reimpresionMotive">registro a seleccionar</param> /// <history> /// [emoguel] created 16/04/2016 /// </history> private async void LoadReimpresionMotives(ReimpresionMotive reimpresionMotive = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <ReimpresionMotive> lstReimpresionMotive = await BRReimpresionMotives.GetReimpresionMotives(_nStatus, _reimpresionMotiveFilter); dgrReimpresionMotives.ItemsSource = lstReimpresionMotive; if (lstReimpresionMotive.Count > 0 && reimpresionMotive != null) { reimpresionMotive = lstReimpresionMotive.Where(rm => rm.rmID == reimpresionMotive.rmID).FirstOrDefault(); nIndex = lstReimpresionMotive.IndexOf(reimpresionMotive); } GridHelper.SelectRow(dgrReimpresionMotives, nIndex); StatusBarReg.Content = lstReimpresionMotive.Count + " Reimpresion Motives."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Obtiene registros del catalogo ReimpresionMotives /// </summary> /// <param name="nStatus">-1. Todos | 0. Inactivos |1. Activos</param> /// <param name="reimpresionMotive">Objeto con filtros adicionales</param> /// <returns>Lista de tipo ReimpresionMotive</returns> /// <history> /// [emoguel] created 16/04/2016 /// [emoguel] modified 28/06/2016 ---> Se volvió async /// </history> public async static Task <List <ReimpresionMotive> > GetReimpresionMotives(int nStatus = -1, ReimpresionMotive reimpresionMotive = null) { return(await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from rm in dbContext.ReimpresionMotives select rm; if (nStatus != -1)//Filtro por estatus { bool blnStatus = Convert.ToBoolean(nStatus); query = query.Where(rm => rm.rmA == blnStatus); } if (reimpresionMotive != null) //Verificamos si se tiene un objeto { if (reimpresionMotive.rmID > 0) //Filtro por ID { query = query.Where(rm => rm.rmID == reimpresionMotive.rmID); } if (!string.IsNullOrWhiteSpace(reimpresionMotive.rmN))//Filtro por Descripcion { query = query.Where(rm => rm.rmN.Contains(reimpresionMotive.rmN)); } } return query.OrderBy(rm => rm.rmN).ToList(); } })); }
/// <summary> /// Actualiza los registros del grid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 16/06/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { ReimpresionMotive reimpresionMotive = (ReimpresionMotive)dgrReimpresionMotives.SelectedItem; LoadReimpresionMotives(reimpresionMotive); }