Exemplo n.º 1
0
        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"]));
            }
        }