Ejemplo n.º 1
0
        public void AccountListRequestTest()
        {
            var response  = EmbeddedResourceReader.ReadRequestAsString("accountList.sgml");
            var ofx       = _serializer.Deserialize(response);
            var serizlied = _serializer.Serialize(ofx);

            Assert.Equal(response, serizlied);
        }
Ejemplo n.º 2
0
        async Task <TResponseMessage> ExecuteRequest <TRequestMessage, TResponseMessage>(TRequestMessage accountListRequest)
            where TRequestMessage : AbstractRequestMessageSet
            where TResponseMessage : AbstractResponseMessageSet
        {
            var request = CreatedRequest();

            request.Add(accountListRequest);

            var ofxRequest = new OFX()
            {
                Items = request.ToArray()
            };
            var requestBody = _serializer.Serialize(ofxRequest);

            if (requestBody == null)
            {
                throw new OfxSerializationException("Request serialization error.");
            }

            var responseBody = await _transport.PostRequest(Options.ApiUrl, requestBody);

            var ofxResponse = _serializer.Deserialize(responseBody);

            if (ofxResponse == null)
            {
                throw new OfxSerializationException("Response deserialization error.");
            }


            var signInResponse = ofxResponse.Items.FirstOrDefault(_ => _ is SignonResponseMessageSetV1) as SignonResponseMessageSetV1;

            if (signInResponse == null)
            {
                throw new OfxResponseException("SIGNONRESPONSEMESSAGESETV1 is not present in response.");
            }

            if (signInResponse.SONRS.STATUS.CODE != "0")
            {
                throw new OfxResponseException(signInResponse.SONRS.STATUS.MESSAGE);
            }

            var messageSet = ofxResponse.Items.FirstOrDefault(_ => _ is TResponseMessage) as TResponseMessage;

            if (messageSet == null)
            {
                throw new OfxResponseException("Requested message set " + typeof(TResponseMessage).Name.ToUpper() + " is not present in response.");
            }

            return(messageSet);
        }