Exemplo n.º 1
0
        public void Capture( OnlineCaptureInfo info )
        {
            try
            {
                // Ensure permission to write to the archive directory.
                FileIOPermission p = new FileIOPermission( FileIOPermissionAccess.Write,
                    new FileInfo( info.ArchiveDir ).FullName );
                p.Demand();

                logger = info.Logger;

                string html = CaptureText( info.AccountName, info.Credentials );

                // Write HTML results to file

                string filename = Path.Combine( info.ArchiveDir, info.BaseName + ".htm" );
                info.CapturedFiles.Add( Path.GetFileName( filename ) );

                File.WriteAllText( filename, html );
            }
            catch( SecurityException ex )
            {
                throw new OnlineReaderException( "Security violation: " + ex.Message, ex );
            }
        }
Exemplo n.º 2
0
        public IEnumerable<OnlineTransaction> Parse( OnlineCaptureInfo info )
        {
            try
            {
                // Ensure permission to read from the archive directory.
                FileIOPermission p = new FileIOPermission( FileIOPermissionAccess.Read,
                    new FileInfo( info.ArchiveDir ).FullName );
                p.Demand();

                string html = File.ReadAllText( Path.Combine( info.ArchiveDir, info.CapturedFiles[0] ) );

                return ParseText( info.AccountName, html );
            }
            catch( SecurityException ex )
            {
                throw new OnlineReaderException( "Security violation: " + ex.Message, ex );
            }
        }
Exemplo n.º 3
0
        public static OnlineCaptureInfo Deserialize( XmlReader xmlReader )
        {
            if( xmlReader.NodeType != XmlNodeType.Element || xmlReader.Name != "OnlineCaptureInfo" )
                throw new ApplicationException( "Needs an OnlineCaptureInfo node to deserialize the object." );

            OnlineCaptureInfo info = new OnlineCaptureInfo();

            while( xmlReader.Read() )
            {
                switch( xmlReader.NodeType )
                {
                    case XmlNodeType.Element:
                        switch( xmlReader.Name )
                        {
                            case "BaseName":
                                info.BaseName = xmlReader.ReadString();
                                break;
                            case "AccountName":
                                info.AccountName = xmlReader.ReadString();
                                break;
                            case "Date":
                                info.Date = DateTime.Parse( xmlReader.ReadString() );
                                break;
                            case "CurrentBalance" :
                                info.CurrentBalance = Decimal.Parse( xmlReader.ReadString() );
                                break;
                            case "AvailableBalance":
                                info.AvailableBalance = Decimal.Parse( xmlReader.ReadString() );
                                break;
                            case "MinimumBalance":
                                info.MinimumBalance = Decimal.Parse( xmlReader.ReadString() );
                                break;
                            case "MaximumBalance":
                                info.MaximumBalance = Decimal.Parse( xmlReader.ReadString() );
                                break;
                            case "Filename":
                                info.CapturedFiles.Add( xmlReader.ReadString() );
                                break;
                            default:
                                break;
                        }
                        break;
                    case XmlNodeType.EndElement:
                        if( xmlReader.Name == "OnlineCaptureInfo" ) return info;
                        break;
                }
            }

            return info;
        }