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(); } }
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>"); } }