/// <summary> /// Actualiza los registros del grid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 27/05/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { status.Visibility = Visibility.Visible; ScoreRuleByLeadSource scoreRuleByLeadSource = (ScoreRuleByLeadSource)dgrScoreRulesByLS.SelectedItem; LoadScoreRulesByLS(); }
/// <summary> /// Agrega|Actualiza un ScoreRuleByLeadSource /// </summary> /// <history> /// [emoguel] created 27/05/2016 /// </history> private async void btnAccept_Click(object sender, RoutedEventArgs e) { btnAccept.Focus(); List <ScoreRuleByLeadSourceDetail> lstScoreRuleDetails = (List <ScoreRuleByLeadSourceDetail>)dgrScores.ItemsSource; if (enumMode != EnumMode.Add && ObjectHelper.IsEquals(scoreRuleByLeadSource, oldScoreRuleByLeadSource) && !hasChageScores()) { _isClosing = true; Close(); } else { skpStatus.Visibility = Visibility.Visible; txtStatus.Text = "Saving Data..."; btnAccept.Visibility = Visibility.Collapsed; string strMsj = ValidateHelper.ValidateForm(this, "Score Rule", blnDatagrids: true); if (strMsj == "") { List <ScoreRuleByLeadSourceDetail> lstScoreDetail = (List <ScoreRuleByLeadSourceDetail>)dgrScores.ItemsSource; #region Listas var lstAdd = lstScoreDetail.Where(sj => !_lstScoreRulesDet.Any(sjj => sj.sjsp == sjj.sjsp && sj.sjls == sjj.sjls )).ToList(); var lstDel = _lstScoreRulesDet.Where(sj => !lstScoreDetail.Any(sjj => sj.sjsp == sjj.sjsp && sj.sjls == sjj.sjls )).ToList(); var lstUpd = _lstScoreRulesDet.Where(sj => lstScoreDetail.Any(sjj => sj.sjsp == sjj.sjsp && sj.sjls == sjj.sjls )).ToList(); #endregion int nRes = await BRScoreRulesByLeadSource.SaveScoreRuleByLeadSource(scoreRuleByLeadSource, lstAdd, lstDel, lstUpd, (enumMode == EnumMode.Edit));// await BRProducts.SaveProduct(product, (enumMode == EnumMode.edit), _productLegend, lstAdd, lstDel); UIHelper.ShowMessageResult("Score Rule By Lead Source", nRes); if (nRes > 0) { if (enumMode == EnumMode.Add) { var lstNewItem = await BRScoreRulesByLeadSource.GetScoreRuleByLeadSource(scoreRuleByLeadSource.sbls); scoreRuleByLeadSource = lstNewItem.FirstOrDefault(); } _isClosing = true; DialogResult = true; Close(); } } else { UIHelper.ShowMessage(strMsj); } skpStatus.Visibility = Visibility.Collapsed; btnAccept.Visibility = Visibility.Visible; } }
/// <summary> /// Abre la ventana detalle en modo "detalle" o "edición" dependiendo de sus permisos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 25/05/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { ScoreRuleByLeadSource scoreRuleByLeadSource = (ScoreRuleByLeadSource)dgrScoreRulesByLS.SelectedItem; frmScoreRuleByLeadSourceDetail frmScoreRuleByLS = new frmScoreRuleByLeadSourceDetail(); frmScoreRuleByLS.Owner = this; frmScoreRuleByLS.enumMode = EnumMode.Edit; frmScoreRuleByLS.oldScoreRuleByLeadSource = scoreRuleByLeadSource; frmScoreRuleByLS.ShowDialog(); }
/// <summary> /// Llena el grid de ScoreRuleByLeadSources /// </summary> /// <param name="scoreRuleByLS">Objeto a seleccionar</param> /// <history> /// [emoguel] created 27/05/2016 /// </history> private async void LoadScoreRulesByLS(ScoreRuleByLeadSource scoreRuleByLS = null) { List <ScoreRuleByLeadSource> lstScoreRulesByLS = await BRScoreRulesByLeadSource.GetScoreRuleByLeadSource(); int nIndex = 0; dgrScoreRulesByLS.ItemsSource = lstScoreRulesByLS; if (lstScoreRulesByLS.Count > 0 && scoreRuleByLS != null) { scoreRuleByLS = lstScoreRulesByLS.Where(sb => sb.sbls == scoreRuleByLS.sbls).FirstOrDefault(); nIndex = lstScoreRulesByLS.IndexOf(scoreRuleByLS); } GridHelper.SelectRow(dgrScoreRulesByLS, nIndex); StatusBarReg.Content = lstScoreRulesByLS.Count + " Score Rules."; status.Visibility = Visibility.Collapsed; }
/// <summary> /// Agrega un scoreRuleByLeadSource /// Agrega|Elimina details /// </summary> /// <param name="score">Objeto a guradar</param> /// <param name="lstAdd">Detalles a agregar</param> /// <param name="lstDel">Detalles a eliminar</param> /// <param name="lstUpd">Detalles a actualizar</param> /// <param name="blnUpdate">False. inserta un nuevo score Rule</param> /// <returns>-1. Existe un Rule con el mismo ID | 0. No se pudó guardar | >0. Se guardó correctamente</returns> /// <history> /// [emoguel] created 30/05/2016 /// </history> public static async Task <int> SaveScoreRuleByLeadSource(ScoreRuleByLeadSource score, List <ScoreRuleByLeadSourceDetail> lstAdd, List <ScoreRuleByLeadSourceDetail> lstDel, List <ScoreRuleByLeadSourceDetail> lstUpd, bool blnUpdate) { int nRes = 0; nRes = await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { using (var transacction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { #region Update if (!blnUpdate) { if (dbContext.ScoreRulesByLeadSources.Where(sb => sb.sbls == score.sbls).FirstOrDefault() != null) { return(-1); } else { dbContext.ScoreRulesByLeadSources.Add(score); } } #endregion #region ScoreRulesDetail //Add lstAdd.ForEach(sj => { sj.sjls = score.sbls; dbContext.ScoreRulesByLeadSourceDetails.Add(sj); }); //Upd lstUpd.ForEach(sj => { dbContext.Entry(sj).State = System.Data.Entity.EntityState.Modified; }); //del lstDel.ForEach(sj => { dbContext.Entry(sj).State = System.Data.Entity.EntityState.Deleted; }); #endregion int nSave = dbContext.SaveChanges(); transacction.Commit(); return(nSave); } catch { transacction.Rollback(); return(0); } } } }); return(nRes); }