public BackOfficeCompany(DataRow rowFromALTable)
        {
            this.Code              = rowFromALTable.Field <int>("AxCompanyCode");
            this.Company           = rowFromALTable.Field <string>("AxCompanyName").ToUpper();
            this.ConfigurationName = rowFromALTable.Field <string>("ConfigurationName");
            this.PermissionGroup   = rowFromALTable.Field <int>("PermissionGroup");
            this.IsLive            = rowFromALTable.Field <bool>("LiveInAx");
            this.CustomerInMore    = rowFromALTable.Field <string>("CustomerInMore");
            object date = rowFromALTable["LiveDate"];

            this.ServerType = (EServerType)rowFromALTable.Field <int>("ServerType");
            switch (this.ServerType)
            {
            case EServerType.STANDARD:
                this.BackOfficeType = EBackOfficeType.AX;
                break;

            case EServerType.INDIAN:
                this.BackOfficeType = EBackOfficeType.AX;
                break;

            case EServerType.TURKEY:
                this.BackOfficeType = EBackOfficeType.AX;
                break;

            case EServerType.DPC:
                this.BackOfficeType = EBackOfficeType.DPC;
                break;

            default:
                throw new Exception("What the hell?");
            }
            this.LiveDate = (date == System.DBNull.Value ?
                             new DateTime(1970, 1, 1) :
                             rowFromALTable.Field <DateTime>("LiveDate"));
        }
        public CreditCard RetrievePaidByUsSingleCreditCardByRecId(long recId, string dataAreaID, EBackOfficeType backOffice)
        {
            List <SqlParameter> SqlParameters = new List <SqlParameter>();

            SqlParameters.Add(new SqlParameter("dataAreaID", dataAreaID));

            string AxDBStatement = ";WITH cte AS(                                                                                                ";

            AxDBStatement += "  SELECT *,ROW_NUMBER() OVER (PARTITION BY CREDITCARDNO ORDER BY RECID asc) AS rn                                  ";
            AxDBStatement += "  FROM                                                                                                             ";
            AxDBStatement += "  (select EXPIRYDATE, CREDITCARDNO, CVV, RECID, COMPANYID, AMS_BANKNUMBER ,EMPLID, DATAAREAID, AMS_EmpGovernmentId, status ";
            AxDBStatement += "  from [ELI_AMSALEMCREDITCARD]                                                                                     ";
            AxDBStatement += "  where DATAAREAID = @AxCompany                                                                                    ";
            AxDBStatement += "  and RECID = @RECID) ";
            AxDBStatement += "  d) ";
            AxDBStatement += "  select * FROM cte where rn=1        ";

            List <SqlParameter> AxDBSqlParameters = new List <SqlParameter>();

            AxDBSqlParameters.Add(new SqlParameter("RECID", recId));

            var        AxDBresults = DataBaseAccess.PerformQueryToCompany(false, AxDBStatement, AxDBSqlParameters, dataAreaID);
            CreditCard toReturn    = null;

            if (AxDBresults != null && AxDBresults.Rows.Count > 0)
            {
                toReturn = this.ParseSinglePaidByUsCard(AxDBresults.Rows[0]);
            }
            return(toReturn);
        }
        public List <CreditCard> RetrievePaidByUsCreditCardsByManagerClockId(int AgentClockId, bool filterd, string dataAreaID, EBackOfficeType backOffice, bool withVAN = false)
        {
            string listManagerBanks = "25,26"; //an example - mockup
            string AxDBStatement    = ";WITH cte AS(                                                                                    ";

            AxDBStatement += "  SELECT *,ROW_NUMBER() OVER (PARTITION BY CREDITCARDNO ORDER BY RECID asc) AS rn                      ";
            AxDBStatement += "  FROM                                                                                                 ";
            AxDBStatement += "  (select EXPIRYDATE, CREDITCARDNO, CVV, RECID, COMPANYID, AMS_BANKNUMBER ,EMPLID, DATAAREAID, AMS_EmpGovernmentId,status         ";
            AxDBStatement += "  from [ELI_AMSALEMCREDITCARD]                                                                         ";
            AxDBStatement += "  where DATAAREAID = @AxCompany  and status=1                                                                              ";
            if (!string.IsNullOrEmpty(listManagerBanks))
            {
                AxDBStatement += "   and AMS_BANKNUMBER in ('25','26')           ";
            }
            AxDBStatement += "   ) d)                                                                                                ";
            AxDBStatement += "	 SELECT * from cte                                                                                   ";
            AxDBStatement += "	 where rn=1                                                                                          ";

            List <SqlParameter> AxDBSqlParameters = new List <SqlParameter>();

            AxDBSqlParameters.Add(new SqlParameter("listManagerBanks", listManagerBanks));

            var AxDBresults = DataBaseAccess.PerformQueryToCompany((dataAreaID == "%"), AxDBStatement, AxDBSqlParameters, dataAreaID);
            var toReturn    = new List <CreditCard>();

            if (AxDBresults != null)
            {
                foreach (DataRow row in AxDBresults.Rows)
                {
                    var toAdd = ParseSinglePaidByUsCard(row);
                    toReturn.Add(toAdd);
                }
                ;
            }

            return(toReturn);
        }