/// <summary> /// Handles the specified command. /// </summary> /// <param name="cmd">The command.</param> public void Handle(YodleeUserAddedAccountCommand cmd) { InfoAccumulator info = new InfoAccumulator(); var userAccount = YodleeQueries.GetUserAccount(cmd.CustomerId); if (userAccount == null) { string err = "could not get useraccount from db for id: " + cmd.CustomerId; info.AddError(err); Log.Error(err); RegisterError(info, cmd); //go to retry throw new InvalidDataException(err); } YodleeGetUserAccountsCommand userAccountsCommand = new YodleeGetUserAccountsCommand { UserName = userAccount.Username, UserPassword = userAccount.Password, CobrandUserName = Config.CoBrandUserName, CobrandPassword = Config.CoBrandPassword, CustomerId = cmd.CustomerId }; SendCommand(ThirdPartyService.Address, userAccountsCommand, cmd); }
/// <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; }); }