예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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
            }
        }
예제 #4
0
        /// <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();
        }
예제 #5
0
        /// <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);
            }
        }
예제 #6
0
        /// <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);
        }