/// <summary> /// Valida los datos /// </summary> /// <history> /// [jorcanche] 12/Mar/2016 Created /// </history> private bool Validate() { // validamos el motivo de indisponibilidad if (!ValidateHelper.ValidateRequired(txtguum, "Unavailable Motive", condition: !chkguAvail.IsChecked.Value)) { return(false); } // validamos que el motivo de indisponibilidad exista if (!chkguAvail.IsChecked.Value) { UnavailableMotive motive = BRUnavailableMotives.GetUnavailableMotive(Convert.ToInt16(txtguum.Text), true); if (motive == null) { UIHelper.ShowMessage("The unavailable motive does not exist"); txtguum.Focus(); return(false); } } // validamos los permisos if (!ValidatePermissions()) { return(false); } return(true); }
/// <summary> /// Valida que cumpla con los filtros actuales /// </summary> /// <param name="unavailableMotive">objeto a validar</param> /// <returns>True. Si cumple| False. No cumple</returns> /// <history> /// [emoguel] created 06/06/2016 /// </history> private bool ValidateFilter(UnavailableMotive unavailableMotive) { if (_nStatus != -1)//filtro por estatus { if (unavailableMotive.umA != Convert.ToBoolean(_nStatus)) { return(false); } } if (_unavailableMotive.umID > 0)//filtro por ID { if (unavailableMotive.umID != _unavailableMotive.umID) { return(false); } } if (!string.IsNullOrWhiteSpace(_unavailableMotive.umN))//Filtro por Descripción { if (unavailableMotive.umN.Contains(_unavailableMotive.umN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <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 04/06/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { UnavailableMotive unavailableMotive = (UnavailableMotive)dgrUnavailableMotives.SelectedItem; frmUnavailableMotiveDetail frmUnavailableMotDetail = new frmUnavailableMotiveDetail(); frmUnavailableMotDetail.Owner = this; frmUnavailableMotDetail.enumMode = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly; frmUnavailableMotDetail.oldUnavailableMotive = unavailableMotive; if (frmUnavailableMotDetail.ShowDialog() == true) { int nIndex = 0; List <UnavailableMotive> lstUnavailableMotives = (List <UnavailableMotive>)dgrUnavailableMotives.ItemsSource; if (ValidateFilter(frmUnavailableMotDetail.unavailableMotive)) //Verificamos que cumpla con ls filtros { ObjectHelper.CopyProperties(unavailableMotive, frmUnavailableMotDetail.unavailableMotive); //Actualizamos los datos lstUnavailableMotives.Sort((x, y) => string.Compare(x.umN, y.umN)); //Ordenamos la lista nIndex = lstUnavailableMotives.IndexOf(unavailableMotive); //Buscamos el contador } else { lstUnavailableMotives.Remove(unavailableMotive); } dgrUnavailableMotives.Items.Refresh(); ///Actualizamos la vista GridHelper.SelectRow(dgrUnavailableMotives, nIndex); //Seleccionamos el registro StatusBarReg.Content = lstUnavailableMotives.Count + " Unavailable Motives"; //Actualizamos el contador } }
/// <summary> /// Llena el grid de unavailableMotives /// </summary> /// <param name="unavailableMotive">Objeto a seleccionar</param> /// <history> /// [emogue] created 06/06/2016 /// </history> private async void LoadUnavailableMotives(UnavailableMotive unavailableMotive = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <UnavailableMotive> lstUnavailableMotives = await BRUnavailableMotives.GetUnavailableMotives(_nStatus, _unavailableMotive); dgrUnavailableMotives.ItemsSource = lstUnavailableMotives; if (lstUnavailableMotives.Count > 0 && unavailableMotive != null) { unavailableMotive = lstUnavailableMotives.Where(um => um.umID == unavailableMotive.umID).FirstOrDefault(); nIndex = lstUnavailableMotives.IndexOf(unavailableMotive); } GridHelper.SelectRow(dgrUnavailableMotives, nIndex); StatusBarReg.Content = lstUnavailableMotives.Count + " Unavailable Motives."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
private void txtguum_LostFocus(object sender, RoutedEventArgs e) { _searchUmByTxt = true; int umid; if (txtguum.Text != string.Empty) { //validosmos q no ingrese datos numericos if (!int.TryParse(txtguum.Text, out umid)) { UIHelper.ShowMessage("you must enter a numeric value"); txtguum.Text = string.Empty; txtguum.Focus(); } else { // validamos que el motivo de indisponibilidad exista en los activos UnavailableMotive motive = BRUnavailableMotives.GetUnavailableMotive(Convert.ToInt32(txtguum.Text), true); if (motive == null) { UIHelper.ShowMessage("The unavailable motive does not exist"); txtguum.Text = string.Empty; txtguum.Focus(); } else { cboguum.SelectedValue = txtguum.Text; } } } else { cboguum.SelectedIndex = -1; } _searchUmByTxt = false; }
/// <summary> /// Recarga los registros del grid /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 04/06/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { UnavailableMotive unavailableMotive = (UnavailableMotive)dgrUnavailableMotives.SelectedItem; LoadUnavailableMotives(unavailableMotive); }
/// <summary> /// Guarda un registro en el catalogo UnavailableMotives /// </summary> /// <param name="unavailableMotive">objeto a guardar</param> /// <param name="lstAgencyAdd">Agencies a asignar</param> /// <param name="lstContractAdd">Contracts a asignar</param> /// <param name="lstCountryAdd">Countries a asignar</param> /// <param name="blnUpdate">True. Actualiza | false. Insertar</param> /// <returns>-1. Existe un registro con el mismo ID| 0. No se guardó | 1. Se guardó correctamente</returns> /// <history> /// [emoguel] created 06/06/2016 /// </history> public async static Task <int> SaveUnavailableMotives(UnavailableMotive unavailableMotive, List <Agency> lstAgencyAdd, List <Contract> lstContractAdd, List <Country> lstCountryAdd, bool blnUpdate) { int 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) { dbContext.Entry(unavailableMotive).State = System.Data.Entity.EntityState.Modified; } #endregion #region Insert else { if (dbContext.UnavailableMotives.Where(um => um.umID == unavailableMotive.umID).FirstOrDefault() != null) { return(-1); } else { dbContext.UnavailableMotives.Add(unavailableMotive); } } #endregion #region Agencies dbContext.Agencies.AsEnumerable().Where(ag => lstAgencyAdd.Any(agg => agg.agID == ag.agID)).ToList().ForEach(ag => { ag.agum = unavailableMotive.umID; }); #endregion #region Countries dbContext.Countries.AsEnumerable().Where(co => lstCountryAdd.Any(coo => coo.coID == co.coID)).ToList().ForEach(co => { co.coum = unavailableMotive.umID; }); #endregion #region Contracts dbContext.Contracts.AsEnumerable().Where(cn => lstContractAdd.Any(cnn => cnn.cnID == cn.cnID)).ToList().ForEach(cn => { cn.cnum = unavailableMotive.umID; }); #endregion int nSave = dbContext.SaveChanges(); transacction.Commit(); return(nSave); } catch { transacction.Rollback(); throw; } } } }); return(nRes); }
/// <summary> /// Devuelve la lista de UnavailMots /// </summary> /// <param name="nStatus">-1. Todos los registros | 0. Registros inactivos | 1. Registros Activos</param> /// <returns>Lista de UnavailMots</returns> /// <history> /// [Emoguel] created 01/03/2016 /// [emoguel] modified 30/05/2016 Se volvió async el método /// </history> public async static Task <List <UnavailableMotive> > GetUnavailableMotives(int nStatus = -1, UnavailableMotive unavailableMotive = null) { List <UnavailableMotive> lstUnavailMot = new List <UnavailableMotive>(); await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from um in dbContext.UnavailableMotives select um; if (nStatus != -1)//Se filtra por estatus { bool blnStatus = Convert.ToBoolean(nStatus); query = query.Where(um => um.umA == blnStatus); } if (unavailableMotive != null) { if (unavailableMotive.umID > 0)//filtro por ID { query = query.Where(um => um.umID == unavailableMotive.umID); } if (!string.IsNullOrWhiteSpace(unavailableMotive.umN))//Filtro por descripción { query = query.Where(um => um.umN.Contains(unavailableMotive.umN)); } } lstUnavailMot = query.OrderBy(um => um.umN).ToList(); } }); return(lstUnavailMot); }