public static DataTable FindAllDataTableByOrderByAndCleintIDAndChanneLIDAndDate
            (int channelId, int clientId, DateTime startDateTime, DateTime enddateTime, DataType dataType, string sortFieldName, bool isDesc, int pageIndex, int pageSize, out int recordCount)
        {
            if (channelId == 0)
            {
                throw new ArgumentException(" channelId not allow 0.");
            }

            SPChannelWrapper channelWrapper = SPChannelWrapper.FindById(channelId);

            List <SPPaymentInfoWrapper> spPaymentInfoWrappers = ConvertToWrapperList(businessProxy.FindAllDataTableByOrderByAndCleintIDAndChanneLIDAndDate(channelId, clientId,
                                                                                                                                                           startDateTime,
                                                                                                                                                           enddateTime, dataType,
                                                                                                                                                           sortFieldName, isDesc,
                                                                                                                                                           pageIndex, pageSize,
                                                                                                                                                           out recordCount));

            DataTable channelRecordTable = channelWrapper.BuildChannelRecordTable();

            for (int i = 0; i < spPaymentInfoWrappers.Count; i++)
            {
                DataRow dr = channelRecordTable.NewRow();

                dr.BeginEdit();

                dr["RecordID"]       = spPaymentInfoWrappers[i].Id;
                dr["CreateDate"]     = spPaymentInfoWrappers[i].CreateDate;
                dr["Province"]       = spPaymentInfoWrappers[i].Province;
                dr["City"]           = spPaymentInfoWrappers[i].City;
                dr["SycnRetryTimes"] = spPaymentInfoWrappers[i].SycnRetryTimes;
                dr["IsSycnData"]     = spPaymentInfoWrappers[i].IsSycnData;
                dr["SucesssToSend"]  = spPaymentInfoWrappers[i].SucesssToSend;

                if (!string.IsNullOrEmpty(spPaymentInfoWrappers[i].SSycnDataUrl))
                {
                    dr["SendUrl"] = spPaymentInfoWrappers[i].SSycnDataUrl;
                }
                else
                {
                    if (spPaymentInfoWrappers[i].IsSycnData.HasValue && spPaymentInfoWrappers[i].IsSycnData.Value)
                    {
                        dr["SendUrl"] = spPaymentInfoWrappers[i].ReBuildUrl();
                    }
                }

                foreach (string field in SPChannelWrapper.fields)
                {
                    dr[field] = spPaymentInfoWrappers[i].GetMappingValue(field);
                }

                dr.EndEdit();

                channelRecordTable.Rows.Add(dr);
            }

            channelRecordTable.AcceptChanges();

            return(channelRecordTable);
        }
        public static DataTable FindAllDataTableByOrderByAndCleintIDAndChanneLIDAndDate
            (int channelId, int clientId, DateTime startDateTime, DateTime enddateTime, DataType dataType, string sortFieldName, bool isDesc)
        {
            if (channelId == 0)
            {
                throw new ArgumentException(" channelId not allow 0.");
            }

            SPChannelWrapper channelWrapper = SPChannelWrapper.FindById(channelId);

            List <SPPaymentInfoWrapper> spPaymentInfoWrappers = ConvertToWrapperList(businessProxy.FindAllDataTableByOrderByAndCleintIDAndChanneLIDAndDate(channelId, clientId,
                                                                                                                                                           startDateTime,
                                                                                                                                                           enddateTime, dataType,
                                                                                                                                                           sortFieldName, isDesc));

            DataTable channelRecordTable = new DataTable();

            channelRecordTable.Columns.Add("LinkID", typeof(string));
            channelRecordTable.Columns.Add("Mobile", typeof(string));
            channelRecordTable.Columns.Add("Mo", typeof(string));
            channelRecordTable.Columns.Add("Cpid", typeof(string));
            channelRecordTable.Columns.Add("Province", typeof(string));
            channelRecordTable.Columns.Add("City", typeof(string));
            channelRecordTable.Columns.Add("CreateDate", typeof(DateTime));


            for (int i = 0; i < spPaymentInfoWrappers.Count; i++)
            {
                DataRow dr = channelRecordTable.NewRow();

                dr.BeginEdit();


                dr["LinkID"]     = spPaymentInfoWrappers[i].Linkid;
                dr["Mobile"]     = spPaymentInfoWrappers[i].MobileNumber;
                dr["Mo"]         = spPaymentInfoWrappers[i].Ywid;
                dr["Cpid"]       = spPaymentInfoWrappers[i].Cpid;
                dr["CreateDate"] = spPaymentInfoWrappers[i].CreateDate;
                dr["Province"]   = spPaymentInfoWrappers[i].Province;
                dr["City"]       = spPaymentInfoWrappers[i].City;

                //foreach (string field in SPChannelWrapper.fields)
                //{
                //    dr[field] = spPaymentInfoWrappers[i].GetMappingValue(field);
                //}

                dr.EndEdit();

                channelRecordTable.Rows.Add(dr);
            }

            channelRecordTable.AcceptChanges();

            return(channelRecordTable);
        }
Esempio n. 3
0
        public bool IsMacthSPCode(Hashtable requestValues, Hashtable fieldMappings, string cpid)
        {
            string columnName = "cpid";

            if (!string.IsNullOrEmpty(cpid))
            {
                columnName = cpid;
            }

            string spcode = SPChannelWrapper.GetMappedParamValueFromRequest(requestValues, columnName, fieldMappings);

            return(spcode.Trim().ToLower().Equals(this.ChannelCode));
        }
Esempio n. 4
0
        public bool IsMacth(Hashtable requestValues, Hashtable fieldMappings)
        {
            string columnName = "ywid";

            if (!string.IsNullOrEmpty(this.CommandColumn))
            {
                columnName = this.CommandColumn;
            }

            string ywid = SPChannelWrapper.GetMappedParamValueFromRequest(requestValues, columnName, fieldMappings);

            return(this.MatchByYWID(ywid));
        }
Esempio n. 5
0
        public static List <SPPaymentInfoWrapper> FindAllByOrderByAndCleintIDAndChanneLIDAndDate
            (int channelId, int clientId, DateTime startDateTime, DateTime enddateTime, DataType dataType, string sortFieldName, bool isDesc, int pageIndex, int pageSize, out int recordCount)
        {
            if (channelId == 0)
            {
                throw new ArgumentException(" channelId not allow 0.");
            }

            SPChannelWrapper channelWrapper = SPChannelWrapper.FindById(channelId);

            return(ConvertToWrapperList(businessProxy.FindAllDataTableByOrderByAndCleintIDAndChanneLIDAndDate(channelId, clientId,
                                                                                                              startDateTime,
                                                                                                              enddateTime, dataType,
                                                                                                              sortFieldName, isDesc,
                                                                                                              pageIndex, pageSize,
                                                                                                              out recordCount)));
        }
        //public static void InsertRecord(SPPaymentInfoWrapper paymentInfo)
        //{
        //    SPInterceptRateWrapper spInterceptRateWrappe  =new SPInterceptRateWrapper();

        //}
        public static void InsertRate(SPChannelWrapper channelId, SPClientWrapper clinetId, bool isInterCept)
        {
            SPInterceptRateEntity spInterceptRateWrapper = businessProxy.FindRateByChannelIdAndClinetId(channelId.Id, clinetId.Id);

            if (isInterCept)
            {
                spInterceptRateWrapper.InterceptCount = spInterceptRateWrapper.InterceptCount + 1;
            }

            spInterceptRateWrapper.TotalCount = spInterceptRateWrapper.TotalCount + 1;

            spInterceptRateWrapper.InterceptRate = Convert.ToDecimal(spInterceptRateWrapper.InterceptCount) / Convert.ToDecimal(spInterceptRateWrapper.TotalCount);

            spInterceptRateWrapper.LastSycnDate = System.DateTime.Now;

            Update(ConvertEntityToWrapper(spInterceptRateWrapper));
        }
Esempio n. 7
0
        public static DataTable FindAllDataTableByOrderByAndCleintIDAndChanneLIDAndDateNoIntercept(int channelId, int clientId, DateTime startDateTime, DateTime enddateTime, string sortFieldName, bool isDesc, int pageIndex, int pageSize, out int recordCount)
        {
            if (channelId == 0)
            {
                throw new ArgumentException(" channelId not allow 0.");
            }

            SPChannelWrapper channelWrapper = SPChannelWrapper.FindById(channelId);

            List <SPPaymentInfoWrapper> spPaymentInfoWrappers = ConvertToWrapperList(businessProxy.FindAllByOrderByAndCleintIDAndChanneLIDAndDateNoIntercept(channelId, clientId,
                                                                                                                                                             startDateTime,
                                                                                                                                                             enddateTime,
                                                                                                                                                             sortFieldName, isDesc,
                                                                                                                                                             pageIndex, pageSize,
                                                                                                                                                             out recordCount));

            DataTable channelRecordTable = channelWrapper.BuildChannelRecordTable();

            for (int i = 0; i < spPaymentInfoWrappers.Count; i++)
            {
                DataRow dr = channelRecordTable.NewRow();

                dr.BeginEdit();

                dr["RecordID"]   = spPaymentInfoWrappers[i].Id;
                dr["CreateDate"] = spPaymentInfoWrappers[i].CreateDate;

                foreach (string field in SPChannelWrapper.fields)
                {
                    dr[field] = spPaymentInfoWrappers[i].GetMappingValue(field);
                }

                dr.EndEdit();

                channelRecordTable.Rows.Add(dr);
            }

            channelRecordTable.AcceptChanges();

            return(channelRecordTable);
        }
Esempio n. 8
0
 public static List <SPPaymentInfoWrapper> FindAllByChannelID(SPChannelWrapper channelID)
 {
     return(ConvertToWrapperList(businessProxy.FindAllByChannelID(channelID.entity)));
 }
Esempio n. 9
0
 public static List <SPPaymentInfoWrapper> FindAllByOrderByAndFilterAndChannelID(string orderByColumnName, bool isDesc, int pageIndex, int pageSize, SPChannelWrapper channelID, out int recordCount)
 {
     return(ConvertToWrapperList(businessProxy.FindAllByOrderByAndFilterAndChannelID(orderByColumnName, isDesc, pageIndex, pageSize, channelID.entity, out recordCount)));
 }
Esempio n. 10
0
 public static List <SPChannelWrapper> GetChannelByClient(SPClientWrapper spClientWrapper)
 {
     return(SPChannelWrapper.ConvertToWrapperList(businessProxy.GetChannelByClient(spClientWrapper.entity)));
 }
Esempio n. 11
0
 public static List <SPClientChannelSettingWrapper> GetSettingByChannel(SPChannelWrapper spChannelWrapper)
 {
     return(SPClientChannelSettingWrapper.ConvertToWrapperList(businessProxy.GetSettingByChannel(spChannelWrapper.entity)));
 }
Esempio n. 12
0
 public static List <SPChannelDefaultClientSycnParamsWrapper> FindAllByChannelID(SPChannelWrapper channelID)
 {
     return(ConvertToWrapperList(businessProxy.FindAllByChannelID(channelID.entity)));
 }
        //public static void QuickAdd(string loginId, string code, SPChannelWrapper channelWrapper, int mainloginuserId, List<CodeUserID> codeUserIds, string channelCode, int orderIndex, bool hasSubCode, string codeType)
        //{
        //    businessProxy.QuickAdd(loginId, code, channelWrapper.entity, mainloginuserId, codeUserIds, channelCode, orderIndex, hasSubCode, codeType);
        //}

        public static void QuickAdd(string loginId, string code, SPChannelWrapper channelWrapper, int mainloginuserId, List <CodeUserID> codeUserIds, string channelCode, int orderIndex, bool hasSubCode, string codeType, string allowAndDisableArea, string getway, string dayLimit, string monthLimit, string sendText)
        {
            businessProxy.QuickAdd(loginId, code, channelWrapper.entity, mainloginuserId, codeUserIds, channelCode, orderIndex, hasSubCode, codeType, allowAndDisableArea, getway, dayLimit, monthLimit, sendText);
        }
 public static void QuickAdd(string loginID, string code, SPChannelWrapper channelWrapper, int mainloginuserID, List <CodeUserID> codeUserIds, string channelCode)
 {
     businessProxy.QuickAdd(loginID, code, channelWrapper.entity, mainloginuserID, codeUserIds, channelCode);
 }
        public static DataTable GetProvinceReport(DateTime startDate, DateTime endDate, int channelID, int channleClientID)
        {
            DataTable dt = new DataTable("DS");

            dt.Columns.Add("ChannelName");
            dt.Columns.Add("ChannelID");
            dt.Columns.Add("CodeName");
            dt.Columns.Add("ChannelClentID");
            dt.Columns.Add("Province");
            dt.Columns.Add("RecordCount", typeof(int));

            dt.AcceptChanges();

            DataTable dtReportQuery = businessProxy.GetProvinceReport(startDate, endDate, channelID, channleClientID, null);

            List <ReportDataProvinceItem> reportDataProvinceItems = new List <ReportDataProvinceItem>();

            foreach (DataRow dr in dtReportQuery.Rows)
            {
                SPChannelWrapper channel = SPChannelWrapper.FindById((int)dr["ChannelID"]);
                SPClientChannelSettingWrapper channelSettingWrapper = SPClientChannelSettingWrapper.FindById((int)dr["ChannleClientID"]);

                string channelName = channel.Name;
                string moCode      = channelSettingWrapper.ParentClientChannelSetting.MoCode;
                string province    = dr["Province"].ToString();

                int recordCount = (int)dr["RecordCount"];

                ReportDataProvinceItem reportDataProvinceItem = new ReportDataProvinceItem();
                reportDataProvinceItem.ChannelID   = (int)dr["ChannelID"];
                reportDataProvinceItem.ChannelName = channelName;
                reportDataProvinceItem.CodeID      = (int)dr["ChannleClientID"];
                reportDataProvinceItem.CodeName    = moCode.ToLower();
                if (string.IsNullOrEmpty(province))
                {
                    reportDataProvinceItem.Province = "未知省份";
                }
                else
                {
                    if (string.IsNullOrEmpty(province.Trim()))
                    {
                        reportDataProvinceItem.Province = "未知省份";
                    }
                    else
                    {
                        reportDataProvinceItem.Province = province.ToLower();
                    }
                }

                reportDataProvinceItem.RecordCount = recordCount;
                reportDataProvinceItem.Mo          = channelSettingWrapper.CommandCode.ToLower();
                if (channelSettingWrapper.ChannelCode == null)
                {
                    reportDataProvinceItem.SPCode = "";
                }
                else
                {
                    reportDataProvinceItem.SPCode = channelSettingWrapper.ChannelCode.ToLower();
                }


                if (channelSettingWrapper.CommandType == "1")
                {
                    reportDataProvinceItem.MoType = "1";
                }
                else if (channelSettingWrapper.CommandType == "2" || channelSettingWrapper.CommandType == "3" || channelSettingWrapper.CommandType == "4")
                {
                    reportDataProvinceItem.MoType = "2";
                }
                else
                {
                    reportDataProvinceItem.MoType = "0";
                }

                reportDataProvinceItem.MoLength = reportDataProvinceItem.Mo.Length;

                reportDataProvinceItems.Add(reportDataProvinceItem);
            }



            foreach (ReportDataProvinceItem groupItem in reportDataProvinceItems)
            {
                AddNewProvinceReportRow(dt, groupItem.ChannelName, groupItem.CodeName, groupItem.Province, groupItem.RecordCount, groupItem.ChannelID, groupItem.CodeID);
            }

            return(dt);
        }
        public static DataTable GetOperatorReport(DateTime startDate, DateTime endDate, int channleId, int clientChannleId, string mprovince, string moperator)
        {
            DataTable dt = new DataTable("DS");

            dt.Columns.Add("Operator");
            dt.Columns.Add("Province");
            dt.Columns.Add("Channel");
            dt.Columns.Add("Mo");
            dt.Columns.Add("RecordCount", typeof(int));
            dt.AcceptChanges();

            DataTable dtReportQuery = businessProxy.GetOperatorReport(startDate, endDate, channleId, clientChannleId, null, mprovince, moperator);

            List <ReportDataOperatorItem> reportDataProvinceItems = new List <ReportDataOperatorItem>();

            foreach (DataRow dr in dtReportQuery.Rows)
            {
                SPChannelWrapper channel = SPChannelWrapper.FindById((int)dr["ChannelID"]);
                SPClientChannelSettingWrapper channelSettingWrapper = SPClientChannelSettingWrapper.FindById((int)dr["ChannleClientID"]);

                string channelName = channel.Name;
                string moCode      = channelSettingWrapper.MoCode;
                int    recordCount = (int)dr["RecordCount"];
                string province    = dr["Province"].ToString();

                ReportDataOperatorItem reportDataProvinceItem = new ReportDataOperatorItem();
                reportDataProvinceItem.ChannelName = channelName.ToLower();
                reportDataProvinceItem.CodeName    = moCode.ToLower();
                if (string.IsNullOrEmpty(province))
                {
                    reportDataProvinceItem.Province = "未知省份";
                }
                else
                {
                    if (string.IsNullOrEmpty(province.Trim()))
                    {
                        reportDataProvinceItem.Province = "未知省份";
                    }
                    else
                    {
                        reportDataProvinceItem.Province = province.ToLower();
                    }
                }

                reportDataProvinceItem.RecordCount = recordCount;
                reportDataProvinceItem.Mo          = channelSettingWrapper.CommandCode.ToLower();
                if (channelSettingWrapper.ChannelCode == null)
                {
                    reportDataProvinceItem.SPCode = "";
                }
                else
                {
                    reportDataProvinceItem.SPCode = channelSettingWrapper.ChannelCode.ToLower();
                }


                if (channelSettingWrapper.CommandType == "1")
                {
                    reportDataProvinceItem.MoType = "1";
                }
                else if (channelSettingWrapper.CommandType == "2" || channelSettingWrapper.CommandType == "3" || channelSettingWrapper.CommandType == "4")
                {
                    reportDataProvinceItem.MoType = "2";
                }
                else
                {
                    reportDataProvinceItem.MoType = "0";
                }

                reportDataProvinceItem.MoLength     = reportDataProvinceItem.Mo.Length;
                reportDataProvinceItem.OperatorType = dr["Operator"].ToString();
                reportDataProvinceItems.Add(reportDataProvinceItem);
            }



            List <ReportDataOperatorItem> orderedItems = (from rap in reportDataProvinceItems
                                                          orderby rap.OperatorType, rap.Province, rap.ChannelName, rap.MoType, rap.Mo, rap.SPCode, rap.MoLength
                                                          select rap).ToList();

            List <ReportDataOperatorItem> groupItems = new List <ReportDataOperatorItem>();

            foreach (ReportDataOperatorItem oItem in orderedItems)
            {
                ReportDataOperatorItem item =
                    groupItems.Find(
                        p =>
                        (p.OperatorType == oItem.OperatorType && p.ChannelName == oItem.ChannelName &&
                         p.Province == oItem.Province && p.CodeName == oItem.CodeName));

                if (item != null)
                {
                    item.RecordCount = oItem.RecordCount + item.RecordCount;
                }
                else
                {
                    if (oItem.MoType == "2")
                    {
                        ReportDataOperatorItem mitem = (from rap in groupItems
                                                        where
                                                        (rap.OperatorType == oItem.OperatorType && rap.ChannelName == oItem.ChannelName &&
                                                         rap.Province == oItem.Province && rap.SPCode == oItem.SPCode &&
                                                         !oItem.Mo.Equals(rap.Mo) && oItem.Mo.Contains(rap.Mo))
                                                        orderby rap.MoLength
                                                        select rap).FirstOrDefault();

                        bool hasMain = (mitem != null);

                        if (hasMain)
                        {
                            mitem.RecordCount = oItem.RecordCount + mitem.RecordCount;

                            continue;
                        }
                    }

                    var addItem = oItem.Copy();

                    groupItems.Add(addItem);
                }
            }

            foreach (ReportDataOperatorItem groupItem in groupItems)
            {
                dt.Rows.Add(groupItem.OperatorType, groupItem.Province, groupItem.ChannelName, groupItem.CodeName,
                            groupItem.RecordCount);
            }



            dt.AcceptChanges();

            return(dt);
        }
Esempio n. 17
0
        public static DataTable GetProvinceReport(DateTime startDate, DateTime endDate, int channelID,
                                                  int channleClientID)
        {
            DataTable dt = new DataTable("DS");

            dt.Columns.Add("ChannelName");
            dt.Columns.Add("CodeName");
            dt.Columns.Add("Province");
            dt.Columns.Add("RecordCount", typeof(int));
            dt.AcceptChanges();

            DataTable dtReportQuery = businessProxy.GetProvinceReport(startDate, endDate, channelID, channleClientID,
                                                                      null);

            List <ReportDataProvinceItem> reportDataProvinceItems = new List <ReportDataProvinceItem>();

            foreach (DataRow dr in dtReportQuery.Rows)
            {
                SPChannelWrapper channel = SPChannelWrapper.FindById((int)dr["ChannelID"]);
                SPClientChannelSettingWrapper channelSettingWrapper =
                    SPClientChannelSettingWrapper.FindById((int)dr["ChannleClientID"]);

                string channelName = channel.Name;
                string moCode      = channelSettingWrapper.ParentClientChannelSetting.MoCode;
                string province    = dr["Province"].ToString();
                int    recordCount = (int)dr["RecordCount"];

                ReportDataProvinceItem reportDataProvinceItem = new ReportDataProvinceItem();
                reportDataProvinceItem.ChannelName = channelName.ToLower();
                reportDataProvinceItem.CodeName    = moCode.ToLower();
                if (string.IsNullOrEmpty(province))
                {
                    reportDataProvinceItem.Province = "未知省份";
                }
                else
                {
                    if (string.IsNullOrEmpty(province.Trim()))
                    {
                        reportDataProvinceItem.Province = "未知省份";
                    }
                    else
                    {
                        reportDataProvinceItem.Province = province.ToLower();
                    }
                }

                reportDataProvinceItem.RecordCount = recordCount;
                reportDataProvinceItem.Mo          = channelSettingWrapper.CommandCode.ToLower();
                if (channelSettingWrapper.ChannelCode == null)
                {
                    reportDataProvinceItem.SPCode = "";
                }
                else
                {
                    reportDataProvinceItem.SPCode = channelSettingWrapper.ChannelCode.ToLower();
                }


                if (channelSettingWrapper.CommandType == "1")
                {
                    reportDataProvinceItem.MoType = "1";
                }
                else if (channelSettingWrapper.CommandType == "2" || channelSettingWrapper.CommandType == "3" ||
                         channelSettingWrapper.CommandType == "4")
                {
                    reportDataProvinceItem.MoType = "2";
                }
                else
                {
                    reportDataProvinceItem.MoType = "0";
                }

                reportDataProvinceItem.MoLength = reportDataProvinceItem.Mo.Length;

                reportDataProvinceItems.Add(reportDataProvinceItem);
            }


            //List<ReportDataProvinceItem> orderedItems = (from rap in reportDataProvinceItems
            //                                             orderby rap.ChannelName, rap.MoType, rap.Mo, rap.SPCode, rap.Province, rap.MoLength
            //              select rap).ToList();

            //List<ReportDataProvinceItem> groupItems = new List<ReportDataProvinceItem>();

            //foreach (ReportDataProvinceItem oItem in orderedItems)
            //{
            //    ReportDataProvinceItem item =
            //        groupItems.Find(
            //            p =>
            //            (p.ChannelName == oItem.ChannelName && p.CodeName == oItem.CodeName &&
            //             p.Province == oItem.Province));

            //    if (item!=null)
            //    {
            //        item.RecordCount = oItem.RecordCount + item.RecordCount;
            //    }
            //    else
            //    {
            //        if (oItem.MoType == "2")
            //        {
            //            //ReportDataProvinceItem mitem = (from rap in groupItems
            //            //     where
            //            //         (rap.ChannelName == oItem.ChannelName && rap.SPCode == oItem.SPCode &&
            //            //          !oItem.Mo.Equals(rap.Mo) && oItem.Mo.Contains(rap.Mo))
            //            //     orderby rap.MoLength
            //            //     select rap).FirstOrDefault();

            //            //bool hasMain = (mitem != null);

            //            //if(hasMain)
            //            //{
            //            //    ReportDataProvinceItem mi = groupItems.Find(p => (p.ChannelName == oItem.ChannelName && p.SPCode == oItem.SPCode && oItem.Mo.Contains(p.Mo) && p.Province == oItem.Province));

            //            //    if(mi!=null)
            //            //    {
            //            //        mi.RecordCount = oItem.RecordCount + mi.RecordCount;
            //            //    }
            //            //    else
            //            //    {
            //                    var maitem = oItem.Copy();
            //                    maitem.CodeName = oItem.CodeName;
            //                    maitem.Mo = oItem.Mo;
            //                    maitem.MoLength = oItem.MoLength;
            //                    maitem.Province = oItem.Province;
            //                    //if (string.IsNullOrEmpty(maitem.Province.Trim()))
            //                    //    throw new Exception("11111");

            //                    groupItems.Add(maitem);
            //            //    }

            //            //    continue;
            //            //}
            //        }

            //        var addItem = oItem.Copy();

            //        if (string.IsNullOrEmpty(addItem.Province.Trim()))
            //            throw new Exception("11111");

            //        groupItems.Add(addItem);
            //        //if (oItem.MoType == "2")
            //        //{
            //        //    DataRow dr = FindMainItemInDataTable(dt, oItem);

            //        //    if(dr!=null)
            //        //    {
            //        //        dr.BeginEdit();
            //        //        dr["RecordCount"] = oItem.RecordCount + (int)dr["RecordCount"];
            //        //        dr.EndEdit();
            //        //        dt.AcceptChanges();
            //        //    }
            //        //    else
            //        //    {
            //        //        AddNewProvinceReportRow(dt, oItem.ChannelName, oItem.CodeName, oItem.Province, oItem.RecordCount);
            //        //    }
            //        //}
            //        //else
            //        //{
            //        //    AddNewProvinceReportRow(dt, oItem.ChannelName, oItem.CodeName, oItem.Province, oItem.RecordCount);
            //        //}
            //    }

            //}

            foreach (ReportDataProvinceItem groupItem in reportDataProvinceItems)
            {
                AddNewProvinceReportRow(dt, groupItem.ChannelName, groupItem.CodeName, groupItem.Province,
                                        groupItem.RecordCount);
            }

            return(dt);
        }