public async Task <IEnumerable <StaffReadDTO> > Handle(GetStaffsByDepartmentIdQuery request, CancellationToken cancellationToken) { _logger.LogInformation("Call to GetStaffsByDepartmentIdHandler made to add staff record"); try { var DepartmentId = request.DepartmentId; List <StaffReadDTO> models = new List <StaffReadDTO>(); var filter = Builders <Staff> .Filter.Eq("DepartmentId", DepartmentId); var results = await this._context.Staffs.Find <Staff>(filter).ToListAsync(); foreach (var item in results) { var modelDTO = _mapper.Map <StaffReadDTO>(item); models.Add(modelDTO); } _logger.LogInformation("Call to GetStaffsByDepartmentIdHandler completed."); return(models); } catch (Exception ex) { _logger.LogInformation("Error fetching staffs."); throw new Exception("Error fetching staffs."); } }
public async Task <IActionResult> GetStaffsByDepartment(Guid departmentId) { var cmd = new GetStaffsByDepartmentIdQuery(departmentId); var result = await _mediator.Send(cmd); return(Ok(result)); }