Example #1
0
        /// <summary>
        /// doSearch: run a search
        /// </summary>
        protected void doSearch()
        {
            string firstName    = txtFirstName.Text;
            string lastName     = txtLastName.Text;
            int    surnameType  = cboSurnameType.SelectedIndex;
            int    forenameType = cboForenameType.SelectedIndex;

            dgvClients.DataBindings.Clear();
            _list = new ClientSummaryList();

            if (Server.Instance.searchClient(firstName, forenameType, lastName, surnameType, _list))
            {
                dgvClients.AutoGenerateColumns = false;
                dgvClients.DataSource          = _list;
                dgvClients.Refresh();
            }
            if (_selecting)
            {
                cmdOk.Visible = (_list.Count > 0);
            }
        }
Example #2
0
        /// <summary>
        /// searchClient: this performs a client search returning XML data.
        /// </summary>
        /// <remarks>
        /// This differs from the book search in using XML as a vehicle for the results.
        /// These are parsed into a client summary list using LINQ to XML.
        /// </remarks>
        /// <param name="clientId"></param>
        /// <param name="forename"></param>
        /// <param name="surname"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public Boolean searchClient(string forename, int forenameSearchType, string surname, int surnameSearchType, ClientSummaryList list)
        {
            String results = String.Empty;

            try {
                lock (_syncCall) {
                    UniSubroutine s = _sess.CreateUniSubroutine("u2_searchClients", 3);

                    String searchData = surname + FM_STR + surnameSearchType.ToString() + FM_STR + forename + FM_STR + forenameSearchType.ToString();
                    String errText    = String.Empty;


                    s.SetArg(0, searchData);
                    s.Call();
                    errText = s.GetArg(2);
                    results = s.GetArg(1).Replace(FM_STR, CRLF);
                    if (String.IsNullOrEmpty(errText) == false)
                    {
                        ShowError(errText);
                        return(false);
                    }
                }

                System.Diagnostics.Debug.Print("Start of text");
                System.Diagnostics.Debug.Print(results);
                System.Diagnostics.Debug.Print("end of text");

                XDocument doc   = XDocument.Parse(results);
                var       query = from e in doc.Element("ROOT").Descendants("U2_CLIENTS")
                                  select new ClientSummary
                {
                    ClientId      = (string)e.Element("ID"),
                    FirstName     = (string)e.Element("FORENAME"),
                    LastName      = (string)e.Element("SURNAME"),
                    Address       = (string)e.Element("DELIM_ADDRESS"),
                    JoinDate      = (string)e.Element("JOIN_DATE"),
                    AccountStatus = (string)e.Element("ACCOUNT_STATUS")
                };
                foreach (ClientSummary c in query)
                {
                    list.Add(c);
                }
            } catch (Exception ex) {
                ShowError(ex.Message);
                return(false);
            }
            return(true);
        }