public AmexApi(IDictionary <string, string> credentials) { if (credentials == null || credentials.Count != 3) { throw new ArgumentException("Credentials for access to Cal are incorrect."); } _sessionInfo = new AmexSessionInfo(); var credentialValues = credentials.Values.ToArray(); _idNumber = credentialValues[0]; var lastDigits = credentialValues[1]; var password = credentialValues[2]; try { _sessionInfo.AntiForgeryToken = GetVerificationToken(); ValidateId(_idNumber, lastDigits); Login(_idNumber, lastDigits, password); } catch (Exception exp) { throw new LoginException(Name, _idNumber) { Error = exp.Message }; } }
private void ExtractCookies(HttpResponseMessage response) { if (_sessionInfo == null) { _sessionInfo = new AmexSessionInfo(); } IEnumerable <string> cookies = new List <string>(); try { if (response.Headers != null && response.Headers.Contains("set-cookie")) { cookies = response.Headers.GetValues("set-cookie"); } } catch (Exception e) { Console.WriteLine(e); } if (cookies == null) { return; } foreach (var setValue in cookies) { var items = setValue.Split(';'); foreach (var item in items) { var nameValue = item.Split('='); if (nameValue[0].Equals(Jsessionid)) { _sessionInfo.Jsessionid = nameValue[1]; } else if (nameValue[0].Equals(Alt50_ZLinuxPrd)) { _sessionInfo.Alt50_ZLinuxPrd = nameValue[1]; } else if (nameValue[0].Equals(ServiceP)) { _sessionInfo.ServiceP = nameValue[1]; } else if (nameValue[0].Equals(RequestVerificationToken)) { _sessionInfo.RequestVerificationToken = nameValue[1]; } else if (nameValue[0].Equals(AspDotNetSessionId)) { _sessionInfo.AspDotNetSessionId = nameValue[1]; } } } }