/// <summary> /// Valida si un scoreRuleType cumple con los filtros actuales /// </summary> /// <param name="scoreRuleType">Objeto a validar</param> /// <returns>True. Si cumple | False. No cumple</returns> /// <history> /// [emoguel] created 25/04/2016 /// </history> private bool ValidateFilter(ScoreRuleType scoreRuleType) { if (_nStatus != -1)//Filtro por estatus { if (scoreRuleType.syA != Convert.ToBoolean(_nStatus)) { return(false); } } if (!string.IsNullOrWhiteSpace(_scoreRuleTypeFilter.syID))//Filtro por ID { if (_scoreRuleTypeFilter.syID != scoreRuleType.syID) { return(false); } } if (!string.IsNullOrWhiteSpace(_scoreRuleTypeFilter.syN))//Filtro por descripcion { if (!scoreRuleType.syN.Contains(_scoreRuleTypeFilter.syN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <summary> /// Muestra la ventana detalle en modo edit /// </summary> /// <history> /// [emoguel] 23/04/2016 Created /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { ScoreRuleType scoreRuleType = (ScoreRuleType)dgrScoreRulesTypes.SelectedItem; frmScoreRuleTypeDetail frmScoreRuleTypeDetail = new frmScoreRuleTypeDetail(); frmScoreRuleTypeDetail.Owner = this; frmScoreRuleTypeDetail.enumMode = EnumMode.Edit; frmScoreRuleTypeDetail.oldScoreRuleType = scoreRuleType; if (frmScoreRuleTypeDetail.ShowDialog() == true) { List <ScoreRuleType> lstScoreRulesTypes = (List <ScoreRuleType>)dgrScoreRulesTypes.ItemsSource; int nIndex = 0; if (ValidateFilter(frmScoreRuleTypeDetail.scoreRuleType)) //Validamos si cumple con los filtros actuales { ObjectHelper.CopyProperties(scoreRuleType, frmScoreRuleTypeDetail.scoreRuleType); //Actualizamos los datos del registro lstScoreRulesTypes.Sort((x, y) => string.Compare(x.syN, y.syN)); //Ordenamos la lista nIndex = lstScoreRulesTypes.IndexOf(scoreRuleType); //Obtenemos la posicion del registro } else { lstScoreRulesTypes.Remove(scoreRuleType); //Quitamos el registro del grid } dgrScoreRulesTypes.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrScoreRulesTypes, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstScoreRulesTypes.Count + " Score Rules Types."; //Actualizamos el contador } }
/// <summary> /// Abre la ventana detalle en Modo Add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 23/04/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmScoreRuleTypeDetail frmScoreRuleTypeDetail = new frmScoreRuleTypeDetail(); frmScoreRuleTypeDetail.Owner = this; frmScoreRuleTypeDetail.enumMode = EnumMode.Add; if (frmScoreRuleTypeDetail.ShowDialog() == true) { ScoreRuleType scoreRuleType = frmScoreRuleTypeDetail.scoreRuleType; if (ValidateFilter(scoreRuleType))//Verificamos que cumpla con el filtro { List <ScoreRuleType> lstScoreRulesTypes = (List <ScoreRuleType>)dgrScoreRulesTypes.ItemsSource; lstScoreRulesTypes.Add(scoreRuleType); //Agregamos el registro nuevo lstScoreRulesTypes.Sort((x, y) => string.Compare(x.syN, y.syN)); //Ordenamos la lista int nIndex = lstScoreRulesTypes.IndexOf(scoreRuleType); //Obtenemos la posición del registro dgrScoreRulesTypes.Items.Refresh(); //Actualizmaos la vista GridHelper.SelectRow(dgrScoreRulesTypes, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstScoreRulesTypes.Count + " Score Rules Types."; //Actualizamos el contador } } }
/// <summary> /// llena el grid /// </summary> /// <param name="scoreRuleType">Objeto a seleccionar</param> /// <history> /// [emoguel] created 25/04/2016 /// </history> private async void LoadScoreRulesTypes(ScoreRuleType scoreRuleType = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <ScoreRuleType> lstScoreRulesTypes = await BRScoreRulesTypes.GetScoreRulesTypes(_nStatus, _scoreRuleTypeFilter); dgrScoreRulesTypes.ItemsSource = lstScoreRulesTypes; if (lstScoreRulesTypes.Count > 0 && scoreRuleType != null) { scoreRuleType = lstScoreRulesTypes.Where(sy => sy.syID == scoreRuleType.syID).FirstOrDefault(); nIndex = lstScoreRulesTypes.IndexOf(scoreRuleType); } GridHelper.SelectRow(dgrScoreRulesTypes, nIndex); StatusBarReg.Content = lstScoreRulesTypes.Count + "Score Rules Types."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Recarga el grid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 23/04/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { ScoreRuleType scoreRuleType = (ScoreRuleType)dgrScoreRulesTypes.SelectedItem; LoadScoreRulesTypes(scoreRuleType); }
/// <summary> /// Obtiene registros del catalogo ScoreRulesTypes /// </summary> /// <param name="nStatus">-1. todos | 0. Inactivos | 1. Activos</param> /// <param name="scoreRuleType">Objeto con filtros adicionales</param> /// <returns>Lista de tipo ScoreRuleType</returns> /// <history> /// [emoguel] created 23/04/2016 /// [emoguel] modified 28/06/2016 ---> Se volvió async /// </history> public async static Task <List <ScoreRuleType> > GetScoreRulesTypes(int nStatus = -1, ScoreRuleType scoreRuleType = null) { return(await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from sy in dbContext.ScoreRulesTypes select sy; if (nStatus != -1)//Filtro por estatus { bool blnStatus = Convert.ToBoolean(nStatus); query = query.Where(sy => sy.syA == blnStatus); } if (scoreRuleType != null) { if (!string.IsNullOrWhiteSpace(scoreRuleType.syID))//Filtro por ID { query = query.Where(sy => sy.syID == scoreRuleType.syID); } if (!string.IsNullOrWhiteSpace(scoreRuleType.syN))//Filtro por descripción { query = query.Where(sy => sy.syN.Contains(scoreRuleType.syN)); } } return query.OrderBy(sy => sy.syN).ToList(); } })); }