예제 #1
0
        private void SearchIncome(SearchIncomeBy searchIncomeBy)
        {
            string searchString = Utility.GetStringFromConsole("Enter phrase to search for", "Phrase canot be empty", 4, "Phrase is too short");

            Tuple <MessageType, string, HashSet <Income> > incomes = Client.SearchIncomes(searchString, searchIncomeBy);

            if (incomes.Item1 == MessageType.None)
            {
                DisplayIncomes(incomes.Item3);
            }
            else
            {
                ShowMessageOrError(new Tuple <MessageType, string>(incomes.Item1, incomes.Item2));
                Return();
            }
        }
예제 #2
0
        internal string SearchIncome(XDocument requestXML)
        {
            if (requestXML.Root.Element("search") != null && requestXML.Root.Element("searchby") != null)
            {
                string         search         = requestXML.Root.Element("search").Value;
                SearchIncomeBy searchIncomeBy = Enum.Parse <SearchIncomeBy>(requestXML.Root.Element("searchby").Value);

                if (search.Length > 0)
                {
                    HashSet <Tuple <int, string, int, string, string, string> > data;

                    try
                    {
                        data = DatabaseHandler.Instance().SearchIncomes(Id, searchIncomeBy, search);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        return("<Error>Server encountered an error during listing incomes. Try again later.</Error>");
                    }

                    if (data.Count > 0)
                    {
                        string returnList = "<Incomes>";

                        data.ToList().ForEach(data => returnList += "<Income>" + "<Id>" + data.Item1 + "</Id>" + "<Name>" + data.Item2 + "</Name>" + "<Amount>" + data.Item3 + "</Amount>" + "<Source>" + data.Item4 + "</Source>" + "<Destination>" + data.Item5 + "</Destination>" + "<Date>" + data.Item6 + "</Date>" + "</Income>");

                        return(returnList + "</Incomes>");
                    }
                    else
                    {
                        return("<Message>No incomes.</Message>");
                    }
                }
                else
                {
                    return("<Error>Empty search string</Error>");
                }
            }
            else
            {
                return("<Error>Income wasn't searched, missing data</Error>");
            }
        }