public static void ValuateBundle(this BundleItemModel bundleModel) { if (bundleModel == null) { throw new ArgumentNullException(nameof(bundleModel)); } var transactions = bundleModel.BundleDetail.TransactionItems.Where(t => t.Index == 0).ToArray(); if (transactions.Length == 0) { bundleModel.IsConfirmed = false; bundleModel.Balance = 0; return; } var first = transactions.First(); var confirmed = transactions.FirstOrDefault(t => t.IsConfirmed); var isConfirmed = confirmed != null; var balance = confirmed != null ? confirmed.Balance : first.Balance; var dateTime = confirmed != null ? confirmed.DateTime : first.DateTime; var address = confirmed != null ? confirmed.Address : first.Address; bundleModel.IsConfirmed = isConfirmed; bundleModel.Balance = balance; bundleModel.DateTime = dateTime; bundleModel.Address = address; }
public static BundleItemModel UpdateBundleItems(this ObservableCollection <BundleItemModel> bundleItems, string bundleHash, TransactionItem[] transactionItems) { var bundle = bundleItems.FirstOrDefault(b => b.Hash == bundleHash); if (bundle == null) { var transactions = transactionItems.Select(t => t.ToModel()).ToArray(); bundle = new BundleItemModel(transactions) { Hash = bundleHash }; bundle.ValuateBundle(); bundleItems.Add(bundle); return(bundle); } foreach (var transaction in transactionItems) { var tModel = bundle.BundleDetail.TransactionItems.FirstOrDefault(t => t.Hash == transaction.Hash); if (tModel != null) { tModel.Update(transaction); } else { tModel = transaction.ToModel(); bundle.BundleDetail.TransactionItems.Add(tModel); } } bundle.ValuateBundle(); return(bundle); }
public ShoppingCartItemModel() { Picture = new PictureModel(); AllowedQuantities = new List <SelectListItem>(); Warnings = new List <string>(); ChildItems = new List <ShoppingCartItemModel>(); BundleItem = new BundleItemModel(); }
public ShoppingCartItemModel() { Picture = new PictureModel(); AllowedQuantities = new List<SelectListItem>(); Warnings = new List<string>(); ChildItems = new List<ShoppingCartItemModel>(); BundleItem = new BundleItemModel(); }
private async void BundleModel_Rebroadcast(BundleItemModel bundleModel) { var transactionItems = bundleModel.BundleDetail.TransactionItems.Select(t => t.Tag) .OfType <TransactionItem>() .OrderBy(t => long.Parse(t.Timestamp)).ToArray(); if (transactionItems != null && transactionItems.Length > 0) { var indexString = transactionItems.First().LastIndex; var lastIndex = int.Parse(indexString); List <TransactionItem> transactions = new List <TransactionItem>(); for (int i = 0; i <= lastIndex; i++) { var iString = i.ToString(); var tr = transactionItems.Where(t => t.CurrentIndex == iString).First(); transactions.Add(tr); } await SendTransactions(transactions.ToArray(), true); } }