Ejemplo n.º 1
0
        public List <JsonObjectHelper> LoadTransactions(EntranceTableData data)
        {
            string command = string.Empty;

            #region # sql command #

            command = " ( " +
                      " SELECT COUNT(*) FROM MobilePaywall.core.[Transaction] AS t  " +
                      " LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON t.PaymentID=p.PaymentID " +
                      " LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON p.PaymentRequestID=pr.PaymentRequestID " +
                      " LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON pr.UserSessionID=us.UserSessionID " +
                      " LEFT OUTER JOIN MobilePaywall.core.Service AS s ON us.ServiceID=s.ServiceID " +
                      " WHERE " +
                      " ( '" + data.Country + "' = '' OR s.Description LIKE UPPER('" + data.Country + "') + '%' ) AND  " +
                      " ( '" + data.Service + "' = '' OR s.Name LIKE '%' + LOWER('" + data.Service + "') + '%' ) AND " +
                      " ( " + data.MobileOperator + " = -1 OR us.MobileOperatorID = " + data.MobileOperator + " ) AND  " +
                      " ( " + data.UseOLReference + " = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) AND " +
                      " ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) AND " +
                      " t.Created >= '" + data.From + "' AND t.Created <= '" + data.To + "' AND " +
                      //" (SELECT COUNT(*) FROM MobilePaywall.core.[Transaction] WHERE PaymentID=p.PaymentID AND TransactionStatusID=5) = 1  " +
                      " p.Created > '" + data.From + "' " +
                      " ) UNION ALL ( " +
                      " SELECT COUNT(*) FROM MobilePaywall.core.[Transaction] AS t  " +
                      " LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON t.PaymentID=p.PaymentID " +
                      " LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON p.PaymentRequestID=pr.PaymentRequestID " +
                      " LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON pr.UserSessionID=us.UserSessionID " +
                      " LEFT OUTER JOIN MobilePaywall.core.Service AS s ON us.ServiceID=s.ServiceID " +
                      " WHERE " +
                      " ( '" + data.Country + "' = '' OR s.Description LIKE UPPER('" + data.Country + "') + '%' ) AND  " +
                      " ( '" + data.Service + "' = '' OR s.Name LIKE '%' + LOWER('" + data.Service + "') + '%' ) AND " +
                      " ( " + data.MobileOperator + " = -1 OR us.MobileOperatorID = " + data.MobileOperator + " ) AND  " +
                      " ( " + data.UseOLReference + " = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) AND " +
                      " ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) AND " +
                      " t.Created >= '" + data.From + "' AND t.Created <= '" + data.To + "' AND " +
                      //" (SELECT COUNT(*) FROM MobilePaywall.core.[Transaction] WHERE PaymentID=p.PaymentID AND TransactionStatusID=5) > 1  " +
                      " p.Created < '" + data.From + "' " +
                      ")";

            #endregion

            DataTable table = this.Load(command);
            List <JsonObjectHelper> result = new List <JsonObjectHelper>();
            result.Add(new JsonObjectHelper("transactions", table.Rows[0][0].ToString(), "tran"));
            result.Add(new JsonObjectHelper("subsequents", table.Rows[1][0].ToString(), "sub"));

            return(result);
        }
Ejemplo n.º 2
0
        public List <JsonObjectHelper> LoadUserSessions(EntranceTableData data)
        {
            string command = string.Empty;

            #region # command #
            command = "( SELECT COUNT(*) FROM MobilePaywall.core.UserSession AS us " +
                      " LEFT OUTER JOIN MobilePaywall.core.Service AS s ON us.ServiceID=s.ServiceID " +
                      " WHERE " +
                      " ( '" + data.Country + "' = '' OR s.Description LIKE UPPER('" + data.Country + "') + '%' ) AND  " +
                      " ( '" + data.Service + "' = '' OR s.Name LIKE '%' + LOWER('" + data.Service + "') + '%' ) AND " +
                      " ( " + data.MobileOperator + " = -1 OR us.MobileOperatorID = " + data.MobileOperator + " ) AND  " +
                      " ( " + data.UseOLReference + " = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) AND " +
                      " ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) AND " +
                      " us.Created >= '" + data.From + "' AND us.Created <= '" + data.To + "' ) " +
                      " UNION ALL " +
                      "( SELECT COUNT(*) FROM MobilePaywall.core.UserSession AS us " +
                      " LEFT OUTER JOIN MobilePaywall.core.Service AS s ON us.ServiceID=s.ServiceID " +
                      " WHERE " +
                      " ( '" + data.Country + "' = '' OR s.Description LIKE UPPER('" + data.Country + "') + '%' ) AND  " +
                      " ( '" + data.Service + "' = '' OR s.Name LIKE '%' + LOWER('" + data.Service + "') + '%' ) AND " +
                      " ( " + data.MobileOperator + " = -1 OR us.MobileOperatorID = " + data.MobileOperator + " ) AND  " +
                      " ( " + data.UseOLReference + " = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) AND " +
                      " ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) AND " +
                      " us.Created >= '" + data.From + "' AND us.Created <= '" + data.To + "' AND us.CustomerID IS NOT NULL ) ";
            #endregion

            DataTable table = this.Load(command);
            if (data == null)
            {
                return(new List <JsonObjectHelper>());
            }

            List <JsonObjectHelper> result = new List <JsonObjectHelper>();
            result.Add(new JsonObjectHelper("sessions", table.Rows[0][0].ToString()));
            result.Add(new JsonObjectHelper("identified", table.Rows[1][0].ToString()));

            return(result);
        }
Ejemplo n.º 3
0
        public List <JsonObjectHelper> LoadPayments(EntranceTableData data)
        {
            string command = string.Empty;

            #region # sql command #

            command = " SELECT p.PaymentStatusID, COUNT(*) FROM MobilePaywall.core.Payment AS p  " +
                      " LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON p.PaymentRequestID=pr.PaymentRequestID " +
                      " LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON pr.UserSessionID=us.UserSessionID " +
                      " LEFT OUTER JOIN MobilePaywall.core.Service AS s ON us.ServiceID=s.ServiceID " +
                      " WHERE " +
                      " ( '" + data.Country + "' = '' OR s.Description LIKE UPPER('" + data.Country + "') + '%' ) AND  " +
                      " ( '" + data.Service + "' = '' OR s.Name LIKE '%' + LOWER('" + data.Service + "') + '%' ) AND " +
                      " ( " + data.MobileOperator + " = -1 OR us.MobileOperatorID = " + data.MobileOperator + " ) AND  " +
                      " ( " + data.UseOLReference + " = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) AND " +
                      " ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) AND " +
                      " us.Created >= '" + data.From + "' AND us.Created <= '" + data.To + "' AND us.CustomerID IS NOT NULL  " +
                      " GROUP BY p.PaymentStatusID ";
            #endregion

            DataTable dataTable = this.Load(command);
            if (dataTable == null)
            {
                return(new List <JsonObjectHelper>());
            }

            List <JsonObjectHelper> result = new List <JsonObjectHelper>();
            result.Add(new JsonObjectHelper("Initialized", 0, "1")); // index 0, row 1
            result.Add(new JsonObjectHelper("Pending", 0, "2"));     // index 1, row 2
            result.Add(new JsonObjectHelper("Successful", 0, "3"));  // index 2, row 3
            result.Add(new JsonObjectHelper("Failed", 0, "4"));      // index 3, row 4
            result.Add(new JsonObjectHelper("Cancelled", 0, "5"));   // index 4, row 5

            foreach (DataRow row in dataTable.Rows)
            {
                foreach (JsonObjectHelper joh in result)
                {
                    if (joh.Reference.Equals(row[0].ToString()))
                    {
                        joh.Value = row[1].ToString();
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
        // SUMMARY: QuickReport all in one load
        public List <DataRow> LoadQuickReports(EntranceTableData data)
        {
            string command = "";

            #region # sql command #
            command = " " +
                      " DECLARE @result TABLE " +
                      " ( " +
                      " ID INT,  " +
                      " UserSession INT, " +
                      " Identification INT, " +
                      " PaymentReqeustALL INT, " +
                      " PaymentRequestCOMPLETE INT, " +
                      " PaymentRequestEXISTS INT, " +
                      " PaymentRequestFAILED INT, " +
                      " PaymentALL INT, " +
                      " PaymentSUCCESS INT, " +
                      " PaymentFAILED INT, " +
                      " PaymentPENDING INT, " +
                      " PaymentCANCEL INT, " +
                      " TransactionNEW INT, " +
                      " TransactionSUBSEQUENTS INT " +
                      " ) " +
                      " INSERT INTO @result (ID) VALUES (1); " +
                      " " +
                      // " --	Getting user sessions " +
                      " DECLARE @us TABLE ( UserSessionID INT,  CustomerID INT ); " +
                      " INSERT INTO @us  " +
                      " SELECT UserSessionID, CustomerID FROM MobilePaywall.core.UserSession AS us " +
                      " LEFT OUTER JOIN MobilePaywall.core.Service AS s ON us.ServiceID=s.ServiceID " +
                      " WHERE " +
                      " ( '" + data.Country + "' = '' OR s.Description LIKE UPPER('" + data.Country + "') + '%' ) AND  " +
                      " ( '" + data.Service + "' = '' OR s.Name LIKE '%' + LOWER('" + data.Service + "') + '%' ) AND " +
                      " ( " + data.MobileOperator + " = -1 OR us.MobileOperatorID = " + data.MobileOperator + " ) AND  " +
                      " ( " + data.UseOLReference + " = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) AND " +
                      " ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) AND " +
                      " us.Created >= '" + data.From + "' AND us.Created <= '" + data.To + "'; " +
                      " UPDATE @result SET UserSession = ( SELECT COUNT(*) FROM @us ) " +
                      " UPDATE @result SET Identification = ( SELECT COUNT(*) FROM @us WHERE CustomerID IS NOT NULL); " +
                      " " +
                      //" --Getting Payment reqeusts " +
                      " DECLARE @pr AS TABLE  ( PaymentRequestID INT, StatusID INT )  " +
                      " INSERT INTO @pr " +
                      " SELECT pr.PaymentRequestID, pr.PaymentRequestStatusID FROM MobilePaywall.core.PaymentRequest AS pr, @us AS us " +
                      " WHERE pr.UserSessionID=us.UserSessionID " +
                      " " +
                      " UPDATE @result SET PaymentReqeustALL = (SELECT COUNT(*) FROM @pr ) WHERE ID=1 " +
                      " UPDATE @result SET PaymentRequestCOMPLETE = (SELECT COUNT(*) FROM @pr WHERE StatusID=3 ) WHERE ID=1  " +
                      " UPDATE @result SET PaymentRequestEXISTS = (SELECT COUNT(*) FROM @pr WHERE StatusID=5 ) WHERE ID=1  " +
                      " UPDATE @result SET PaymentRequestFAILED = (SELECT COUNT(*) FROM @pr WHERE StatusID=4 ) WHERE ID=1  " +
                      " " +
                      //" --	Getting payments " +
                      " DECLARE @p AS Table ( PaymentID INT, StatusID INT ); " +
                      " INSERT INTO @p " +
                      " SELECT PaymentID, PaymentStatusID FROM MobilePaywall.core.Payment AS p, @pr AS pr " +
                      " WHERE p.PaymentRequestID=pr.PaymentRequestID; " +
                      " " +
                      " UPDATE @result SET PaymentALL = (SELECT COUNT(*) FROM @p )  WHERE ID=1 " +
                      " UPDATE @result SET PaymentSUCCESS = (SELECT COUNT(*) FROM @p WHERE StatusID=3 ) WHERE ID=1  " +
                      " UPDATE @result SET PaymentFAILED = (SELECT COUNT(*) FROM @p WHERE StatusID=4) WHERE ID=1  " +
                      " UPDATE @result SET PaymentCANCEL = (SELECT COUNT(*) FROM @pr WHERE StatusID=5 ) WHERE ID=1  " +
                      " UPDATE @result SET PaymentPENDING = (SELECT COUNT(*) FROM @p WHERE StatusID=2 ) WHERE ID=1  " +
                      " " +
                      //" --	Getting Transactions " +
                      " UPDATE @result SET TransactionNEW = ( " +
                      " SELECT COUNT(*) FROM MobilePaywall.core.[Transaction] AS t, @p AS p " +
                      " WHERE t.PaymentID=p.PaymentID " +
                      " ); " +
                      " " +
                      " SELECT * FROM @result; ";
            #endregion

            DataTable      table = this.Load(command);
            List <DataRow> rows  = new List <DataRow>();
            foreach (DataRow row in table.Rows)
            {
                rows.Add(row);
            }
            return(rows);
        }
        public List <EntranceTable> Query(EntranceTableData data)
        {
            string command = "";

            #region # sql command #

            #region # set Date reference for loading. Load by user session date or transaction date (with specific user session date ) #

            string timeLoad = string.Empty;
            if (data.UserSessionReference.Equals("false"))
            {
                timeLoad = "	AND t.Created > '"+ data.From + "' AND t.Created < '" + data.To + "' AND p.Created <= DATEADD(day, -1, CONVERT(DATE, '" + data.From + "') ) ";
                if (data.TransactionUseUserSessionDate)
                {
                    timeLoad += string.Format(" AND us.Created >= '{0}' AND us.Created <= '{1}' ", data.TransactionUserSessionDateFrom, data.TransactionUserSessionDateTo);
                }
            }
            else
            {
                timeLoad = ((int)data.TransactionSearchType == 1 ? "AND t.Created > '" + data.From + "' AND t.Created < '" + data.To + "'" : "") + " AND us.Created > '" + data.From + "' AND us.Created < '" + data.To + "'  ";
            }

            #endregion

            command = " SELECT " + Environment.NewLine
                      + data.Top + Environment.NewLine
                      + " us.UserSessionID, " + Environment.NewLine
                      + " country.TwoLetterIsoCode, " + Environment.NewLine
                      + " country.GlobalName, " + Environment.NewLine
                      + " us.UserSessionGuid AS 'SGID'," + Environment.NewLine
                      + " us.Created AS 'SCreated'," + Environment.NewLine
                      + " us.EntranceUrl AS 'EntranceUrl', " + Environment.NewLine
                      + " service.Name AS 'ServiceName'," + Environment.NewLine
                      + " mo.Name AS 'Operator'," + Environment.NewLine
                      + " ls.IdentificationSessionGuid, " + Environment.NewLine
                      + " us.IPAddress AS 'IP'," + Environment.NewLine
                      + " c.Msisdn," + Environment.NewLine
                      + " pr.PaymentRequestID, " + Environment.NewLine
                      + " prStatus.Name, " + Environment.NewLine
                      + " pr.ExternalPaymentRequestGuid," + Environment.NewLine
                      + " pr.PaymentRedirectUrl," + Environment.NewLine
                      + " p.ExternalPaymentGuid," + Environment.NewLine
                      + " paymentStatus.Name AS 'PStatus'," + Environment.NewLine
                      + " p.Created AS 'PCreated'," + Environment.NewLine
                      + " pcapm.PaymentContentAccessPolicyMapID, " + Environment.NewLine
                      + " t.TransactionID AS 'TID'," + Environment.NewLine
                      + " t.Created AS 'TCreated'" + Environment.NewLine
                      + " FROM MobilePaywall.core.UserSession AS us " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.Country AS country ON us.CountryID = country.CountryID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.Service AS service ON us.ServiceID = service.ServiceID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.Customer AS c ON us.CustomerID=c.CustomerID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.MobileOperator AS mo ON c.MobileOperatorID=mo.MobileOperatorID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.LookupSession AS ls ON us.UserSessionID=ls.UserSessionID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.LookupSessionResult AS lsr ON ls.LookupSessionID=lsr.LookupSessionID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON us.UserSessionID=pr.UserSessionID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.PaymentRequestStatus AS prStatus ON pr.PaymentRequestStatusID=prStatus.PaymentRequestStatusID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON p.PaymentRequestID=pr.PaymentRequestID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.PaymentStatus AS paymentStatus ON p.PaymentStatusID = paymentStatus.PaymentStatusID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.PaymentContentAccessPolicyMap AS pcapm ON pcapm.PaymentID=p.PaymentID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.[Transaction] AS t ON pcapm.TransactionID=t.TransactionID  " + Environment.NewLine
                      + " WHERE " + Environment.NewLine
                      + " ( '" + data.Country + "' = '' " + DataObjectBase.PrepareList("service.Description LIKE UPPER('{0}') + '%' ", "service.Description NOT LIKE UPPER('{0}') + '%' ", data.Countries) + " )" + Environment.NewLine
                      + " AND ( '" + data.Service + "' = '' " + DataObjectBase.PrepareList("service.Name LIKE '%{0}%'", "service.Name NOT LIKE '%{0}%'", data.Services) + " ) " + Environment.NewLine
                      + " AND ( '" + data.MobileOperator + "' = -1 OR " + DataObjectBase.PrepareData("mo.MobileOperatorID", data.MobileOperator) + " )" + Environment.NewLine
                      + " AND ( '" + (int)data.PaymentRequestSearchType + "' = -1 OR ( '" + (int)data.PaymentRequestSearchType + "' = 0 AND pr.PaymentRequestID IS NULL ) OR ( '" + (int)data.PaymentRequestSearchType + "' = 1 AND pr.PaymentRequestID IS NOT NULL ) )" + Environment.NewLine
                      + " AND ( '" + (int)data.PaymentSearchType + "' = -1 OR ( '" + (int)data.PaymentSearchType + "' = 0 AND p.PaymentID IS NULL ) OR ( '" + (int)data.PaymentSearchType + "' = 1 AND p.PaymentID IS NOT NULL ) )" + Environment.NewLine
                      + " AND ( '" + (int)data.TransactionSearchType + "' = -1 OR ( '" + (int)data.TransactionSearchType + "' = 0 AND t.TransactionID IS NULL ) OR ( '" + (int)data.TransactionSearchType + "' = 1 AND t.TransactionID IS NOT NULL ) ) " + Environment.NewLine
                      + " AND ( '" + data.UseOLReference + "' = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) " + Environment.NewLine
                      + " AND ( '" + data.Msisdn + "' = '' " + DataObjectBase.PrepareList("c.Msisdn='{0}'", data.Msisdns) + " " + DataObjectBase.PrepareList("c.EncryptedMsisdn = '{0}'", data.Msisdns) + " ) " + Environment.NewLine
                      + " AND ( '" + data.Pxid + "' = '' " + DataObjectBase.PrepareList("us.EntranceUrl LIKE '%pxid={0}%'", data.Pxids) + " ) " + Environment.NewLine
                      + " AND ( '" + data.IP + "' = '' " + DataObjectBase.PrepareList("us.IPAddress='{0}'", data.IPS) + " ) " + Environment.NewLine
                      //+ " AND ( '" + data.ReferrerContains + "'='' " + DataObjectBase.PrepareList("us.Referrer LIKE '%{0}%'", data.ReferrerContainsList) + " ) "  + Environment.NewLine
                      + " AND ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) " + Environment.NewLine
                      + " AND ( '" + data.PaymentStatus + "' = -1 OR ( p.PaymentStatusID = '" + data.PaymentStatus + "' ) ) " + Environment.NewLine
                      + timeLoad + Environment.NewLine
                      + " ORDER BY us.UserSessionID DESC";
            this._lastCommand = command;

            #endregion

            this._result = new List <EntranceTable>();
            this._database.SetTimeout(0);
            DataTable table = this._database.Load(command);
            if (table == null)
            {
                return(this._result);
            }
            ;

            foreach (DataRow row in table.Rows)
            {
                EntranceTable tableRow = new EntranceTable(row);
                this._result.Add(tableRow);
            }

            return(this._result);
        }
        public List <EntranceTableAndroid> QueryNewAndroid(EntranceTableData data)
        {
            string command = "";

            #region # sql command #

            #region # SPECIAL CASES #

            // referer if needed
            string _REFERER_JOIN  = string.IsNullOrEmpty(data.ReferrerContains) ? "" : " LEFT OUTER JOIN MobilePaywall.core.UserSession AS us ON us.UserSessionID=cache.UserSessionID ";
            string _REFERER_WHERE = string.IsNullOrEmpty(data.ReferrerContains) ? "" : " AND ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) ";

            #endregion

            command = " SELECT  " + Environment.NewLine
                      + data.Top + Environment.NewLine
                      + " cache.UserSessionID, " + Environment.NewLine
                      + " cache.ServiceName, " + Environment.NewLine
                      + " cache.CountryCode, " + Environment.NewLine
                      + " cache.MobileOperatorName, " + Environment.NewLine
                      + " cache.IdentificationSessionGuid, " + Environment.NewLine
                      + " cache.PaymentRequestID, " + Environment.NewLine
                      + " p.PaymentStatusID, " + Environment.NewLine
                      + " cache.TransactionID, " + Environment.NewLine
                      + " cache.SessionCreated " + Environment.NewLine
                      + " FROM MobilePaywall.core.OLCache AS cache " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.PaymentRequest AS pr ON cache.PaymentRequestID=pr.PaymentRequestID " + Environment.NewLine
                      + " LEFT OUTER JOIN MobilePaywall.core.Payment AS p ON cache.PaymentID=p.PaymentID " + Environment.NewLine
                      + _REFERER_JOIN + Environment.NewLine
                      + " WHERE " + Environment.NewLine
                      + " ( '" + data.Country + "' = '' " + DataObjectBase.PrepareList("cache.ServiceCountry = '{0}' ", "cache.ServiceCountry != '{0}' ", data.Countries) + " )" + Environment.NewLine
                      + " AND ( '" + data.Service + "' = '' " + DataObjectBase.PrepareList("cache.ServiceName LIKE '%{0}%'", "cache.ServiceName NOT LIKE '%{0}%'", data.Services) + " ) " + Environment.NewLine
                      + " AND ( '" + data.MobileOperator + "' = -1 OR " + DataObjectBase.PrepareData("cache.MobileOperatorID", data.MobileOperator) + " )" + Environment.NewLine
                      + " AND ( '" + (int)data.PaymentRequestSearchType + "' = -1 OR ( '" + (int)data.PaymentRequestSearchType + "' = 0 AND cache.PaymentRequestID IS NULL ) OR ( '" + (int)data.PaymentRequestSearchType + "' = 1 AND cache.PaymentRequestID IS NOT NULL ) )" + Environment.NewLine
                      + " AND ( '" + (int)data.PaymentSearchType + "' = -1 OR ( '" + (int)data.PaymentSearchType + "' = 0 AND cache.PaymentID IS NULL ) OR ( '" + (int)data.PaymentSearchType + "' = 1 AND cache.PaymentID IS NOT NULL ) )" + Environment.NewLine
                      + " AND ( '" + (int)data.TransactionSearchType + "' = -1 OR ( '" + (int)data.TransactionSearchType + "' = 0 AND cache.TransactionID IS NULL ) OR ( '" + (int)data.TransactionSearchType + "' = 1 AND cache.TransactionID IS NOT NULL ) ) " + Environment.NewLine
                      //+ " AND ( '" + data.UseOLReference + "' = 0 OR us.Referrer LIKE '" + data.OLRefferer + "' + '%' ) " + Environment.NewLine
                      + " AND ( '" + data.Msisdn + "' = '' " + DataObjectBase.PrepareList("cache.Msisdn='{0}'", data.Msisdns) + " ) " + Environment.NewLine
                      + " AND ( '" + data.Pxid + "' = '' " + DataObjectBase.PrepareList("cache.Pxid LIKE '{0}'", data.Pxids) + " ) " + Environment.NewLine
                      + " AND ( '" + data.IP + "' = '' " + DataObjectBase.PrepareList("cache.IPAddress='{0}'", data.IPS) + " ) " + Environment.NewLine
                      //+ " AND ( '" + data.ReferrerContains + "'='' " + DataObjectBase.PrepareList("us.Referrer LIKE '%{0}%'", data.ReferrerContainsList) + " ) "  + Environment.NewLine
                      //+ " AND ( '" + data.ReferrerContains + "'='' " + data.PrepareReffererParts() + " ) " + Environment.NewLine
                      + " AND ( '" + data.PaymentStatus + "' = -1 OR ( p.PaymentStatusID = '" + data.PaymentStatus + "' ) ) " + Environment.NewLine
                      + " AND " + (data.TransactionUseUserSessionDate ? " cache.IsSubseguent=1 " : " cache.IsSubseguent=0 ") + Environment.NewLine
                      + _REFERER_WHERE + Environment.NewLine
                      + " AND cache.SessionCreated >= '" + data.From + "' AND cache.SessionCreated <= '" + data.To + "' " + Environment.NewLine
                      + " ORDER BY cache.OLCacheID DESC";

            #endregion

            this._lastCommand = command;

            List <EntranceTableAndroid> result = new List <EntranceTableAndroid>();
            this._database.SetTimeout(0);
            DataTable table = this._database.Load(command);
            if (table == null)
            {
                return(result);
            }

            foreach (DataRow row in table.Rows)
            {
                EntranceTableAndroid tableRow = new EntranceTableAndroid(row);
                result.Add(tableRow);
            }

            return(result);
        }