/// <summary> /// Populates a signon request for this service using the provided user credentials. /// Some OFX calls can use special credentials different than a FI account holder, so this method /// allows the caller to specify credentials /// </summary> /// <param name="credentials">Authentication credentials to use for this request. If no credentials are specified, the default user credentials for the service are used.</param> /// <param name="requestProfile">Request profile specifying communication parameters for this request</param> /// <returns></returns> protected SignonRequestMessageSetV1 CreateSignonRequest(Credentials credentials = null, MessageSetRequestProfile requestProfile = null) { // If no credentials are specified, use the default user credentials assigned when the service was constructed if (credentials == null) { credentials = userCredentials; } // If no request profile is specified, use the default if (requestProfile == null) { requestProfile = defaultMessageSetProfile; } // Populate the FinancialInstitution data var fi = new FinancialInstitution { ORG = financialInstitution.OrganizationId, FID = financialInstitution.FinancialId }; // Populate a signon request with the current date and provided user credentials var signonRequest = new SignonRequest { DTCLIENT = OFXUtils.DateToOFX(new DateTimeOffset(DateTime.Now)), ItemsElementName = new ItemsChoiceType[2] { ItemsChoiceType.USERID, ItemsChoiceType.USERPASS }, Items = new string[2] { credentials.UserId, credentials.Password }, FI = fi, LANGUAGE = LanguageEnum.ENG, APPID = appId, APPVER = appVer }; // Wrap the signon request in a signon message set, per protocol var signonMessageSet = new SignonRequestMessageSetV1 { SONRQ = signonRequest }; // Return the fully populated request return(signonMessageSet); }
/// <summary> /// Populates a signon request for this service using the provided user credentials. /// Some OFX calls can use special credentials different than a FI account holder, so this method /// allows the caller to specify credentials /// </summary> /// <param name="credentials">Authentication credentials to use for this request. If no credentials are specified, the default user credentials for the service are used.</param> /// <param name="requestProfile">Request profile specifying communication parameters for this request</param> /// <returns></returns> protected SignonRequestMessageSetV1 CreateSignonRequest(Credentials credentials=null, MessageSetRequestProfile requestProfile=null) { // If no credentials are specified, use the default user credentials assigned when the service was constructed if (credentials == null) credentials = userCredentials; // If no request profile is specified, use the default if (requestProfile == null) requestProfile = defaultMessageSetProfile; // Populate the FinancialInstitution data var fi = new FinancialInstitution { ORG = financialInstitution.OrganizationId, FID = financialInstitution.FinancialId }; // Populate a signon request with the current date and provided user credentials var signonRequest = new SignonRequest { DTCLIENT = OFXUtils.DateToOFX(new DateTimeOffset(DateTime.Now)), ItemsElementName = new ItemsChoiceType[2] {ItemsChoiceType.USERID, ItemsChoiceType.USERPASS}, Items = new string[2] {credentials.UserId, credentials.Password}, FI = fi, LANGUAGE = LanguageEnum.ENG, APPID = appId, APPVER = appVer }; // Wrap the signon request in a signon message set, per protocol var signonMessageSet = new SignonRequestMessageSetV1 {SONRQ = signonRequest}; // Return the fully populated request return signonMessageSet; }