public IActionResult Search([FromQuery] Assignment assignment, [FromQuery] Period period, [FromQuery] Agent agent, [FromQuery] Rep rep, [FromQuery] string isActiveAgent, [FromQuery] string isActiveRep) { try { IEnumerable <Assignment> assignments = assignmentManager.Find(x => x.PeriodId == assignment.PeriodId && x.Period.IsOpen == period.IsOpen && x.AgentId == assignment.AgentId && x.Agent.AgencyCode == agent.AgencyCode && x.Agent.AgencyName == agent.AgencyName && x.RepId == assignment.RepId && x.Rep.Username == rep.Username && x.Rep.FirstName == rep.FirstName && x.Rep.LastName == rep.LastName && x.Status == assignment.Status && x.LastAttemptedBy == assignment.LastAttemptedBy && x.LastAttemptedDate == assignment.LastAttemptedDate && x.Notes == assignment.Notes); if (!string.IsNullOrWhiteSpace(isActiveRep)) { bool isActive; bool.TryParse(isActiveRep, out isActive); assignments = assignments.Where(x => x.Rep.IsActive == isActive); } if (!string.IsNullOrWhiteSpace(isActiveAgent)) { bool isActive; bool.TryParse(isActiveAgent, out isActive); assignments = assignments.Where(x => x.Agent.IsActiveAgent == isActive); } return(Ok(assignments)); } catch (Exception ex) { logger.LogError($"Failed to find assignment(s): {ex}"); return(BadRequest(config["Error:Default"])); } }