Example #1
0
        /// <summary>
        /// Processes a complete OFX request against the given authorization
        /// </summary>
        /// <param name="message">External OFX request</param>
        /// <returns>Raw OFX Payload</returns>
        public async Task <string> ProcessOfxMessage(AbstractTopLevelMessageSet message)
        {
            var request  = PrepareOfxRequest(AuthRequest(), message);
            var response = await _utils.PostRequest(_opts.ApiUrl, request);

            return(response);
        }
Example #2
0
        /// <summary>
        /// Wrap and send OFX request message sets to the service and return the response data.
        /// 
        /// This is an asycronous call.
        /// </summary>
        /// <param name="messageSets">Array of populated OFX message requests</param>
        /// <returns>The returned task includes a populated OFX response object on successfull call</returns>
        public async Task<Protocol.OFX> sendRequestAsync(AbstractTopLevelMessageSet[] messageSets)
        {
            // Create a HttpContent object wrapping the message sets
            var request = StreamContent.Create(messageSets);

            // Send and await results
            return await sendRequestAsync(request).ConfigureAwait(false);
        }
Example #3
0
        /// <summary>
        /// Construct an StreamContent from a provided array of AbstractTopLevelMessageSet.
        /// Since all OFX messages are an OFX wrapper around an 1 or more AbstractTopLevelMessageSet entities, this 
        ///   convenience function saves the caller having to construct a wrapper OFX object on each call.
        /// 
        /// Note that the AbstractTopLevelMessageSet order must obey the rules for the OFX protocol. See OFX specification v2.1.1 for details.
        /// </summary>
        /// <param name="messageSets">1 or more populated AbstractTopLevelMessageSet objects representing OFX requests or responses.</param>
        /// <returns>Created StreamContent ready to send with HttpClient.Post</returns>
        public static StreamContent Create(AbstractTopLevelMessageSet[] messageSets)
        {
            // Wrap message sets in OFX object
            Protocol.OFX ofx = new Protocol.OFX();
            ofx.Items = messageSets;

            // Call through to OFX class-based factory method
            return Create(ofx);
        }
Example #4
0
        internal string PrepareOfxRequest(IRequestBuilder authBuilder, AbstractTopLevelMessageSet messageSet)
        {
            var authMessage = authBuilder.Build();
            var ofxRequest  = new OFX {
                Items = new[] { authMessage, messageSet }
            };
            var content = _serializer.Serialize(ofxRequest);

            return(content);
        }