public AssignedToReportResult AssignedToReport(AssignedToReportParams Params)
        {
            var searchCriteria = new TicketSearchParams
            {
                Assignment = new Assignment
                {
                    Employee = Params.AssignedTo
                },
                ExcludeTicketStatusList = new List <string>
                {
                    TicketStatus.Closed.ToString().PascalCaseToDescription(),
                TicketStatus.ClosedDuplicate.ToString().PascalCaseToDescription(),
                TicketStatus.ClosedTooLate.ToString().PascalCaseToDescription(),
                },
                IsForwardOrder = true
            };
            var items = searchCriteria.Search(requestState).ToAssignedToReport();

            foreach (var item in items)
            {
                item.Reasons = CleanReasons(item.Reasons);
            }
            return(new AssignedToReportResult
            {
                OpenTicketCount = items.Count(),
                Report = new AssignedToReport
                {
                    Items = items
                }
            });
        }
        public LostFoundReportResult LostFoundReport(LostFoundReportParams Params)
        {
            var codes            = ticketRepository.GetComplaintCodes();
            var lostAndFoundCode = codes.ComplaintCodes.First(c => c.Description.ToLower().Contains("lost property"));
            var searchCriteria   = new TicketSearchParams
            {
                LostItem = new LostItem
                {
                    Category = Params.LostItemCategory,
                    Type     = Params.LostItemType
                },
                IncidentAtFrom          = Params.RangeStart,
                IncidentAtTo            = Params.RangeEnd,
                ReasonCode1             = lostAndFoundCode.ToString(),
                ExcludeTicketStatusList = new List <string>
                {
                    TicketStatus.Closed.ToString().PascalCaseToDescription(),
                TicketStatus.ClosedDuplicate.ToString().PascalCaseToDescription(),
                TicketStatus.ClosedTooLate.ToString().PascalCaseToDescription(),
                }
            };
            var items = searchCriteria.Search(requestState).ToLostFoundReport();

            return(new LostFoundReportResult
            {
                Report = new LostFoundReport
                {
                    Items = items
                }
            });
        }
        public RejectedReportResult RejectedReport(ReportParams Params)
        {
            var searchCriteria = new TicketSearchParams
            {
                Status                 = TicketStatus.Rejected,
                ReceivedAtFrom         = Params.RangeStart,
                ReceivedAtTo           = Params.RangeEnd,
                IncludeResearchHistory = true,
            };
            var items = searchCriteria.Search(requestState).ToRejectedReport();

            foreach (var item in items)
            {
                item.Reasons      = CleanReasons(item.Reasons);
                item.GroupContact = CleanGroupContact(item.GroupContact);
            }

            return(new RejectedReportResult
            {
                Report = new RejectedReport
                {
                    Items = items
                }
            });
        }
        public ReadyToCloseReportResult ReadyToCloseReport(ReportParams Params)
        {
            var searchCriteria = new TicketSearchParams
            {
                IncludeTicketStatusList = new List <string>
                {
                    TicketStatus.ReadyToClose.ToString().PascalCaseToDescription(),
                TicketStatus.ReadyToCloseDuplicate.ToString().PascalCaseToDescription(),
                TicketStatus.ReadyToCloseTooLate.ToString().PascalCaseToDescription(),
                },
                IncludeContactHistory = true
            };
            var items = searchCriteria.Search(requestState).ToReadyToCloseReport();

            foreach (var item in items)
            {
                item.Reasons      = CleanReasons(item.Reasons);
                item.GroupContact = CleanGroupContact(item.GroupContact);
            }

            return(new ReadyToCloseReportResult
            {
                Report = new ReadyToCloseReport
                {
                    Items = items
                }
            });
        }
        public ForActionReportResult ForActionReport(ForActionReportParams Params)
        {
            var searchCriteria = new TicketSearchParams
            {
                Assignment = new Assignment
                {
                    GroupContact = new GroupContact(Params.GroupContact)
                },
                ExcludeTicketStatusList = new List <string>
                {
                    TicketStatus.Closed.ToString().PascalCaseToDescription(),
                TicketStatus.ClosedDuplicate.ToString().PascalCaseToDescription(),
                TicketStatus.ClosedTooLate.ToString().PascalCaseToDescription(),
                },
                IsForwardOrder = true
            };
            var items = searchCriteria.Search(requestState).ToForActionReport();

            foreach (var item in items)
            {
                item.Reasons      = CleanReasons(item.Reasons);
                item.GroupContact = CleanGroupContact(item.GroupContact);
            }
            return(new ForActionReportResult
            {
                OpenTicketCount = items.Count(),
                Report = new ForActionReport
                {
                    Items = items
                }
            });
        }
        public void SearchTicketsResultTest()
        {
            var searchCriteria = new TicketSearchParams
            {
                ReceivedAtFrom = DateTime.Parse("2014-06-10"),
            };
            var tickets = searchCriteria.Search(requestState);

            Assert.IsNotNull(tickets);
            Assert.AreNotEqual(tickets.Count, 0);
        }
예제 #7
0
        public TicketsResult Search(TicketSearchParams Criteria, RequestState RequestState)
        {
            InitCusRelContext();
            var result = new TicketsResult
            {
                Tickets = Criteria.Search(RequestState)
            };

            if (result.Tickets == null)
            {
                result.SetFail("No tickets found");
            }
            return(result);
        }
        public void Title6SearchTicketsTest()
        {
            var maxSearchCount = requestState.MaxSearchCount;

            requestState.MaxSearchCount = 500;
            var searchCriteria = new TicketSearchParams
            {
                SearchAsUnion  = true,
                ReasonCode1    = "Title VI",
                IsTitle6       = true,
                ReceivedAtFrom = DateTime.Now.AddMonths(-2),
            };
            var tickets = searchCriteria.Search(requestState);

            Assert.IsNotNull(tickets);
            Assert.AreNotEqual(tickets.Count, 0);
            Assert.AreNotEqual(tickets.Count, 500);
            requestState.MaxSearchCount = maxSearchCount;
        }
        public void SearchTicketResultTest()
        {
            var searchCriteria = new TicketSearchParams
            {
                Id       = 362526,
                Status   = TicketStatus.New,
                Priority = TicketPriority.Normal,
                Source   = new TicketSource
                {
                    ReceivedAt = DateTime.Parse("2014-06-11 18:46:10.663"),
                    ReceivedBy = new User(Id: "WEB", Username: "******"),
                    Via        = TicketSourceVia.WEB,
                    FeedbackId = 26887
                },
                Contact = new Contact
                {
                    Name = new Name
                    {
                        First = "Marlena",
                        Last  = "Hanlon"
                    },
                    Address = new Address
                    {
                        Addr1   = null,
                        Addr2   = null,
                        City    = "Oakland",
                        State   = "CA",
                        ZipCode = null
                    },
                    Email = "*****@*****.**",
                    Phone = new Phone
                    {
                        Number = null,
                        Kind   = PhoneKind.Home
                    },
                    Status = null
                },
                IsAdaComplaint = false,
                IsTitle6       = false,
                Incident       = new Incident
                {
                    IncidentAt    = DateTime.Parse("2014-06-11 18:15:00.000"),
                    VehicleNumber = "1601",
                    Route         = "1",
                    Location      = "Telegraph at 34th", // partial text
                    Destination   = "none",
                    City          = null,
                    Division      = "GO"
                },
                Operator = new Operator
                {
                    Badge       = null,
                    Description = "Picture available" // partial text
                },
                LostItem = new LostItem
                {
                    Category = "None",
                    Type     = "None",
                },
                Reasons = new List <string> {
                    "11. HAZARDOUS OPERATION", "16. CONDUCT/DISCOURTESY"
                },
                Comments         = "since the LAW is that when passing bicyclists", // partial text
                ResponseCriteria = new ResponseCriteria
                {
                    HasRequestedResponse = true,
                    Via = ResponseCriteriaVia.Email
                },
                Resolution = new Resolution
                {
                    Action     = null,
                    Comment    = null,
                    ResolvedAt = null
                },
                Assignment = new Assignment
                {
                    GroupContact = new GroupContact("K. Hayward Supt Div 6"),
                    Employee     = new User(Id: null),
                },
                UpdatedAt = DateTime.Parse("2014-06-11 19:32:26.000"),
                UpdatedBy = new User(Id: "ACCBTONA"),

                ReceivedAtFrom = DateTime.Parse("2014-06-10"),
                ReceivedAtTo   = DateTime.Parse("2014-06-13"),
                IncidentAtFrom = DateTime.Parse("2014-06-11 18:14:00.000"),
                IncidentAtTo   = DateTime.Parse("2014-06-11 18:16:00.000")
            };
            var tickets = searchCriteria.Search(requestState);

            Assert.IsNotNull(tickets);
            Assert.AreNotEqual(tickets.Count, 0);
        }