Example #1
0
        public async void TestFastLink()
        {
            IContainer container = InitContainer(typeof(YodleeService));

            YodleeService yodleeService = container.GetInstance <YodleeService>();

            YCobrandLoginRequest cobrandLoginRequest = new YCobrandLoginRequest().SetCobrandUserName(CoBrandUserName)
                                                       .SetCobrandPassword(CoBrandPassword);

            YCobrandLoginResponse yCobrandLoginResponse = await yodleeService.LoginCobrand(cobrandLoginRequest);

            YUserLoginRequest userLoginRequest = new YUserLoginRequest()
                                                 .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                 .SetUserName(UserName)
                                                 .SetUserPassword(UserPassword);

            YUserLoginResponse yUserLoginResponse = await yodleeService.LoginUser(userLoginRequest);

            YGetFastLinkTokenRequest getFastLinkTokenRequest = new YGetFastLinkTokenRequest()
                                                               .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                               .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken);

            var yGetFastLinkTokenResponse = await yodleeService.GetFastLinkToken(getFastLinkTokenRequest);

            YFastLinkRequest yFastLinkRequest = new YFastLinkRequest()
                                                .SetFastLinkToken(yGetFastLinkTokenResponse.FastLinkToken)
                                                .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken)
                                                .SetOptionalFastLinkSite(16441);

            string formHtml = yFastLinkRequest.GetFormHtml;

            string json = await yodleeService.MakeFastLink(yFastLinkRequest);

            int kk = 0;
        }
Example #2
0
        public async void TestSiteAccountsRequest()
        {
            IContainer container = InitContainer(typeof(YodleeService));

            YodleeService yodleeService = container.GetInstance <YodleeService>();

            YCobrandLoginRequest cobrandLoginRequest = new YCobrandLoginRequest().SetCobrandUserName(CoBrandUserName)
                                                       .SetCobrandPassword(CoBrandPassword);

            YCobrandLoginResponse yCobrandLoginResponse = await yodleeService.LoginCobrand(cobrandLoginRequest);

            YUserLoginRequest userLoginRequest = new YUserLoginRequest()
                                                 .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                 .SetUserName(UserName)
                                                 .SetUserPassword(UserPassword);

            YUserLoginResponse yUserLoginResponse = await yodleeService.LoginUser(userLoginRequest);

            YSiteAccountsRequest siteAccountsRequest = new YSiteAccountsRequest()
                                                       .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                       .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken);

            YSiteAccountsResponse ySiteAccountsResponse = await yodleeService.GetSiteAccounts(siteAccountsRequest);

            Assert.AreEqual(ySiteAccountsResponse.AccountInfos.Count, 4);
        }
Example #3
0
        public async void TestTransactionRequest()
        {
            IContainer container = InitContainer(typeof(YodleeService));

            YodleeService yodleeService = container.GetInstance <YodleeService>();

            YCobrandLoginRequest cobrandLoginRequest = new YCobrandLoginRequest().SetCobrandUserName(CoBrandUserName)
                                                       .SetCobrandPassword(CoBrandPassword);

            YCobrandLoginResponse yCobrandLoginResponse = await yodleeService.LoginCobrand(cobrandLoginRequest);

            YUserLoginRequest userLoginRequest = new YUserLoginRequest()
                                                 .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                 .SetUserName(UserName)
                                                 .SetUserPassword(UserPassword);

            YUserLoginResponse yUserLoginResponse = await yodleeService.LoginUser(userLoginRequest);

            YTransactionsSearchRequest transactionsSearchRequest = new YTransactionsSearchRequest()
                                                                   .SetCoBrandToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                                   .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken)
                                                                   .SetContainerType(EContainerType.bank)
                                                                   .SetPageSize(1, 10);

            YTransactionsSearchResponse t = await yodleeService.GetTransactions2(transactionsSearchRequest);

            YTransactionsSearchResponse tt = yodleeService.GetTransactions3(transactionsSearchRequest);

            YTransactionsSearchResponse transactions = yodleeService.GetTransactions(transactionsSearchRequest).First();

            Assert.AreEqual(transactions.searchResult.Transactions.Count, 10);
        }
        /// <summary>
        /// Handles the specified command.
        /// </summary>
        /// <param name="cmd">The command.</param>
        public async void Handle(YodleeGetTransactionsCommand cmd)
        {
            YCobrandLoginRequest cobrandLoginRequest = new YCobrandLoginRequest().SetCobrandUserName(cmd.CobrandUserName)
                                                       .SetCobrandPassword(cmd.CobrandPassword);

            YCobrandLoginResponse yCobrandLoginResponse = await Yodlee.LoginCobrand(cobrandLoginRequest);

            YUserLoginRequest userLoginRequest = new YUserLoginRequest()
                                                 .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                 .SetUserName(cmd.UserName)
                                                 .SetUserPassword(cmd.UserPassword);

            YUserLoginResponse yUserLoginResponse = await Yodlee.LoginUser(userLoginRequest);

            YTransactionsSearchRequest transactionsSearchRequest = new YTransactionsSearchRequest()
                                                                   .SetCoBrandToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                                   .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken)
                                                                   .SetContainerType(EContainerType.bank);

            var lookup = cmd.AccountsNumbers.ToLookup(o => o);

            IEnumerable <YTransactionsSearchResponse> transactions = Yodlee.GetTransactions(transactionsSearchRequest);

            foreach (var transaction in transactions)
            {
                var currentTransation = transaction;
                SendReply(new InfoAccumulator(), cmd, reply => {
                    reply.HitsCount = currentTransation.numberOfHits;
                    reply.TotalTransactionsCount = currentTransation.countOfAllTransaction;
                    reply.Transactions           = currentTransation.searchResult.Transactions.Where(t => !lookup.Contains(t.account.itemAccountId))
                                                   .Select(ConvertToApiTransaction);
                    reply.AccountNumbers = cmd.AccountsNumbers;
                });
            }
        }
        /// <summary>
        /// Handles the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        public void Handle(YodleeLoginUser3dPartyCommand command)
        {
            InfoAccumulator info = new InfoAccumulator();

            if (ValidateModel(command, info))
            {
                SendReply(info, command);
                return;
            }

            //created request
            YUserLoginRequest loginRequest = new YUserLoginRequest()
                                             .SetCobrandSessionToken(command.CobrandToken)
                                             .SetUserName(command.UserName)
                                             .SetUserPassword(EncryptionUtils.Decrypt(command.PasswordEncrypted));

            //send REST request to yodlee
            var yUserLoginResponse = Yodlee.LoginUser(loginRequest)
                                     .Result;

            //handle yodlee response
            if (yUserLoginResponse.HasError)
            {
                string errorMessage = yUserLoginResponse.GetError()
                                      .ErrorMessage;

                Log.Error(errorMessage);
                info.AddError(errorMessage);
            }

            SendReply(info, command, resp => {
                if (!yUserLoginResponse.HasError)
                {
                    resp.UserToken     = yUserLoginResponse.userContext.conversationCredentials.sessionToken;
                    resp.IsLoginFailed = false;
                }
                else
                {
                    resp.IsLoginFailed = true;
                }
            });
        }
        /// <summary>
        /// Handles a YodleeGetFastLinkCommand.
        /// </summary>
        /// <param name="cmd">The command.</param>
        public async void Handle(YodleeGetFastLinkCommand cmd)
        {
            YCobrandLoginRequest cobrandLoginRequest = new YCobrandLoginRequest().SetCobrandUserName(cmd.CobrandUserName)
                                                       .SetCobrandPassword(cmd.CobrandPassword);

            YCobrandLoginResponse yCobrandLoginResponse = await Yodlee.LoginCobrand(cobrandLoginRequest);

            YUserLoginRequest userLoginRequest = new YUserLoginRequest()
                                                 .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                 .SetUserName(cmd.UserName)
                                                 .SetUserPassword(cmd.UserPassword);

            YUserLoginResponse yUserLoginResponse = await Yodlee.LoginUser(userLoginRequest);

            YGetFastLinkTokenRequest getFastLinkTokenRequest = new YGetFastLinkTokenRequest()
                                                               .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                               .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken);

            var yGetFastLinkTokenResponse = await Yodlee.GetFastLinkToken(getFastLinkTokenRequest);

            YFastLinkRequest yFastLinkRequest = new YFastLinkRequest()
                                                .SetFastLinkToken(yGetFastLinkTokenResponse.FastLinkToken)
                                                .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken);

            if (cmd.ContentServiceId > 0)
            {
                yFastLinkRequest.SetOptionalFastLinkSite(cmd.SiteId);
            }

            string formHtml = yFastLinkRequest.GetFormHtml;

            string json = await Yodlee.MakeFastLink(yFastLinkRequest);

            SendReply(new InfoAccumulator(), cmd, reply => {
                reply.FastLinkUrl = json;
                reply.FormHtml    = formHtml;
            });
        }
Example #7
0
        /// <summary>
        /// Handles the specified command.
        /// </summary>
        /// <param name="cmd">The command.</param>
        public async void Handle(YodleeGetUserAccountsCommand cmd)
        {
            YCobrandLoginRequest cobrandLoginRequest = new YCobrandLoginRequest().SetCobrandUserName(cmd.CobrandUserName)
                                                       .SetCobrandPassword(cmd.CobrandPassword);

            YCobrandLoginResponse yCobrandLoginResponse = await Yodlee.LoginCobrand(cobrandLoginRequest);

            YUserLoginRequest userLoginRequest = new YUserLoginRequest()
                                                 .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                 .SetUserName(cmd.UserName)
                                                 .SetUserPassword(cmd.UserPassword);

            YUserLoginResponse yUserLoginResponse = await Yodlee.LoginUser(userLoginRequest);

            YSiteAccountsRequest siteAccountsRequest = new YSiteAccountsRequest()
                                                       .SetCobrandSessionToken(yCobrandLoginResponse.cobrandConversationCredentials.sessionToken)
                                                       .SetUserSessionToken(yUserLoginResponse.userContext.conversationCredentials.sessionToken);

            InfoAccumulator       info = new InfoAccumulator();
            YSiteAccountsResponse ySiteAccountsResponse = await Yodlee.GetSiteAccounts(siteAccountsRequest);

            var yodleeUserAccounts = ySiteAccountsResponse.AccountInfos.Select(TransformToApiAccount).ToList();

            string json = await Yodlee.GetSiteAccountsAsJson(siteAccountsRequest);

            if (IsError(json))
            {
                info.AddError("got error response:\n" + json);
            }

            SendReply(info, cmd, reply => {
                reply.CustomerId   = cmd.CustomerId;
                reply.UserName     = cmd.UserName;
                reply.UserPassword = cmd.UserPassword;
                reply.Accounts     = yodleeUserAccounts;
            });
        }
Example #8
0
        /// <summary>
        /// Logins the user.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        internal Task <YUserLoginResponse> LoginUser(YUserLoginRequest request)
        {
            HttpContent content = CreateHttpContent(request);

            return(Browser.PostAsyncAndGetJsonReponseAs <YUserLoginResponse>(YodleeCommands.USER_LOGIN, content));
        }