/// <summary> /// Muestra la ventana detalle en modo edit /// </summary> /// <history> /// [emoguel] 25/04/2016 Created /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { ShowProgram showProgram = (ShowProgram)dgrShowPrograms.SelectedItem; frmShowProgramDetail frmShowProgramDetail = new frmShowProgramDetail(); frmShowProgramDetail.Owner = this; frmShowProgramDetail.oldShowProgram = showProgram; frmShowProgramDetail.enumMode = EnumMode.Edit; if (frmShowProgramDetail.ShowDialog() == true) { List <ShowProgram> lstShowPrograms = (List <ShowProgram>)dgrShowPrograms.ItemsSource; int nIndex = 0; if (ValidateFilter(frmShowProgramDetail.showProgram)) //Validar que cumpla con los filtros { ObjectHelper.CopyProperties(showProgram, frmShowProgramDetail.showProgram); //Actualizar los datos lstShowPrograms.Sort((x, y) => string.Compare(x.skN, y.skN)); //Ordenar la lista nIndex = lstShowPrograms.IndexOf(showProgram); //Obtener la posición del registro } else { lstShowPrograms.Remove(showProgram); //Remover el registro } dgrShowPrograms.Items.Refresh(); //Actualizar la vista GridHelper.SelectRow(dgrShowPrograms, nIndex); //Seleccionar el registro StatusBarReg.Content = lstShowPrograms.Count + " Show Programs."; //Actualizar el contador } }
/// <summary> /// Abre la ventana detalle en modo Search /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 25/04/2016 /// </history> private void btnSearch_Click(object sender, RoutedEventArgs e) { frmShowProgramDetail frmShowProgramDetail = new frmShowProgramDetail(); frmShowProgramDetail.Owner = this; frmShowProgramDetail.enumMode = EnumMode.Search; frmShowProgramDetail.oldShowProgram = _showProgramFilter; frmShowProgramDetail.nStatus = _nStatus; if (frmShowProgramDetail.ShowDialog() == true) { _nStatus = frmShowProgramDetail.nStatus; _showProgramFilter = frmShowProgramDetail.showProgram; LoadShowPrograms(); } }
/// <summary> /// Abre la ventana detalle en modo Add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 26/04/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmShowProgramDetail frmShowProgramDetail = new frmShowProgramDetail(); frmShowProgramDetail.Owner = this; frmShowProgramDetail.enumMode = EnumMode.Add; if (frmShowProgramDetail.ShowDialog() == true) { ShowProgram showProgram = frmShowProgramDetail.showProgram; if (ValidateFilter(showProgram))//Validar si cumple con los filtros { List <ShowProgram> lstShowPrograms = (List <ShowProgram>)dgrShowPrograms.ItemsSource; lstShowPrograms.Add(showProgram); //Agregamos el registro lstShowPrograms.Sort((x, y) => string.Compare(x.skN, y.skN)); //Ordenar la lista int nIndex = lstShowPrograms.IndexOf(showProgram); //Obtener la posición del registro dgrShowPrograms.Items.Refresh(); //Actualizar la vista GridHelper.SelectRow(dgrShowPrograms, nIndex); //Seleccionar un registro StatusBarReg.Content = lstShowPrograms.Count + " Show Programs."; //Actualizamos el contador } } }
/// <summary> /// Llena el grid /// </summary> /// <param name="showProgram">Objeto a seleccionar</param> /// <history> /// [emoguel] created 25/04/2016 /// </history> private async void LoadShowPrograms(ShowProgram showProgram = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <ShowProgram> lstShowPrograms = await BRShowPrograms.GetShowPrograms(_nStatus, _showProgramFilter); dgrShowPrograms.ItemsSource = lstShowPrograms; if (lstShowPrograms.Count > 0 && showProgram != null) { showProgram = lstShowPrograms.Where(sk => sk.skID == showProgram.skID).FirstOrDefault(); nIndex = lstShowPrograms.IndexOf(showProgram); } GridHelper.SelectRow(dgrShowPrograms, nIndex); StatusBarReg.Content = lstShowPrograms.Count + " Show Programs."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Valida que un show program cumpla con los filtros Actuales /// </summary> /// <param name="showProgram">Objeto a validar</param> /// <returns>True. Si cumple | False. No cumple</returns> /// <history> /// [emoguel] created 25/04/2016 /// </history> private bool ValidateFilter(ShowProgram showProgram) { if (_nStatus != -1)//Filtro por Status { if (showProgram.skA != Convert.ToBoolean(_nStatus)) { return(false); } } if (!string.IsNullOrWhiteSpace(_showProgramFilter.skID))//Filtro por ID { if (_showProgramFilter.skID != showProgram.skID) { return(false); } } if (!string.IsNullOrWhiteSpace(_showProgramFilter.skN))//Filtro por descripción { if (!showProgram.skN.Contains(_showProgramFilter.skN, StringComparison.OrdinalIgnoreCase)) { return(false); } } if (!string.IsNullOrWhiteSpace(_showProgramFilter.sksg))//Filtro por categoria { if (_showProgramFilter.sksg != showProgram.sksg) { return(false); } } return(true); }
/// <summary> /// Actualiza el grid /// </summary> /// <param name="sender"></param> /// <param name="e"></param>< /// <history> /// [emoguel] created 25/04/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { ShowProgram showProgram = (ShowProgram)dgrShowPrograms.SelectedItem; LoadShowPrograms(showProgram); }
/// <summary> /// Obtiene registros del catalogo ShowPrograms /// </summary> /// <param name="nStatus">-1. Todos | 0. Inactivos | 1.Activos</param> /// <param name="showProgram">Objeto con filtros adicionales</param> /// <returns>Lista de tipo ShowProgram</returns> /// <history> /// [emoguel] created 25/04/2016 /// [emoguel] modified 04/06/2016 se volvió async /// </history> public async static Task <List <ShowProgram> > GetShowPrograms(int nStatus = -1, ShowProgram showProgram = null) { List <ShowProgram> lstShowPrgrams = await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from sk in dbContext.ShowPrograms select sk; if (nStatus != -1)//Filtro por estatus { bool blnStatus = Convert.ToBoolean(nStatus); query = query.Where(sk => sk.skA == blnStatus); } if (showProgram != null) { if (!string.IsNullOrWhiteSpace(showProgram.skID))//Filtro por ID { query = query.Where(sk => sk.skID == showProgram.skID); } if (!string.IsNullOrWhiteSpace(showProgram.skN))//Filtro por descripción { query = query.Where(sk => sk.skN.Contains(showProgram.skN)); } if (!string.IsNullOrWhiteSpace(showProgram.sksg))//Filtro por category { query = query.Where(sk => sk.sksg == showProgram.sksg); } } return(query.OrderBy(sk => sk.skN).ToList()); } }); return(lstShowPrgrams); }