/// <summary> /// Valida si un registro cumple con los filtros de la ventana /// </summary> /// <param name="newGuestStaTyp">registro a comparar</param> /// <returns>True. Si cumple con los filtros | False. no cumple con los filtros</returns> /// <history> /// [emoguel] created 24/03/2016 /// </history> private bool ValidateFilter(GuestStatusType newGuestStaTyp) { if (_nStatus != -1)//Filtro por estatus { if (newGuestStaTyp.gsA != Convert.ToBoolean(_nStatus)) { return(false); } } if (!string.IsNullOrWhiteSpace(_guestStaTypFilter.gsID))//Filtro por ID { if (_guestStaTypFilter.gsID != newGuestStaTyp.gsID) { return(false); } } if (!string.IsNullOrWhiteSpace(_guestStaTypFilter.gsN))//Filtro por descripcion { if (!newGuestStaTyp.gsN.Contains(_guestStaTypFilter.gsN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <summary> /// Muestra la ventada efficiency detail dependiendo de los permisos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [Emoguel] created 24/03/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { GuestStatusType guestStaTyp = (GuestStatusType)dgrGuestStaTyp.SelectedItem; frmGuestStatusTypeDetail frmGuesStaDet = new frmGuestStatusTypeDetail(); frmGuesStaDet.guestStaTypOld = guestStaTyp; frmGuesStaDet.Owner = this; frmGuesStaDet.enumMode = ((_blnEdit == true) ? EnumMode.Edit : EnumMode.ReadOnly); if (frmGuesStaDet.ShowDialog() == true) { int nIndex = 0; List <GuestStatusType> lstGuestStaTyp = (List <GuestStatusType>)dgrGuestStaTyp.ItemsSource; if (!ValidateFilter(frmGuesStaDet.guestStaTyp)) //Validamos si cumple con los filtros { lstGuestStaTyp.Remove(guestStaTyp); //Quitamos el registro de la lista StatusBarReg.Content = lstGuestStaTyp.Count + " Guest Status Types."; } else { ObjectHelper.CopyProperties(guestStaTyp, frmGuesStaDet.guestStaTyp); //Actualizamos el valor del registro lstGuestStaTyp.Sort((x, y) => string.Compare(x.gsN, y.gsN)); //Ordenamos la lista nIndex = lstGuestStaTyp.IndexOf(guestStaTyp); //Obtenemos la posicion del registro actualizado para seleccionarlo } dgrGuestStaTyp.Items.Refresh(); //Refrescamos la vista GridHelper.SelectRow(dgrGuestStaTyp, nIndex); //Seleccionamos un registro } }
/// <summary> /// Obtiene registros del catalogo GuestStatus /// </summary> /// <param name="guestStatusType">Objeto con filtros adicionales</param> /// <param name="nStatus">-1. Todos los registros | 0. Registros inactivos | 1. Registros activos</param> /// <returns>Lista de tipo GuestStatusType</returns> /// <history> /// [emoguel] created 24/03/2016 /// [emoguel] modified 27/06/2016 /// </history> public async static Task <List <GuestStatusType> > GetGuestStatusTypes(GuestStatusType guestStatusType = null, int nStatus = -1) { return(await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from gs in dbContext.GuestsStatusTypes select gs; if (nStatus != -1)//Filtro por estatus { bool blnEstatus = Convert.ToBoolean(nStatus); query = query.Where(gs => gs.gsA == blnEstatus); } if (guestStatusType != null) //verificar si se tiene un objeto { if (!string.IsNullOrWhiteSpace(guestStatusType.gsID)) //filtro por ID { query = query.Where(gs => gs.gsID == guestStatusType.gsID); } if (!string.IsNullOrWhiteSpace(guestStatusType.gsN))//Filtro por descripcion { query = query.Where(gs => gs.gsN.Contains(guestStatusType.gsN)); } } return query.OrderBy(gs => gs.gsN).ToList(); } })); }
/// <summary> /// Abre la ventana detalle en modo add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 28/03/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmGuestStatusTypeDetail frmGuesStaDet = new frmGuestStatusTypeDetail(); frmGuesStaDet.Owner = this; frmGuesStaDet.enumMode = EnumMode.Add; if (frmGuesStaDet.ShowDialog() == true) { if (ValidateFilter(frmGuesStaDet.guestStaTyp))//Verificamos que cumpla con los filtros { GuestStatusType guestStaTyp = frmGuesStaDet.guestStaTyp; List <GuestStatusType> lstGuestStaTyp = (List <GuestStatusType>)dgrGuestStaTyp.ItemsSource; lstGuestStaTyp.Add(guestStaTyp); //Agregamos el nuevo registro lstGuestStaTyp.Sort((x, y) => string.Compare(x.gsN, y.gsN)); //Ordenamos la lista int nIndex = lstGuestStaTyp.IndexOf(guestStaTyp); //Buscamos la posición StatusBarReg.Content = lstGuestStaTyp.Count + " Guest Status Types."; //Actualizamos el contador dgrGuestStaTyp.Items.Refresh(); GridHelper.SelectRow(dgrGuestStaTyp, nIndex); } } }
/// <summary> /// Llena el grid de guestStatusType /// </summary> /// <param name="nIndex">index de la fila a seleccionar</param> /// <history> /// [emoguel] created 24/03/2016 /// </history> private async void LoadGuestStatusTypes(GuestStatusType guestStaTyp = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <GuestStatusType> lstGuestStaTyp = await BRGuestStatusTypes.GetGuestStatusTypes(_guestStaTypFilter, _nStatus); dgrGuestStaTyp.ItemsSource = lstGuestStaTyp; if (guestStaTyp != null && lstGuestStaTyp.Count > 0) { guestStaTyp = lstGuestStaTyp.Where(gs => gs.gsID == guestStaTyp.gsID).FirstOrDefault(); nIndex = lstGuestStaTyp.IndexOf(guestStaTyp); } GridHelper.SelectRow(dgrGuestStaTyp, nIndex); StatusBarReg.Content = lstGuestStaTyp.Count + " Guest Status Types."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Recarga el grid de guestStatusTypes /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 24/03/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { GuestStatusType guestStaType = (GuestStatusType)dgrGuestStaTyp.SelectedItem; LoadGuestStatusTypes(guestStaType); }