private CookieCollection LogInAndEstablishSession(TDAmeritradeLoginCredentials creds)
 {
     var loginResponse = LoginCallResp(creds);
     var cc = new CookieCollection();
     cc.Add(loginResponse.Cookies);
     cc.Add(SecurityQuestionCallResp(loginResponse).Cookies);
     return cc;
 }
        private HttpWebResponse LoginCallResp(TDAmeritradeLoginCredentials creds)
        {
            return WebRequestHelper.POST(baseURI + "grid/p/login", new LoginCall
            {
                DV_DATA = string.Empty,
                fp_browser = string.Empty,
                fp_screen = string.Empty,
                fp_software = string.Empty,
                fp_timezone = string.Empty,
                fp_language = string.Empty,
                fp_java = 1,
                fp_cookie = 1,
                flashVersion = "13.0.0",
                AgentID = string.Empty,
                mAction = "submit",
                tbUsername = creds.userid,
                tbPassword = creds.password,
                ldl = "main%3Ahome"

            }, false);
        }
 private decimal GetBalance(TDAmeritradeLoginCredentials credentials)
 {
     return decimal.Parse(Helper.RetrieveResponseValueFromPartialText(BalanceAndPositionsCallResp(credentials), "<td><b>$", "<"));
 }
 private HttpWebResponse BalanceAndPositionsCallResp(TDAmeritradeLoginCredentials creds)
 {
     return WebRequestHelper.GET(baseURI + "cgi-bin/apps/u/BalancesAndPositions", false, LogInAndEstablishSession(creds));
 }