private InvoiceSearchFilter CreateContactSearchFilter(Contact_V01 invoiceContact)
        {
            var searchFilter = new InvoiceSearchFilter();

            try
            {
                if (null != invoiceContact)
                {
                    searchFilter.SearchByDateOrAmount = false;
                    if (null != invoiceContact.EnglishName)
                    {
                        if (!string.IsNullOrEmpty(invoiceContact.EnglishName.First))
                        {
                            searchFilter.FirstName = invoiceContact.EnglishName.First;
                        }

                        if (!string.IsNullOrEmpty(invoiceContact.EnglishName.Last))
                        {
                            searchFilter.LastName = invoiceContact.EnglishName.Last;
                        }
                    }

                    if (null != invoiceContact.PrimaryAddress)
                    {
                        if (!string.IsNullOrEmpty(invoiceContact.PrimaryAddress.Line1))
                        {
                            searchFilter.StreetAddress = invoiceContact.PrimaryAddress.Line1;
                        }
                        if (!string.IsNullOrEmpty(invoiceContact.PrimaryAddress.City))
                        {
                            searchFilter.City = invoiceContact.PrimaryAddress.City;
                        }
                        if (!string.IsNullOrEmpty(invoiceContact.PrimaryAddress.StateProvinceTerritory))
                        {
                            searchFilter.State = invoiceContact.PrimaryAddress.StateProvinceTerritory;
                        }
                        if (!string.IsNullOrEmpty(invoiceContact.PrimaryAddress.PostalCode))
                        {
                            searchFilter.ZipCode = invoiceContact.PrimaryAddress.PostalCode;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MyHLWebUtil.LogExceptionWithContext(ex);
            }
            return(searchFilter);
        }
        private List <Invoice> searchInvoices(SearchTypes searchType, SearchFilterTypes filterType)
        {
            //begin - shan - mar 14, 2012 - set default value to be error value (-999)
            //based on that differentiate whether zero has been entered or fields has been left empty
            //while searching based on the amount
            //decimal startAmount = 0;
            //decimal.TryParse(txtStartAmount.Text.Trim(), out startAmount);
            //decimal endAmount = 0;
            //decimal.TryParse(txtEndAmount.Text.Trim(), out endAmount);
            var     invoices    = new List <Invoice>();
            decimal startAmount = -999;
            decimal endAmount   = -999;

            startAmount = decimal.TryParse(txtStartAmount.Text.Trim(), out startAmount) ? startAmount : -999;
            endAmount   = decimal.TryParse(txtEndAmount.Text.Trim(), out endAmount) ? endAmount : -999;

            var searchValue = txtSearchBy.Text.Trim();

            if (searchType == SearchTypes.ByDateOrAmount)
            {
                invoices = InvoiceProvider.SearchInvoice(new InvoiceSearchFilter()
                {
                    SearchByDateOrAmount = true,
                    FromDate             = FromDate.SelectedDate,
                    ToDate      = ToDate.SelectedDate,
                    StartAmount = (0 > startAmount) ? (decimal?)null : startAmount,
                    EndAmount   = (0 > endAmount) ? (decimal?)null : endAmount,
                }, DistributorID);
            }
            else
            {
                var searchFilter = new InvoiceSearchFilter();
                searchFilter.SearchByDateOrAmount = false;
                searchFilter.FirstName            = (filterType == SearchFilterTypes.FirstName) ? searchValue : string.Empty;
                searchFilter.LastName             = (filterType == SearchFilterTypes.LastName) ? searchValue : string.Empty;
                searchFilter.StreetAddress        = (filterType == SearchFilterTypes.StreetAddress) ? searchValue : string.Empty;
                searchFilter.City        = (filterType == SearchFilterTypes.City) ? searchValue : string.Empty;
                searchFilter.State       = (filterType == SearchFilterTypes.State) ? searchValue : string.Empty;
                searchFilter.ZipCode     = (filterType == SearchFilterTypes.ZipCode) ? searchValue : string.Empty;
                searchFilter.SKU         = (filterType == SearchFilterTypes.SKU) ? searchValue : string.Empty;
                searchFilter.Description = (filterType == SearchFilterTypes.Description) ? searchValue : string.Empty;

                //begin - shan - mar 14, 2012 - assign null based on error value
                //to differentiate whether to search by 0 or empty field
                //based on this, while filtering check for null or 0
                decimal parseValue = -999;

                parseValue = decimal.TryParse(searchValue, out parseValue) ? parseValue : -999;
                {
                    searchFilter.TotalVolumePoints = (filterType == SearchFilterTypes.TotalVolumePoints) ?
                                                     (0 < parseValue ? parseValue : (decimal?)null) : (decimal?)null;
                    searchFilter.InvoiceTotal = (filterType == SearchFilterTypes.InvoiceTotal) ?
                                                (0 < parseValue ? parseValue : (decimal?)null) : (decimal?)null;
                }

                invoices = InvoiceProvider.SearchInvoice(searchFilter, DistributorID);

                //shan - mar 15, 2012 - to set secondary sorting to be of invoice #
                //sort the invoices to be ordered by invoice # descendingg
                //while applying sorting from grid that should get filter as the primary sorting
                if (null != invoices && invoices.Count > 0)
                {
                    invoices = invoices.OrderByDescending(inv => inv.DistributorInvoiceNumber).ToList();
                }
            }

            return(invoices);
        }
        private List <Invoice> searchInvoices(InvoiceSearchFilter searchFilter)
        {
            var invoices = InvoiceProvider.SearchInvoice(searchFilter, DistributorID);

            return(invoices);
        }