/// <summary>
        /// Command handler of search command
        /// </summary>
        private async void OnSearchCommand()
        {
            try
            {
                IsLoading = true;
                var filterInfo = new EmployeeFilterInfo
                {
                    Name         = NameFilter,
                    DepartmentId = SelectedDepartment?.Id,
                    SectionId    = SelectedSection?.Id
                };
                var reply = await _employeeApiService.FilterEmployees(filterInfo);

                if (reply != null)
                {
                    var result = reply.Select(employee => new EmployeeListItemViewModel(employee)).ToList();
                    Employees = new ObservableCollection <EmployeeListItemViewModel>(result);
                }
                else
                {
                    Employees = new ObservableCollection <EmployeeListItemViewModel>();
                }
            }
            catch (Exception e)
            {
                _loggingService.LogError("Error during Employee search", e);
                _dialogService.ShowError(e.Message);
            }
            finally
            {
                IsLoading = false;
            }
        }
示例#2
0
        /// <summary>
        /// Requests a list of employees that fit the filter criteria
        /// </summary>
        /// <param name="filterInfo"></param>
        /// <returns></returns>
        public async Task <List <EmployeeDto> > FilterEmployees(EmployeeFilterInfo filterInfo)
        {
            _loggingService.LogDebug(new
            {
                action     = nameof(FilterEmployees),
                filterInfo = filterInfo.ToString()
            });

            return(await _apiService.PostAsync <EmployeeFilterInfo, List <EmployeeDto> >("Employee/FilterEmployees", filterInfo));
        }
示例#3
0
        public Task <AlpApiResponse <List <EmployeeDto> > > FilterEmployees([FromBody] EmployeeFilterInfo info)
        {
            var sessionToken = HttpContext.Request.Headers["sessiontoken"];

            if (!_accountService.Authorize(sessionToken, new List <RoleType> {
                RoleType.Admin
            }))
            {
                return(Task.FromResult(new AlpApiResponse <List <EmployeeDto> > {
                    Success = false, Message = "Nincs jogosultsága ehhez a művelethez!"
                }));
            }
            return(_employeeService.FilterEmployees(info));
        }
示例#4
0
        /// <summary>
        /// returns the filtered employees depending onthe filterinfo
        /// </summary>
        /// <param name="filterInfo"></param>
        /// <returns></returns>
        public async Task <AlpApiResponse <List <EmployeeDto> > > FilterEmployees(EmployeeFilterInfo filterInfo)
        {
            var response = new AlpApiResponse <List <EmployeeDto> >();

            try
            {
                _logger.LogDebug(new
                {
                    action = nameof(FilterEmployees),
                    info   = filterInfo?.ToString()
                }.ToString());

                var nameIsNull = string.IsNullOrEmpty(filterInfo.Name);
                var employees  = await _context.Employee.AsNoTracking()
                                 .Include(employee => employee.Department)
                                 .Include(employee => employee.Section)
                                 .Where(employee => (nameIsNull || employee.EmployeeName.Contains(filterInfo.Name)) &&
                                        (!filterInfo.DepartmentId.HasValue || employee.DepartmentId == filterInfo.DepartmentId) &&
                                        (!filterInfo.SectionId.HasValue || employee.SectionId == filterInfo.SectionId))
                                 .ToListAsync();

                response.Value = employees.Select(employee => employee.EntityToDto()).ToList();

                foreach (var dto in response.Value)
                {
                    dto.HasAccess = await _context.Account.AsNoTracking().AnyAsync(acc => acc.EmployeeId == dto.Id);
                }
            }
            catch (Exception e)
            {
                _logger.LogError(new
                {
                    exception             = e,
                    message               = e.Message,
                    innerException        = e,
                    innerExceptionMessage = e.InnerException?.Message
                }.ToString());
                response.Message = e.Message;
                response.Success = false;
            }

            return(response);
        }