public virtual void ImportStatement(PX.SM.FileInfo aFileInfo, bool doRedirect)
        {
            bool             isFormatRecognized = false;
            IStatementReader reader             = this.CreateReader();

            if (reader != null && reader.IsValidInput(aFileInfo.BinData))
            {
                reader.Read(aFileInfo.BinData);
                List <CABankTranHeader> imported;
                reader.ExportToNew(aFileInfo, this, out imported);
                if (imported != null && doRedirect)
                {
                    CABankTranHeader last = (imported != null && imported.Count > 0) ? imported[imported.Count - 1] : null;
                    if (this.Header.Current == null || (last != null &&
                                                        (this.Header.Current.CashAccountID != last.CashAccountID || this.Header.Current.RefNbr != last.RefNbr)))
                    {
                        this.Header.Current = this.Header.Search <CABankTranHeader.cashAccountID, CABankTranHeader.refNbr>(last.CashAccountID, last.RefNbr);
                        throw new PXRedirectRequiredException(this, "Navigate to the uploaded record");
                    }
                }
                isFormatRecognized = true;
            }
            if (!isFormatRecognized)
            {
                throw new PXException(Messages.UploadFileHasUnrecognizedBankStatementFormat);
            }
        }