/// <summary> /// Valida que un objeto cumpla con los filtros actuales /// </summary> /// <param name="scoreRuleConcept">Objeto a validar</param> /// <returns>Treu. si cumple | false. No cumple</returns> /// <history> /// [emoguel] created 23/04/2016 /// </history> private bool ValidateFilter(ScoreRuleConcept scoreRuleConcept) { if (_nStatus != -1)//Filtro por estatus { if (scoreRuleConcept.spA != Convert.ToBoolean(_nStatus)) { return(false); } } if (_scoreRuleConceptFilter.spID > 0)//Filtro por ID { if (scoreRuleConcept.spID != _scoreRuleConceptFilter.spID) { return(false); } } if (!string.IsNullOrWhiteSpace(_scoreRuleConceptFilter.spN))//Filtro por descripción { if (!scoreRuleConcept.spN.Contains(_scoreRuleConceptFilter.spN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <summary> /// Muestra la ventana detalle en modo edit /// </summary> /// <history> /// [emoguel] 22/04/2016 Created /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { ScoreRuleConcept scoreRuleConcept = (ScoreRuleConcept)dgrScoreRulesConcepts.SelectedItem; frmScoreRuleConceptDetail frmScoRulConDetail = new frmScoreRuleConceptDetail(); frmScoRulConDetail.Owner = this; frmScoRulConDetail.enumMode = EnumMode.Edit; frmScoRulConDetail.oldScoreRuleConcept = scoreRuleConcept; if (frmScoRulConDetail.ShowDialog() == true) { int nIndex = 0; List <ScoreRuleConcept> lstScoreRulesConcepts = (List <ScoreRuleConcept>)dgrScoreRulesConcepts.ItemsSource; if (ValidateFilter(frmScoRulConDetail.scoreRuleConcept)) //Validamos si cumple con los filtros actuales { ObjectHelper.CopyProperties(scoreRuleConcept, frmScoRulConDetail.scoreRuleConcept); //Actualizamos los datos lstScoreRulesConcepts.Sort((x, y) => string.Compare(x.spN, y.spN)); //Ordenamos la lista nIndex = lstScoreRulesConcepts.IndexOf(scoreRuleConcept); //Buscamos la posición del registro } else { lstScoreRulesConcepts.Remove(scoreRuleConcept); //Quitamos el registro } dgrScoreRulesConcepts.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrScoreRulesConcepts, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstScoreRulesConcepts.Count + " Score Rules Concepts."; //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) { frmScoreRuleConceptDetail frmScoRulConDetail = new frmScoreRuleConceptDetail(); frmScoRulConDetail.Owner = this; frmScoRulConDetail.enumMode = EnumMode.Add; if (frmScoRulConDetail.ShowDialog() == true) { ScoreRuleConcept scoreRuleConcept = frmScoRulConDetail.scoreRuleConcept; if (ValidateFilter(scoreRuleConcept))//Validamos si cumple con los filtros actuales { List <ScoreRuleConcept> lstScoreRulesConcepts = (List <ScoreRuleConcept>)dgrScoreRulesConcepts.ItemsSource; lstScoreRulesConcepts.Add(scoreRuleConcept); //Agregamos el registro lstScoreRulesConcepts.Sort((x, y) => string.Compare(x.spN, y.spN)); //Ordenamos la lista int nIndex = lstScoreRulesConcepts.IndexOf(scoreRuleConcept); //Buscamos la posición del registro dgrScoreRulesConcepts.Items.Refresh(); //Actualizamos la vista GridHelper.SelectRow(dgrScoreRulesConcepts, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstScoreRulesConcepts.Count + " Score Rules Concepts."; //Actualizamos el contador } } }
/// <summary> /// Llena el grid de score rules concepts /// </summary> /// <param name="scoreRuleConcept">Objeto a seleccionar</param> /// <history> /// [emoguel] created 23/04/2016 /// </history> private async void LoadScoreRulesConcepts(ScoreRuleConcept scoreRuleConcept = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <ScoreRuleConcept> lstScoreRulesConcepts = await BRScoreRulesConcepts.GetScoreRulesConcepts(_nStatus, _scoreRuleConceptFilter); dgrScoreRulesConcepts.ItemsSource = lstScoreRulesConcepts; if (lstScoreRulesConcepts.Count > 0 && scoreRuleConcept != null) { scoreRuleConcept = lstScoreRulesConcepts.Where(sp => sp.spID == scoreRuleConcept.spID).FirstOrDefault(); nIndex = lstScoreRulesConcepts.IndexOf(scoreRuleConcept); } GridHelper.SelectRow(dgrScoreRulesConcepts, nIndex); StatusBarReg.Content = lstScoreRulesConcepts.Count + " Score Rules Concepts."; 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) { ScoreRuleConcept scoreRuleConcept = (ScoreRuleConcept)dgrScoreRulesConcepts.SelectedItem; LoadScoreRulesConcepts(scoreRuleConcept); }
/// <summary> /// Obtiene registros del catalogo ScoresRulesConcepts /// </summary> /// <param name="nStatus">-1. Todos | 0. Inactivos | 1. Activos</param> /// <param name="scoreRuleConcept">Objeto con filtros adicionales</param> /// <returns>Lista de tipo ScoreRuleConcept</returns> /// <history> /// [emoguel] created 22/04/2016 /// [emoguel] modified 26/05/2016 se volvió asincrono /// </history> public async static Task <List <ScoreRuleConcept> > GetScoreRulesConcepts(int nStatus = -1, ScoreRuleConcept scoreRuleConcept = null) { List <ScoreRuleConcept> lstScoreRuleConcept = new List <ScoreRuleConcept>(); await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from sp in dbContext.ScoreRulesConcepts select sp; if (nStatus != -1)//Filtro por Status { bool blnStatus = Convert.ToBoolean(nStatus); query = query.Where(sp => sp.spA == blnStatus); } if (scoreRuleConcept != null) { if (scoreRuleConcept.spID > 0)//Filtro por ID { query = query.Where(sp => sp.spID == scoreRuleConcept.spID); } if (!string.IsNullOrWhiteSpace(scoreRuleConcept.spN))//Filtro por descripción { query = query.Where(sp => sp.spN.Contains(scoreRuleConcept.spN)); } } lstScoreRuleConcept = query.OrderBy(sp => sp.spN).ToList(); } }); return(lstScoreRuleConcept); }