public void AddOrReplaceInventoryItem(KeyInventoryItem aItem, params string[] aArgs) { if (PasscodeEntropy == Guid.Empty) { throw new InvalidOperationException("To add or replace items the wallet must be decrypted"); } switch (aItem) { case KeyInventoryItem.GUIDSeed: if (aArgs.Count() != 1) { throw new ArgumentOutOfRangeException(nameof(aArgs), "For GUID only one param is needed"); } PasscodeEntropy = ParseGUID(aArgs[0]); break; case KeyInventoryItem.BittrexKeyPair: if (aArgs.Count() != 2) { throw new ArgumentOutOfRangeException(nameof(aArgs), "For KeyPairs two params are needed"); } PandoraKeys.ExchangeKeys lItem = new PandoraKeys.ExchangeKeys { ExchangeName = aItem.GetEnumDescription(), Key = aArgs[0], Secret = aArgs[1] }; PandoraKeys.ExchangeKeys lKeyPair = FExchangeKeys.Where(x => x.ExchangeName == aItem.GetEnumDescription()).FirstOrDefault(); if (lKeyPair == null) { List <PandoraKeys.ExchangeKeys> lKeyList = FExchangeKeys.ToList(); lKeyList.Add(lItem); FExchangeKeys = lKeyList.ToArray(); List <KeyInventoryItem> lInventoryKey = FInventory.ToList(); lInventoryKey.Add(aItem); FInventory = lInventoryKey.ToArray(); } else { FExchangeKeys[Array.IndexOf(FExchangeKeys, lKeyPair)] = lItem; } break; } FPendingChanges = true; }
public Tuple <string, string> GetExchangeKeyPair(KeyInventoryItem aInventoryItem) { if (FExchangeKeys == null) { throw new InvalidOperationException("Wallet must be decrypted before retrieving key pairs"); } PandoraKeys.ExchangeKeys lPair = FExchangeKeys.Where(x => x.ExchangeName == aInventoryItem.GetEnumDescription()).FirstOrDefault(); if (lPair != null) { return(new Tuple <string, string>(lPair.Key, lPair.Secret)); } return(null); }