/// <summary> /// Muestra la ventada detalle /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 05/04/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { PaymentPlace paymentPlace = (PaymentPlace)dgrPaymentPlace.SelectedItem; frmPaymentPlaceDetail frmPaymentPlaceDetail = new frmPaymentPlaceDetail(); frmPaymentPlaceDetail.Owner = this; frmPaymentPlaceDetail.enumMode = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly; frmPaymentPlaceDetail.oldPaymentPlace = paymentPlace; if (frmPaymentPlaceDetail.ShowDialog() == true) { int nIndex = 0; List <PaymentPlace> lstPaymentPlaces = (List <PaymentPlace>)dgrPaymentPlace.ItemsSource; if (!ValidateFIlter(frmPaymentPlaceDetail.paymentPlace)) //Validamos que cumpla con los filtros { lstPaymentPlaces.Remove(paymentPlace); //removemos de la lista } else { ObjectHelper.CopyProperties(paymentPlace, frmPaymentPlaceDetail.paymentPlace); //Actualizamos los datos del registro lstPaymentPlaces.Sort((x, y) => string.Compare(x.pcN, y.pcN)); //Ordenamos la lista nIndex = lstPaymentPlaces.IndexOf(paymentPlace); //Obtenemos la posicion del registro } dgrPaymentPlace.Items.Refresh(); GridHelper.SelectRow(dgrPaymentPlace, nIndex); StatusBarReg.Content = lstPaymentPlaces.Count + " Payment Places."; } }
/// <summary> /// Verifica que un objeto Payment Place cumpla con los filtros actuales /// </summary> /// <param name="paymentPlace">Objeto a validar</param> /// <returns>True. SI cumple | False. No cumple</returns> /// <history> /// [emoguel] created 06/04/2016 /// </history> private bool ValidateFIlter(PaymentPlace paymentPlace) { if (_nStatus != -1)//filtro por estatus { if (paymentPlace.pcA != Convert.ToBoolean(_nStatus)) { return(false); } } if (!string.IsNullOrWhiteSpace(_paymentPlaceFilter.pcID))//Filtro por ID { if (paymentPlace.pcID != _paymentPlaceFilter.pcID) { return(false); } } if (!string.IsNullOrWhiteSpace(_paymentPlaceFilter.pcN))//Filtro por descripción { if (!paymentPlace.pcN.Contains(_paymentPlaceFilter.pcN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <summary> /// Abre la ventana detalle en modo Add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 06/05/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmPaymentPlaceDetail frmPaymentPlaceDetail = new frmPaymentPlaceDetail(); frmPaymentPlaceDetail.Owner = this; frmPaymentPlaceDetail.enumMode = EnumMode.Add; if (frmPaymentPlaceDetail.ShowDialog() == true) { PaymentPlace paymentPlace = frmPaymentPlaceDetail.paymentPlace; if (ValidateFIlter(paymentPlace))//Validamos si cumple con el filtro { List <PaymentPlace> lstPaymentPlaces = (List <PaymentPlace>)dgrPaymentPlace.ItemsSource; lstPaymentPlaces.Add(paymentPlace); //Agregamos el registro lstPaymentPlaces.Sort((x, y) => string.Compare(x.pcN, y.pcN)); //Ordenamos la lista int nIndex = lstPaymentPlaces.IndexOf(paymentPlace); //Obtenemos el index dgrPaymentPlace.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrPaymentPlace, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstPaymentPlaces.Count + " Payment Places."; } } }
/// <summary> /// Llena el grid de Payment Places /// </summary> /// <param name="paymentPlace">Objeto a seleccionar</param> /// <history> /// [emoguel] created 06/04/2016 /// [erosado] 19/05/2016 Modified. Se agregó asincronía /// </history> private async void LoadPaymentPlaces(PaymentPlace paymentPlace = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <PaymentPlace> lstPaymentPlace = await BRPaymentPlaces.GetPaymentPlaces(_nStatus, _paymentPlaceFilter); dgrPaymentPlace.ItemsSource = lstPaymentPlace; if (lstPaymentPlace.Count > 0 && paymentPlace != null) { paymentPlace = lstPaymentPlace.Where(pc => pc.pcID == paymentPlace.pcID).FirstOrDefault(); nIndex = lstPaymentPlace.IndexOf(paymentPlace); } GridHelper.SelectRow(dgrPaymentPlace, nIndex); StatusBarReg.Content = lstPaymentPlace.Count + " Payment Places."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Actualiza el grid de payment Places /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 06/04/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { PaymentPlace paymentPlace = (PaymentPlace)dgrPaymentPlace.SelectedItem; LoadPaymentPlaces(paymentPlace); }
/// <summary> /// Obtiene registros del catalogo PaymentPlaces /// </summary> /// <param name="nStatus">-1. Todos | 0. Inactivos | 1. Activos</param> /// <param name="paymentPlaces">Objeto con filtros adicionales</param> /// <returns>Lista de tipo Payment Place</returns> /// <history> /// [emoguel] created 05/04/2016 /// [erosado] 19/05/2016 Modified. Se agregó asincronía /// [aalcocer] 02/08/2016 Modified. Se modifica la asincronía con Task /// [erosado] 04/08/2016 Modified. Se estandarizó el valor que retorna. /// </history> public static async Task <List <PaymentPlace> > GetPaymentPlaces(int nStatus = -1, PaymentPlace paymentPlaces = null) { return(await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from pc in dbContext.PaymentPlaces select pc; if (nStatus != -1)//Filtro por estatus { bool blnStatus = Convert.ToBoolean(nStatus); query = query.Where(pc => pc.pcA == blnStatus); } if (paymentPlaces != null) //verificamos que se tenga el objeto { if (!string.IsNullOrWhiteSpace(paymentPlaces.pcID)) //Filtro por ID { query = query.Where(pc => pc.pcID == paymentPlaces.pcID); } if (!string.IsNullOrWhiteSpace(paymentPlaces.pcN))//Filtro por Descripción { query = query.Where(pc => pc.pcN.Contains(paymentPlaces.pcN)); } } return query.OrderBy(pc => pc.pcN).ToList(); } })); }