/// <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; } }
/// <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)); }
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)); }
/// <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); }