Exemple #1
0
        public void Search()
        {
            Console.WriteLine(@"Welcome to Zendesk search engine
Press Ctrl+C to exit at any time, Press enter to continue

Select Search options: 
     * Press 1 to search Zendesk
     * Press 2 to view a list of searchable fields
     * Press Ctrl+C to exit");

            var userInputSelectSearch = Console.ReadLine();

            if (userInputSelectSearch == "1")
            {
                Console.WriteLine(@"Select 1) Users 2) Tickets 3) Organisations");
                var userSearchInput    = Console.ReadLine();
                var termAndValueResult = SearchTermAndValue();

                switch (userSearchInput)
                {
                case "1":
                    Console.WriteLine($"Searching users for Key: {termAndValueResult.term} and Value: {termAndValueResult.val}");
                    var userSearchResult = _user.GetUserDetails(termAndValueResult.term, termAndValueResult.val);
                    UserFormatter.UserFormatOutput(userSearchResult);
                    break;

                case "2":
                    Console.WriteLine($"Searching tickets for Key: {termAndValueResult.term} and Value: {termAndValueResult.val}");
                    var ticketSearchResult = _ticket.GetTicketDetails(termAndValueResult.term, termAndValueResult.val);
                    TicketFormatter.FormatTicketOutput(ticketSearchResult);
                    break;

                case "3":
                    Console.WriteLine($"Searching organisations for Key: {termAndValueResult.term} and Value: {termAndValueResult.val}");
                    var orgSearchResult = _org.GetOrganizationDetails(termAndValueResult.term, termAndValueResult.val);
                    OranizationFormatter.FormatOrganizationOutput(orgSearchResult);
                    break;

                default:
                    Console.WriteLine("Invalid search option");
                    break;
                }
            }
            else if (userInputSelectSearch == "2")
            {
                GetAllSearchTerms.SearchTerms();
            }
            else
            {
                Console.WriteLine("No results found. Please check for valid inputs");
            }
        }
Exemple #2
0
        public void GetOrganization_RequestKeyIdValue101_ReturnsOrgDetailsForId101(string key, string val)
        {
            using StreamReader r = new StreamReader("Data/organizationResult.json");
            string json = r.ReadToEnd();

            var expectedResponse = new List <Organization>();
            var org = JsonConvert.DeserializeObject <Organization>(json);

            expectedResponse.Add(org);
            var serialisedexpectedResponse = JsonConvert.SerializeObject(expectedResponse);

            var actualResponse           = _service.GetOrganizationDetails(key, val);
            var serializedActualResponse = JsonConvert.SerializeObject(actualResponse);

            Assert.Equal(serialisedexpectedResponse, serializedActualResponse);
        }
Exemple #3
0
        public List <UserSearchEntity> GetUserDetails(string key, string value)
        {
            var userDetails  = new List <UserSearchEntity>();
            var titleCaseKey = TitleCaseString.ToTitleCase(key);

            using StreamReader r = new StreamReader(_userFilePath);
            string json     = r.ReadToEnd();
            var    allUsers = JsonConvert.DeserializeObject <List <User> >(json);

            foreach (var user in allUsers)
            {
                var mapUser = new UserSearchEntity();
                if (user.GetType().GetTypeInfo().GetDeclaredProperty(titleCaseKey) != null)
                {
                    if (user.GetType().GetProperty(titleCaseKey).GetValue(user)?.ToString() == value)
                    {
                        if (user?.Organization_Id != 0)
                        {
                            var orgDetails           = _getOrg.GetOrganizationDetails("Id", user.Organization_Id.ToString());
                            var ticketSubjectDetails = GetTicketsSubject(user.Organization_Id);
                            mapUser.OrganizationName = orgDetails?.FirstOrDefault(r => r.Id == user?.Organization_Id).Name;
                            mapUser.User             = user;
                            mapUser.TicketSubjects   = ticketSubjectDetails;
                        }
                        userDetails.Add(mapUser);
                    }
                }
                else
                {
                    Console.WriteLine("Please enter a valid search term");
                    _logger.LogInformation($"Invalid search term {key}");
                    userDetails = null;
                    break;
                }
            }
            return(userDetails);
        }
Exemple #4
0
        public List <TicketSearchEntity> GetTicketDetails(string key, string value)
        {
            var ticketDetails = new List <TicketSearchEntity>();
            var titleCaseKey  = TitleCaseString.ToTitleCase(key);

            using StreamReader r = new StreamReader(_filePath);
            string json = r.ReadToEnd();

            var allTickets = JsonConvert.DeserializeObject <List <Ticket> >(json);

            foreach (var ticket in allTickets)
            {
                var mapTicket = new TicketSearchEntity();
                if (ticket.GetType().GetTypeInfo().GetDeclaredProperty(titleCaseKey) != null)
                {
                    if (ticket.GetType().GetProperty(titleCaseKey).GetValue(ticket)?.ToString() == value)
                    {
                        if (ticket?.Organization_Id != 0)
                        {
                            var orgDetails = _getOrg.GetOrganizationDetails("Id", ticket.Organization_Id.ToString());

                            mapTicket.Ticket           = ticket;
                            mapTicket.OrganizationName = orgDetails?.FirstOrDefault(r => r.Id == ticket?.Organization_Id).Name;
                        }
                        ticketDetails.Add(mapTicket);
                    }
                }
                else
                {
                    Console.WriteLine("Please enter a valid search term for Tickets");
                    _logger.LogInformation($"Invalid search term {key}");
                    ticketDetails = null;
                    break;
                }
            }
            return(ticketDetails);
        }