public static IList<CustomerEx> ProcessInvoiceListToCustomerExList(IList<Invoice> listInvoice)
        {
            List<CustomerEx> listCusEx = new List<CustomerEx>();
            List<Customer> listCus = new List<Customer>();

            foreach (Invoice inv in listInvoice)
            {
                if (!listCus.Contains(inv.Customer))
                    listCus.Add(inv.Customer);
            }

            Customer Cus;
            CustomerEx CusEx;
            int sizeListCus = listCus.Count;
            for (int count = 0; count < sizeListCus; count++)
            {
                Cus = listCus[count];
                CusEx = new CustomerEx();
                CusEx.F1 = Cus.Fullname;

                #region Fix lacked address (nmChi)
                //CusEx.A1 = Cus.Address + ", " + Cus.Precinct + ", " + Cus.Districtid + ", " + GetProvinceNameByProvinceCode(Cus.Provinceid);
                CusEx.A1 = ServiceTools.GetCustAddress(Cus);
                #endregion

                count++;
                if (count < sizeListCus)
                {
                    Cus = listCus[count];
                    CusEx.F2 = Cus.Fullname;
                    #region Fix lacked address (ntdung)
                    //CusEx.A2 = Cus.Address + ", " + Cus.Precinct + ", " + Cus.Districtid + ", " + GetProvinceNameByProvinceCode(Cus.Provinceid);
                    CusEx.A2 = ServiceTools.GetCustAddress(Cus);
                    #endregion
                }
                listCusEx.Add(CusEx);
            }
            return listCusEx;
        }
        public static IList<CustomerEx> ConvertToCustomerExList(object cusList)
        {
            List<CustomerEx> listCusEx = new List<CustomerEx>();
            CustomerEx CusEx;
            if (cusList is DataSet)
            {
                var data = ((DataSet)cusList).Tables[0];
                for (int count = 0; count < data.Rows.Count; count++)
                {
                    DataRow row = data.Rows[count];
                    CusEx = new CustomerEx();
                    CusEx.F1 = (string)row["Fullname"];
                    CusEx.A1 = CustomerDAO.BuildAddress((string)row["Address"], (string)row["Provinceid"], (string)row["Districtid"], (string)row["Precinct"]);

                    count++;
                    if (count < data.Rows.Count)
                    {
                        row = data.Rows[count];
                        CusEx.F2 = (string)row["Fullname"];
                        CusEx.A2 = CustomerDAO.BuildAddress((string)row["Address"], (string)row["Provinceid"], (string)row["Districtid"], (string)row["Precinct"]);
                    }
                    listCusEx.Add(CusEx);
                }
            }

            if (cusList is IEnumerable<VDMS.I.Entity.CustomerInfo>)
            {
                var data = (IEnumerable<VDMS.I.Entity.CustomerInfo>)cusList;
                int sizeListCus = data.Count();
                for (int count = 0; count < sizeListCus; count++)
                {
                    VDMS.I.Entity.CustomerInfo Cus = data.ElementAt(count);
                    CusEx = new CustomerEx();
                    CusEx.F1 = Cus.FullName;
                    CusEx.A1 = CustomerDAO.BuildAddress(Cus.Address, Cus.ProvinceId, Cus.Precinct, Cus.DistrictId);

                    count++;
                    if (count < sizeListCus)
                    {
                        Cus = data.ElementAt(count);
                        CusEx.F2 = Cus.FullName;
                        CusEx.A2 = CustomerDAO.BuildAddress(Cus.Address, Cus.ProvinceId, Cus.Precinct, Cus.DistrictId);
                    }
                    listCusEx.Add(CusEx);
                }
            }

            return listCusEx;
        }