/// <summary> /// Devuelve el catalogo de AssistanceSatatus /// </summary> /// <param name="assistanceStatus">objeto con filtros extra, puede ser null</param> /// <param name="nStatus">-1. Sin filtro| 0. Inactivos| 1. Activos</param> /// <returns>Lista de AssitanceStatus</returns> /// <history> /// [emoguel] 27/Feb/2016 Created /// [emoguel] modified 17/03/2016--->Se agregó la validacion null del objeto y se cambió el filtro por descripcion a "contains" /// [emoguel] modified 30/05/2016--->Se volvió async /// </history> public async static Task <List <AssistanceStatus> > GetAssitanceStatus(AssistanceStatus assistanceStatus = null, int nStatus = -1) { List <AssistanceStatus> lstAssitanceStatus = new List <AssistanceStatus>(); await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from ast in dbContext.AssistancesStatus select ast; if (nStatus != -1)//Filtra por status { bool bStat = Convert.ToBoolean(nStatus); query = query.Where(ast => ast.atA == bStat); } if (assistanceStatus != null) //validacion del objeto { if (!string.IsNullOrWhiteSpace(assistanceStatus.atID)) //Filtra por ID { query = query.Where(ast => ast.atID == assistanceStatus.atID); } if (!string.IsNullOrWhiteSpace(assistanceStatus.atN))//Filtra por Descripción { query = query.Where(ast => ast.atN.Contains(assistanceStatus.atN)); } } lstAssitanceStatus = query.OrderBy(a => a.atN).ToList(); } }); return(lstAssitanceStatus); }
/// <summary> /// Valida si una entidad de tipo Area coincide con los filtros /// </summary> /// <param name="newAssistance">Objeto a validar</param> /// <returns>true. Si se muestra | false. Nose muestra</returns> /// <history> /// [emoguel] created 18/03/2016 /// </history> private bool ValidateFilters(AssistanceStatus newAssistance) { if (_nStatus != -1) { if (newAssistance.atA != Convert.ToBoolean(_nStatus)) { return(false); } } if (!string.IsNullOrWhiteSpace(_assistanceFilter.atID)) { if (_assistanceFilter.atID != newAssistance.atID) { return(false); } } if (!string.IsNullOrWhiteSpace(_assistanceFilter.atN)) { if (!newAssistance.atN.Contains(_assistanceFilter.atN, StringComparison.OrdinalIgnoreCase)) { return(false); } } return(true); }
/// <summary> /// Muestra la ventana de AssistanceStatusDetail en modo ReadOnly /// </summary> /// <history> /// [emoguel] 27/Feb/2016 Created /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { AssistanceStatus assistance = (AssistanceStatus)dtgAssitances.SelectedItem; frmAssistanceStatusDetail frmAssistanceDetail = new frmAssistanceStatusDetail(); frmAssistanceDetail.oldAssistance = assistance; frmAssistanceDetail.Owner = this; frmAssistanceDetail.mode = ((_blnEdit == true) ? EnumMode.Edit : EnumMode.ReadOnly); if (frmAssistanceDetail.ShowDialog() == true) { List <AssistanceStatus> lstAssistancesStatus = (List <AssistanceStatus>)dtgAssitances.ItemsSource; int nIndex = 0; if (!ValidateFilters(frmAssistanceDetail.assistance)) //Validamos si cumple con los filtros { lstAssistancesStatus.Remove(assistance); //Quitamos el registro } else { ObjectHelper.CopyProperties(assistance, frmAssistanceDetail.assistance); lstAssistancesStatus.Sort((x, y) => string.Compare(x.atN, y.atN));//ordenamos la lista nIndex = lstAssistancesStatus.IndexOf(assistance); } dtgAssitances.Items.Refresh(); //regrescamos el grid GridHelper.SelectRow(dtgAssitances, nIndex); StatusBarReg.Content = lstAssistancesStatus.Count + " Assistances Status."; //Actualizamos el contador } }
/// <summary> /// Carga El grid Con la lista de asistencia con las fechas seleccionadas /// </summary> /// <history>[ECANUL] 19-03-2016 CREATED</history> async void LoadGrid() { StaStart("Loading Assistance List..."); _listAssistData = BRAssistance.GetAssistance(enumPalaceType, palaceId, dtpStartt.Value.Value, dtpEndd.Value.Value); assistanceDataViewSource = ((CollectionViewSource)(this.FindResource("assistanceDataViewSource"))); assistanceStatusViewSource = ((CollectionViewSource)(this.FindResource("assistanceStatusViewSource"))); assistanceViewSource = ((CollectionViewSource)(this.FindResource("assistanceViewSource"))); AssistanceStatus ast = new AssistanceStatus(); lstAssistStatus = await BRAssistancesStatus.GetAssitanceStatus(ast, 1); assistanceStatusViewSource.Source = lstAssistStatus; if (_listAssistData.Count != 0) { assistanceDataDataGrid.ItemsSource = _listAssistData; _isNew = false; } else { if (UIHelper.ShowMessage("There is no assistance for this week.\nWould you like to generate?", MessageBoxImage.Question) == MessageBoxResult.Yes) { List <PersonnelAssistance> lstPersonAssist = BRAssistance.GetPersonnelAssistance(enumPalaceType, palaceId, dtpStartt.Value.Value, dtpEndd.Value.Value); lstPersonAssist.ForEach(c => { var assistance = AssistanceToAssistance.ConvertPersonnelAssistanceToAssistanceData(c); _listAssistData.Add(assistance); }); _isNew = true; btnEdit.IsEnabled = true; } else { btnEdit.IsEnabled = false; } assistanceDataDataGrid.ItemsSource = _listAssistData; } StaEnd(); }
/// <summary> /// carga la lista de Assistance Status /// </summary> /// <history> /// [emoguel] 27/Feb/2016 Created /// </history> protected async void LoadAssitance(AssistanceStatus assistanceStatus = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <AssistanceStatus> lstAssistance = await BRAssistancesStatus.GetAssitanceStatus(_assistanceFilter, _nStatus); dtgAssitances.ItemsSource = lstAssistance; if (assistanceStatus != null && lstAssistance.Count > 0) { assistanceStatus = lstAssistance.Where(ass => ass.atID == assistanceStatus.atID).FirstOrDefault(); nIndex = lstAssistance.IndexOf(assistanceStatus); } GridHelper.SelectRow(dtgAssitances, nIndex); StatusBarReg.Content = lstAssistance.Count + " Assistance Status."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Actualiza la lista de Status /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] 27/Feb/2016 Created. /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { AssistanceStatus assitanceStatus = (AssistanceStatus)dtgAssitances.SelectedItem; LoadAssitance(assitanceStatus); }