示例#1
0
        public void DownloadCryptoData()
        {
            if (_savedCrypto == null)
            {
                return;
            }

            var downloadedCrypto = new List <CryptoDataModel>();

            var cryptoDownloadTaskList = new List <Task <BasicCryptoModel> >();

            for (int i = 0; i < _savedCrypto.Count; i++)
            {
                cryptoDownloadTaskList.Add(_compareService.GetBasicCrypto(_savedCrypto[i].Symbol));
            }

            //Wait all one by one

            while (cryptoDownloadTaskList.Count > 0)
            {
                var index = Task.WaitAny(cryptoDownloadTaskList.ToArray());
                downloadedCrypto.Add(new CryptoDataModel
                {
                    Data       = cryptoDownloadTaskList[index].Result,
                    Conditions = CryptoModelConverter.GetUnserializedRequestParameters(_savedCrypto.Single(s => s.Symbol == cryptoDownloadTaskList[index].Result.Symbol))
                });
                cryptoDownloadTaskList.Remove(cryptoDownloadTaskList[index]);
            }

            _cryptoDataModels = downloadedCrypto;
        }
示例#2
0
        public async Task RemoveCrypto(CryptoDataModel model)
        {
            try
            {
                var savedCrypto = await LoadCrypto().ConfigureAwait(false);

                if (savedCrypto.Count() == 0)
                {
                    return;
                }
                if (!savedCrypto.Any(c => c.Symbol == model.Data.Symbol))
                {
                    return;
                }

                cryptoForDeleteList.Add(CryptoModelConverter.GetSerializedModel(model));
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#3
0
 public void AddCrypto(CryptoDataModel model)
 {
     cryptoForAddList.Add(CryptoModelConverter.GetSerializedModel(model));
 }