public static DataTable ConvertToDataTableForExport(BaseController controller, IList <OrderShipModel> dataList, string[] columns)
        {
            DataTable dataTable = new DataTable("Dynamic");

            //Get all the properties
            for (int i = 0; i < columns.Length; i++)
            {
                //Setting column names as Property names
                dataTable.Columns.Add(i.ToString());
            }

            for (int i = 0; i < dataList.Count(); i++)
            {
                var dateString = dataList[i].RECEIVE_HOUR_FROM + "h - " + dataList[i].RECEIVE_HOUR_TO + "h Ngày:" + dataList[i].RECEIVE_TIME_DATE.ToString("dd/MM/yyyy");

                var values = new object[columns.Length];
                var row    = 0;
                values[row++] = i + 1;

                values[row++] = ReportServices.FormatStringCsv(dataList[i].CREATE_DATE.ToString("dd/MM/yyyy"));
                values[row++] = ReportServices.FormatStringCsv(dataList[i].SHIP_CODE);
                values[row++] = ReportServices.FormatStringCsv(dataList[i].RECEIVED_NAME);
                values[row++] = ReportServices.FormatStringCsv(dataList[i].RECEIVED_PHONE);
                values[row++] = ReportServices.FormatStringCsv(dataList[i].PRODUCT_NAME);
                values[row++] = ReportServices.FormatDynamicDecimalCsv(dataList[i].PRICE_PRODUCT.Value);
                values[row++] = ReportServices.FormatDynamicDecimalCsv(dataList[i].PRICE_SHIP);
                values[row++] = ReportServices.FormatStringCsv(dateString);
                values[row++] = ReportServices.FormatStringCsv(OrderStatus.Items[dataList[i].ORDER_STATUS].ToString());

                dataTable.Rows.Add(values);
            }

            return(dataTable);
        }