public void TestDecrypt() { string sIn = @"<?xml version=""1.0""?> <AccountModel xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> <id>2022</id> <name>xero1</name> <apikey>DFECQTB5KOK7IHIGGW5S2KXBNLLAV8</apikey> <secret>MWOWLLN0LOGVUPF9BLBUGBM0EOCLWR</sercet> <limitDays>0</limitDays> <accountTypeName>XERO</accountTypeName> <displayName>[email protected]</displayName> <publicCert>-----BEGIN CERTIFICATE-----MIICaDCCAdGgAwIBAgIJAI88EON8XhSeMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNVBAYTAlVLMQ4wDAYDVQQKDAVlemJvYjEOMAwGA1UEAwwFZXpib2IxHjAcBgkqhkiG9w0BCQEWD2V6Ym9iQGV6Ym9iLmNvbTAeFw0xNDA3MjExMTQ2NDdaFw0xOTA3MjAxMTQ2NDdaME0xCzAJBgNVBAYTAlVLMQ4wDAYDVQQKDAVlemJvYjEOMAwGA1UEAwwFZXpib2IxHjAcBgkqhkiG9w0BCQEWD2V6Ym9iQGV6Ym9iLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAx85lHKJsulizOsWLLVW/NdF5fh4WJwXwwbmXRweTlvITHkfoJn7Kh6WeFj23QMspLZuN88L55dJdM7PUFgMS8PRO8ul2MegJ3oTOceIke0Ks49RH2kaeXvHt7xY+nAvgKZuqVlz9sjijkcQLUJ/AuNWsMvjkAooxns4kDB4gS48CAwEAAaNQME4wHQYDVR0OBBYEFDAtGGKmWyhFxidHpPO0VzWtRi2uMB8GA1UdIwQYMBaAFDAtGGKmWyhFxidHpPO0VzWtRi2uMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARHwqcwcDhiRNrVPWJZmlhMnOmftcfNcP3ak0lyBIe8SrSxLvHmWRonZa84G1/S/u5aaa/Kh2LX3LN1ypj1DEQJfsi8lwj7Lk9NiJQLi66azs73Z6gdVNAJ0KapVt6S81yV9Hf1xs5qRZU/+Ex/OZ+12QMGpe4X7bF8tOXarBROQ=-----END CERTIFICATE-----</publicCert> <privateKey>-----BEGIN RSA PRIVATE KEY-----MIICXwIBAAKBgQDHzmUcomy6WLM6xYstVb810Xl+HhYnBfDBuZdHB5OW8hMeR+gmfsqHpZ4WPbdAyyktm43zwvnl0l0zs9QWAxLw9E7y6XYx6AnehM5x4iR7Qqzj1EfaRp5e8e3vFj6cC+Apm6pWXP2yOKORxAtQn8C41awy+OQCijGeziQMHiBLjwIDAQABAoGBAJiVhaHYaC/mjPjU4vQ8B0mSLrWhREmIv9MxZ9VWc99R/kehoifDq+brE07o0okonMm3gTAmNbDMdWCGc/BbaJo/8amH3pgbCtEfLUKN7bokiREUQG8rSOxXkjUXAesrLUI+5ZVKQzNPKB20xAEF9vmj/+Ew4q/aaOKSKiw8WHgBAkEA79Jah/WpFWkau8gSGLsoSu7NHbNPNMxy/zR4Sa8uCfX4jdht3hgVpIeDRfqr3gCyVdmC3c1MvT8mVLDinAxOGQJBANVI/JZ+aB5l8L82UwtK1nmwuEgrHS2vwTlxYPtraIn5WHB7DZIWEv21XJXKT+sKAxZxwtf1eo/uOvR5Y+jYy+cCQQC8H2VWu5TsL6uB3Bqd/cpIpXSPNMYQI8SdfrpRCrLxq1pTYpAkpP3tN0P5k/5XwnIiN+KZPN9SoIPf8XWBdYGZAkEArDvbVcBQXjPd/NtmpljR58Uwm37NekZSmAuZ0I5FBh5oL7T/GXhf76dUU9XjQZ99LNPDD1g5mB8+VovshW0FAwJBAKEbR4WNRWgoc0qV2rJ8gUpCXns9yjVEPTkxyDUGIMn/qTHAicTdl0G4NVJ6H9AYrIvFa4ICwOninM+6k/AiRg4=-----END RSA PRIVATE KEY-----</privateKey> </AccountModel>"; var sOutEn = new Encrypted(new Serialized(sIn)); string sOutDec = Encrypted.Decrypt(sOutEn); //string sOutput = null; ////xero //string sInput = "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"; ////not xero //string sInput2 = "C0/PLr+re1WYbSklttMpN43371tjwPz5G/zRdZgtika0HJyXaOvvimQX/Y+8jYj5iAWuST9WIh6vRp6ZDC6UVL2ahn27SVIM94HkYcTf6bcAMlwGlXVgp7gAzSM0EY2kUv/JJ3loK5KEZnMGdOCkn62c7Gj1Uj829SqUstX1aBgwxlpnYzPKKRFQ1SCXXvb40MKvVAe68p69Uq33wQJYXECV3DjpYD7U60WkLeHKClz8ZrwS7YqpcQLcfgnTgmLyPeGxClc0nu8aHB7SwvGWEXU0kbS8Vo0qBBeOCVusFH9v5ns8l5XqFd38fUZzxIkxhVDS4wNOFBpnwO1eNl6vhHxkFQQFSXXlw2HMi3P86LXTDrLh95ozcdt6taSP4BxQALRWUQD8T9UOXiOyK3i3G6S3+ZYvtPiiG25jWvtjMO4CullL5WrIwxX/vJJXxfpoq2u5H8CtmfDpWCoGBL/wlrlrpfbpId8FkMtzEzElQ1wu00DAEfYRUsJACuWMcFsR9+cimVXJCo+4ZXqXoKsxa28FiVXZbkpi7tLoEV4FmNOZPzSHA+3PhuabCJh176xasjkWmw9c+0jowArfPBiSYY84HykegweBVbUyUeyKIQ5gE0XXyyTROdzqtORPdbkzPcVNpqmvcn7Nz0E5dgThx/04zRC6K2IFjOAsY23WQDRV3mjlgCKnY43sYMh5/TsU3PzvPD/WsGs7GjpFmxeml7+j1hB/o6MYCznKWjirQjIiUuYXE8XpaE/nvIxQLuEA/YAPq/kUI+PuXyhOR9WKE/XoQ2WYv0KOJ3Ct4eZy+43LwmbVHBGk8//Pp0kZwmbOpWT6CqSd32zTIDxhZL6yEbkjt9wWP5h0yZ4aze64JC8t7f4xjLimn90ocYp/lvgtN9JvOTfik5fIazhOCPeWAh/Zm+cFNiPH++3NlmNcwB1qzmhvKJ+RzodAL16D7tOQF49YyVt8VuJG+rlXRlx12AL80OkH5Q1KXjP2AGbRSkc7QLCYzxd0NVX2GGPN30OmZ2nQGy1ze689h86LsZDjpUCXR01anflqBOYblRenIGqIwEXJXtbqVujriANlZhhSK6SAByjK7WfdTkgbGM2hFl9pjZPPcopjdPCgJdLJ6C7Oo3gyjkH3vL8qe4idcmi0"; //try //{ // sOutput = Encrypted.Decrypt(sInput2); // sOutput = Encrypted.Decrypt(sInput); //} //catch (Exception e) //{ // m_oLog.Warn(e, "Failed to decrypt."); // sOutput = string.Empty; //} // try Console.WriteLine(sOutDec); Assert.IsFalse(String.IsNullOrEmpty(sOutDec)); }
public void test_refresh_not_mfa() { var m = new YodleeMain(); m.LoginUser("*****@*****.**", Encrypted.Decrypt("sykuYcJcd+ShmykTY/pi0qBpRJK0a9HBiiw9NN0Dgjg=")); m.RefreshNotMFAItem(10334329, true); }
public Encrypted <ScenarioInfo> GetScenarioInfo(Encrypted <string> scenarioId) { return(Handle((user) => { var scenario = GetScenario(scenarioId.Decrypt(_secretKey)); var executeScenarioAction = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.Execute); var viewScenarioAction = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue); var currentValue = string.Empty; var canSetValue = true; var isAvailable = true; try { currentValue = scenario.CalculateCurrentValue(viewScenarioAction, null); canSetValue = scenario.IsAccessAvailable(executeScenarioAction); } catch { isAvailable = false; canSetValue = false; currentValue = scenario.ValueType.DefaultValue; } return new Encrypted <ScenarioInfo>(new ScenarioInfo() { CurrentValue = currentValue, ScenarioId = scenario.Id, ValueType = scenario.ValueType, VisualSettings = GetVisualSettings(user, scenario.Id), Name = scenario.Name, OnlyGetValue = !canSetValue, IsAvailable = isAvailable && scenario.GetIsAvailable() }, _secretKey); })); }
public Encrypted <string> GetScenarioValue(Encrypted <string> scenarioId) { return(Handle((user) => { var scenarioActionSource = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue); return new Encrypted <string>(GetScenario(scenarioId.Decrypt(_secretKey)).CalculateCurrentValue(scenarioActionSource, null), _secretKey); })); }
public EncryptedList <StatisticsItem> GetStatistics(DateTime since, DateTime to, Encrypted <StatisticsScenarioInfo> encryptedInfo) { return(Handle((user) => { var info = encryptedInfo.Decrypt(_secretKey); return new EncryptedList <StatisticsItem>(StatisticsManager.GetItems(info, since, to, new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue)), _secretKey); })); }
public static SessionToken Deserialize(string sToken) { try { string sDecoded = Encrypted.Decrypt(Convert.FromBase64String(sToken)); string[] ary = sDecoded.Split(new string[] { Separator }, StringSplitOptions.RemoveEmptyEntries); if (ary.Length != 4) { ms_oLog.Alert( "Supplied token '{0}' has been de-serialised successfully to '{1}' but contains unexpected number of fields.", sToken, sDecoded ); return(null); } // if return(new SessionToken(ary[0], ary[1], ary[2], ary[3])); } catch (Exception e) { ms_oLog.Alert(e, "Failed to de-serialise session token from '{0}'.", sToken); return(null); } // try } // Deserialize
public ActionResult RefreshYodlee(string displayName = null) { var yodleeAccount = this.yodleeAccountsRepository.Search(this.customer.Id); var yodleeMain = new YodleeMain(); var oEsi = new YodleeServiceInfo(); var yodlees = this.customer.CustomerMarketPlaces .Where(mp => mp.Marketplace.InternalId == oEsi.InternalId) .ToList(); if (yodlees.Count == 0) { return(View(new { error = "Error loading bank accounts" })); } var lu = yodleeMain.LoginUser(yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password)); if (lu == null) { return(View(new { error = "Error logging to yodlee account" })); } MP_CustomerMarketPlace umi = displayName == null ? yodlees[0] : yodlees.FirstOrDefault(y => y.DisplayName == displayName); //TODO Currently refreshes the first one if (umi == null) { return(View(new { error = "Account not found" })); } var callback = Url.Action("RecheckYodleeCallback", "YodleeMarketPlaces", new { Area = "Customer" }, "https") + "/" + umi.Id; string finalUrl = yodleeMain.GetEditAccountUrl(Serialized.Deserialize <YodleeSecurityInfo>(umi.SecurityData).ItemId, callback, yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password)); return(Redirect(finalUrl)); }
} // CheckHmrc private bool IsSameMarketPlace(int nMpID, byte[] oSecData, MP_MarketplaceType oMp, string sShopID) { VendorInfo vi = Integration.ChannelGrabberConfig.Configuration.Instance.GetVendorInfo(oMp.Name); if (vi == null) { return(false); } try { var am = Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(oSecData)); return(am.Fill().UniqueID() == sShopID); } catch (Exception e) { string sXml = System.Text.Encoding.Default.GetString(oSecData); new SafeILog(this).Warn( e, "Failed to de-serialize security data. Marketplace ID = {0}, Security data: {1}", nMpID, sXml ); return(false); } // try } // IsSameMarketPlace
public ViewResult YodleeCallback() { Log.InfoFormat("Got to yodlee's callback with params:{0}", HttpContext.Request.Params); foreach (string key in HttpContext.Request.Params.Keys) { if (key == "oauth_error_code") { Log.WarnFormat("Yodlee returned an error. oauth_error_code:{0} oauth_error_problem:{1}", HttpContext.Request.Params["oauth_error_code"], HttpContext.Request.Params["oauth_error_problem"]); if (HttpContext.Request.Params["oauth_error_code"] == "407") { return(View(new { error = "Failure linking account" })); } } } var yodleeAccount = this.yodleeAccountsRepository.Search(this.customer.Id); string decryptedPassword = Encrypted.Decrypt(yodleeAccount.Password); string displayname; long csId; var yodleeMain = new YodleeMain(); var oEsi = new YodleeServiceInfo(); var items = this.customer.CustomerMarketPlaces .Where(mp => mp.Marketplace.InternalId == oEsi.InternalId) .Select(mp => Serialized.Deserialize <YodleeSecurityInfo>(mp.SecurityData).ItemId).ToList(); long itemId = yodleeMain.GetItemId(yodleeAccount.Username, decryptedPassword, items, out displayname, out csId); if (itemId == -1) { return(View(new { error = "Failure linking account" })); } int marketPlaceId = this.mpTypes .GetAll() .First(a => a.InternalId == oEsi.InternalId) .Id; var securityData = new YodleeSecurityInfo { ItemId = itemId, Name = yodleeAccount.Username, Password = yodleeAccount.Password, MarketplaceId = marketPlaceId, CsId = csId }; var yodleeDatabaseMarketPlace = new YodleeDatabaseMarketPlace(); var marketPlace = this.dbHelper.SaveOrUpdateCustomerMarketplace(displayname, yodleeDatabaseMarketPlace, securityData, this.customer); Log.InfoFormat("Added or updated yodlee marketplace: {0}", marketPlace.Id); this.serviceClient.Instance.UpdateMarketplace(this.context.Customer.Id, marketPlace.Id, true, this.context.UserId); return(View(YodleeAccountModel.ToModel(marketPlace, this.yodleeBanksRepository))); }
public void ExecuteScenario(Encrypted <string> scenarioId, Encrypted <string> value) { Handle((user) => { var scenario = GetScenario(scenarioId.Decrypt(_secretKey)); var actionSource = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.Execute); scenario.Execute(actionSource, value.Decrypt(_secretKey), out string executionId); }); }
} // GetDisplayName private void GetPassword() { try { Password = Encrypted.Decrypt(m_sRawPassword); } catch (Exception e) { throw new StrategyWarning(this, "Failed to get password from " + m_sRawPassword, e); } } // GetPassword
public void can_encrypt_and_decrypt() { const string text = "Hello World"; var encrypted = new Encrypted(text); var decrypted = encrypted.Decrypt(); Assert.That(decrypted, Is.EqualTo(text)); Assert.That(encrypted.ToString(), Is.Not.EqualTo(text)); } // can_encrypt_and_decrypt() {
private string TryDecrypt(byte[] oEncoded) { try { return(Encrypted.Decrypt(oEncoded)); } catch (Exception) { return("FAILED TO DECRYPT"); } // try } // TryDecrypt
} // GetCustomerID private void GetDisplayName() { try { m_sDisplayName = Encrypted.Decrypt(m_sRawDisplayName); } catch (Exception e) { throw new StrategyWarning(this, "Failed to get display name from " + m_sRawDisplayName, e); } } // GetDisplayName
private void GetCustomerID() { try { CustomerID = int.Parse(Encrypted.Decrypt(m_sRawCustomerID)); } catch (Exception e) { throw new StrategyWarning(this, "Failed to get customer ID from " + m_sRawCustomerID, e); } } // GetCustomerID
public void AsyncExecuteScenarioParallel(Encrypted <string> scenarioId, Encrypted <string> value) { Handle((user) => { var scenario = GetScenario(scenarioId.Decrypt(_secretKey)); var actionSource = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.Execute); scenario.ExecuteAsyncParallel(actionSource, value.Decrypt(_secretKey), null); }); }
public Encrypted <AddictionalData> SyncAddictionalData(Encrypted <AddictionalData> encryptedData) { return(Handle((user) => { WarningHandler.InfoFormat("User AddictionalData sync: [{0}];", user.Name); var data = encryptedData.Decrypt(_secretKey); AddictionalDataManager.Handle(data, user); var preparedData = AddictionalDataManager.Prepare(user); return new Encrypted <AddictionalData>(preparedData, _secretKey); })); }
} // encrypt clicked private void btnDecrypt_Click(object sender, EventArgs e) { try { this.txtOutput.Text = Encrypted.Decrypt(this.txtInput.Text); } catch (Exception ex) { this.txtOutput.Text = ex.Message; } // try this.txtOutput.Update(); } // decrypt clicked
public Encrypted <StatisticsScenarioInfo> GetStatisticsInfoForScenario(Encrypted <ScenarioInfo> info) { return(Handle((user) => { var scenarioId = info.Decrypt(_secretKey).ScenarioId; var scenario = ScenariosRepository.Scenarios.FirstOrDefault(x => x.Id == scenarioId); if (scenario == null) { return null; } return new Encrypted <StatisticsScenarioInfo>(StatisticsManager.GetStatisticsInfoForScenario(scenario, new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue)), _secretKey); })); }
public static string Stringify(this YodleeSecurityInfo oInfo) { if (oInfo == null) { return(string.Empty); } return(string.Format( "Name: {0}, ItemID: {1}, CsId: {2}, Password: {3}", oInfo.Name, oInfo.ItemId, oInfo.CsId, Encrypted.Decrypt(oInfo.Password) )); } // Stringify
private static YodleeAccounts CreateUnallocatedAccount() { YodleeAccounts account = AccountRepository.CreateAccount(YodleePasswordGenerator.GenerateRandomPassword); log.InfoFormat("Registering yodlee user: {0}", account.Username); if (!yodleeMain.RegisterUser(account.Username, Encrypted.Decrypt(account.Password), account.Username)) { AccountRepository.Delete(account); } return(account); }
} // constructor public override IMarketPlaceSecurityInfo RetrieveCustomerSecurityInfo( int customerMarketPlaceId ) { var account = GetDatabaseCustomerMarketPlace(customerMarketPlaceId); try { return(Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(account.SecurityData))); } catch (Exception e) { throw new ApiException(string.Format("Failed to de-serialise security data for marketplace {0} ({1})", account.DisplayName, account.Id), e); } // try } // RetrieveSecurityInfo
public void CanEncryptWithStringExtension() { RsaUtils.KeyLength = RsaKeyLengths.Bit1024; RsaUtils.DefaultKeyPair = RsaUtils.CreatePublicAndPrivateKeyPair(); string TestStart = "Mr. Watson--come here--I want to see you."; string Encrypted; string Decrypted; Encrypted = TestStart.Encrypt(); Assert.AreNotEqual(Encrypted, TestStart); Decrypted = Encrypted.Decrypt(); Assert.AreEqual(Decrypted, TestStart); }
} // constructor protected virtual void ReLoad() { m_oData.Clear(); m_oByID.Clear(); DB.ForEachRowSafe( (sr, bRowsetStart) => { Variables nVar; string sName = sr["Name"]; if (Enum.TryParse(sName, out nVar)) { string sValue = sr["Value"]; if (sr["IsEncrypted"]) { try { sValue = Encrypted.Decrypt(sValue); } catch (Exception e) { Log.Alert(e, "Failed to decrypt a value of {0}.", nVar); } // try } // if var vv = new VariableValue(sr["ID"], nVar, sValue, sr["Description"], Log); m_oData[vv.Name] = vv; m_oByID[vv.ID] = vv; } else { Log.Warn("Unknown configuration variable detected: {0}", sName); } return(ActionResult.Continue); }, "GetAllConfigurationVariables", CommandSpecies.StoredProcedure ); m_oLastReloadTime = DateTime.UtcNow; VariableValue.LogVerbosityLevel = UnsafeGet(Variables.VerboseConfigurationLogging) ? LogVerbosityLevel.Verbose : LogVerbosityLevel.Compact; m_oUploadLimitations.Load(); } // ReLoad
public void SaveVisualSettings(Encrypted <UserVisualSettings> visualSettings) { Handle((user) => { var decryptedVS = visualSettings.Decrypt(_secretKey); decryptedVS = new UserVisualSettings() { AddictionalData = decryptedVS.AddictionalData, VisualIndex = decryptedVS.VisualIndex, ScenarioId = decryptedVS.ScenarioId, UserId = user.Id }; VisualSettings.Add(decryptedVS); VisualSettings.Save(); }); }
public long test_get_itemId() { var m = new YodleeMain(); string dName; long csId; // halifax "*****@*****.**", Encrypted.Decrypt("D61Ggo7aGrQTD/ZNsnqUfteq4mlqW00xAG1yL8wpfBA=" 10321216 WBkLy450 // dag "*****@*****.**", Encrypted.Decrypt("sykuYcJcd+ShmykTY/pi0qBpRJK0a9HBiiw9NN0Dgjg=" // mfa "*****@*****.**", Encrypted.Decrypt("qcw25++Ggp8/yi4bNkeB2Q64ABGU5YL+r7DPAZDrkkE=" var pass = Encrypted.Decrypt("SH24xKutqoIefQ9oz2gjD9rITakU29ZXQpGA9SY8UMw="); long itemId = m.GetItemId("*****@*****.**", pass, null, out dName, out csId); Console.WriteLine("{0} {1}", dName, itemId); Assert.That(itemId != -1); return(itemId); }
} // ToModel public static AccountModel ToModel(IDatabaseCustomerMarketPlace account) { try { var m = Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(account.SecurityData)); m.id = account.Id; return(m); } catch (Exception e) { throw new ApiException( string.Format( "Failed to de-serialize security data for marketplace {0} ({1})", account.DisplayName, account.Id ), e ); } // try } // ToModel
public void test_get_data_for_item() { var m = new YodleeMain(); var pass = Encrypted.Decrypt("SH24xKutqoIefQ9oz2gjD9rITakU29ZXQpGA9SY8UMw="); m.LoginUser("*****@*****.**", pass); GetBankData g = new GetBankData(); string s1; string err; Dictionary <BankData, List <BankTransactionData> > data; //var itemId = test_get_itemId(); long itemId = 10403741; g.GetBankDataForItem(m.UserContext, itemId, out s1, out err, out data); Console.WriteLine("info {0}, errors:{1}, count of data:{2}", s1, err, data.Keys.Count); }
public ActionResult TryRecheckYodlee(int umi) { var mp = _customerMarketplaces.Get(umi); var yodleeMain = new YodleeMain(); var yodleeAccount = _yodleeAccountsRepository.Search(mp.Customer.Id); if (yodleeAccount == null) { return(View(new { error = "Yodlee Account was not found" })); } var securityInfo = Serialized.Deserialize <YodleeSecurityInfo>(mp.SecurityData); long itemId = securityInfo.ItemId; var lu = yodleeMain.LoginUser(yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password)); if (lu == null) { return(View(new { error = "Error Loging to Yodlee Account" })); } if (!yodleeMain.IsMFA(itemId)) { bool isRefreshed; try { isRefreshed = yodleeMain.RefreshNotMFAItem(itemId); } catch (RefreshYodleeException ex) { Log.Warn(ex, "TryRecheckYodlee exception"); return(View(new { error = ex.ToString() })); } if (isRefreshed) { var customer = mp.Customer; m_oServiceClient.Instance.UpdateMarketplace(customer.Id, umi, true, _context.UserId); return(View(new { success = true })); } return(View(new { error = "Account wasn't refreshed successfully" })); } //MFA Account for testing redirecting to Yodlee LAW var callback = Url.Action("YodleeCallback", "YodleeRecheck", new { Area = "Underwriter" }, "https") + "/" + umi; string finalUrl = yodleeMain.GetEditAccountUrl(securityInfo.ItemId, callback, yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password)); return(Redirect(finalUrl)); } // TryRecheckYodlee
} // CheckEkm private void CheckHmrc(LoadCustomerMarketplaceSecurityData.ResultRow hmrc) { AccountModel oSecInfo; try { oSecInfo = Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(hmrc.SecurityData)); } catch (Exception e) { Log.Alert( e, "Failed to de-serialise security data for HMRC marketplace {0} ({1}).", hmrc.DisplayName, hmrc.CustomerMarketplaceID ); return; } // try if ((oSecInfo.login == m_oCustomerData.Mail) && (oSecInfo.password == VendorInfo.TopSecret)) { if (hmrc.UpdatingStart.HasValue && hmrc.UpdatingStart.Value.AddDays(1) < DateTime.UtcNow) { Result.HasUploadedHmrc = true; } return; } try { var ctr = new Connector(oSecInfo.Fill(), Log, m_oCustomerData.Id, m_oCustomerData.Mail); if (ctr.Init()) { ctr.Run(true); ctr.Done(); } // if } catch (InvalidCredentialsException) { Log.Debug("Invalid credentials detected for linked HMRC account {0} ({1}).", hmrc.CustomerMarketplaceID, oSecInfo.login); Result.LinkedHmrc.Add(oSecInfo.login); } catch (Exception e) { Log.Warn(e, "Failed to validate credentials for linked HMRC account {0} ({1}).", hmrc.CustomerMarketplaceID, oSecInfo.login); } // try } // CheckHmrc