public async Task <WalletViewModel> CreateWallet() { WalletCreationViewModel walletCreationViewModel = new WalletCreationViewModel(); walletCreationViewModel.Name = new Random().Next(1, 100).ToString(); WalletCreation creation = walletCreationViewModel.CreateWalletCreation(); Wallet wallet = await CreateWallet(creation); var walletVm = new WalletViewModel(wallet, walletCreationViewModel); //walletVm.Name; //walletVm.Wallet.Created; //walletVm.PrivateKeys; //ToDo Create Wallet repository WalletFileInfoViewModel walletFileInfoVm = walletVm.Save(); if (_ConnectionParameters != null) { wallet.Configure(_ConnectionParameters); wallet.Connect(); } return(walletVm); }
public IActionResult UpdateWallet(int id, WalletViewModel wallet) { if (id != wallet.WalletId) { return(NotFound()); } var userId = HttpContext.User.Identity.Name; var walletModel = _walletService.GetWallet(id); if (walletModel.OwnerId == int.Parse(userId)) { walletModel.Name = wallet.Name; walletModel.Description = wallet.Description; if (wallet.InitMoney > walletModel.InitMoney) { var difference = wallet.InitMoney - walletModel.InitMoney; walletModel.InitMoney = wallet.InitMoney; walletModel.Balance += difference; } _walletService.UpdateWallet(walletModel); return(NoContent()); } else { return(NotFound()); } }
public async Task EditWalletAsync(long walletId, WalletViewModel viewModel) { var request = _mapper.Map <EditWalletRequest>(viewModel); request.WalletId = walletId; await _repository.EditWalletAsync(request); }
/// <summary> /// 如果用户已经登陆 获取用户信息 /// </summary> protected void TryInitUserModel() { //从cookie 获取登陆用户ID //创建用户信息可以先从缓存中获取,没有在从数据库取 var cookie = this.Request.Headers.GetCookies(); if (cookie != null || cookie.Count > 0) { string userId = string.Empty; foreach (var perCookie in cookie[0].Cookies) { if (perCookie.Name.Equals(AuthCookieConfig.AUTH_COOKIE_NAME)) { //从cookie 中解密出用户ID //userId = DesHelper.Decrypt(perCookie.Value, AuthCookieConfig.AUTH_COOKIE_KEY); userId = perCookie.Value; break; } } if (!string.IsNullOrEmpty(userId) && userId.IsGuid()) { //从缓存获取用户信息 _user = _apiSession.GetUserInfo(userId); //从缓存获取钱包信息 _wallet = _apiSession.GetWalletInfo(_user.WalletId.ToString()); } } }
public TransactionHistoryItemViewModel( int orderIndex, TransactionSummary transactionSummary, WalletViewModel walletViewModel, Money balance, IObservable <Unit> updateTrigger) : base(orderIndex, transactionSummary) { Label = transactionSummary.Label.Take(1).FirstOrDefault(); FilteredLabel = transactionSummary.Label.Skip(1).ToList(); IsConfirmed = transactionSummary.IsConfirmed(); Date = transactionSummary.DateTime.ToLocalTime(); Balance = balance; var amount = transactionSummary.Amount; if (amount < Money.Zero) { OutgoingAmount = amount * -1; } else { IncomingAmount = amount; } ShowDetailsCommand = ReactiveCommand.Create(() => RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To( new TransactionDetailsViewModel(transactionSummary, walletViewModel.Wallet, updateTrigger))); DateString = $"{Date.ToLocalTime():MM/dd/yy HH:mm}"; }
public async Task ReturnsRedirectToAction_WhenParametersAreNotCorrect() { //Arrange var walletViewModel = new WalletViewModel(testWalletDTO, gameResultDTO, GlobalConstants.GameOneGrid); walletViewModel.Stake = 10; //Act var controller = new GameController(walletServiceMock.Object, mockUserManager.Object, transactionServiceMock.Object, gameMock.Object); controller.ControllerContext = new ControllerContext() { HttpContext = mockContext.Object }; walletViewModel.GridSize = "Pesho"; var result = await controller.GameOneSpin(walletViewModel); //Assert Assert.IsInstanceOfType(result, typeof(RedirectToActionResult)); var redirectResult = (RedirectToActionResult)result; Assert.AreEqual("Index", redirectResult.ActionName); Assert.AreEqual("Home", redirectResult.ControllerName); Assert.IsNull(redirectResult.RouteValues); }
public async Task CallCorrectServices_WhenModelIsValidAndUserBalanceIsLessThanStake() { //Arrange var walletViewModel = new WalletViewModel(testWalletDTO, gameResultDTO, GlobalConstants.GameOneGrid); walletViewModel.Stake = 20; testWalletDTO.Balance = 10; //Act var controller = new GameController(walletServiceMock.Object, mockUserManager.Object, transactionServiceMock.Object, gameMock.Object); controller.ControllerContext = new ControllerContext() { HttpContext = mockContext.Object }; controller.TempData = new Mock <ITempDataDictionary>().Object; controller.ModelState.AddModelError("error", "error"); var result = await controller.GameOneSpin(walletViewModel); //Assert gameMock.Verify(game => game.GenerateGrid(It.IsAny <string>()), Times.Once); mockUserManager.Verify(manager => manager.GetUserAsync(It.IsAny <ClaimsPrincipal>()), Times.Once); walletServiceMock.Verify(wallet => wallet.GetUserWallet(It.IsAny <User>()), Times.Once); }
/// <summary> /// 设置模型到缓存 /// </summary> /// <param name="walletId"></param> /// <param name="walletInfo"></param> public void SetWalletInfo(string walletId, WalletViewModel walletInfo) { walletId.CheckNotNullOrEmpty(nameof(walletId)); walletInfo.CheckNotNull(nameof(walletInfo)); _cache.Add(CacheKeySupplier.WalletModelCacheKey(walletId), walletInfo); }
public async Task CallsCorrectServices_WhenParametersAreCorrectAndUserWon() { //Arrange var walletViewModel = new WalletViewModel(testWalletDTO, gameResultDTO, GlobalConstants.GameOneGrid); walletViewModel.Stake = 10; //Act var controller = new GameController(walletServiceMock.Object, mockUserManager.Object, transactionServiceMock.Object, gameMock.Object); controller.ControllerContext = new ControllerContext() { HttpContext = mockContext.Object }; gameResultDTO.WonAmount = 10m; var result = await controller.GameOneSpin(walletViewModel); //Assert gameMock.Verify(game => game.Play(It.IsAny <int>(), It.IsAny <string>()), Times.Once); walletServiceMock.Verify(wallet => wallet.GetUserWallet(It.IsAny <User>()), Times.Once); walletServiceMock.Verify(wallet => wallet.UpdateUserWallet(It.IsAny <User>(), It.IsAny <decimal>()), Times.Exactly(2)); mockUserManager.Verify(manager => manager.GetUserAsync(It.IsAny <ClaimsPrincipal>()), Times.Once); transactionServiceMock.Verify(transaction => transaction.GameTransaction(It.IsAny <User>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TransactionType>()), Times.Exactly(2)); }
public CoinJoinHistoryItemViewModel( int orderIndex, TransactionSummary transactionSummary, WalletViewModel walletViewModel, Money balance, IObservable <Unit> updateTrigger, bool isSingleCoinJoinTransaction) : base(orderIndex, transactionSummary) { IsConfirmed = transactionSummary.IsConfirmed(); Date = transactionSummary.DateTime.ToLocalTime(); Balance = balance; IsCoinJoin = true; CoinJoinTransaction = transactionSummary; IsSingleCoinJoinTransaction = isSingleCoinJoinTransaction; var amount = transactionSummary.Amount; if (amount < Money.Zero) { OutgoingAmount = amount * -1; } else { IncomingAmount = amount; } ShowDetailsCommand = ReactiveCommand.Create(() => RoutableViewModel.Navigate(NavigationTarget.DialogScreen).To( new CoinJoinDetailsViewModel(this, updateTrigger))); DateString = $"{Date.ToLocalTime():MM/dd/yyyy HH:mm}"; }
public HistoryViewModel(WalletViewModel walletViewModel, IObservable <Unit> updateTrigger) { _walletViewModel = walletViewModel; _updateTrigger = updateTrigger; _transactionSourceList = new SourceList <HistoryItemViewModelBase>(); _transactions = new ObservableCollectionExtended <HistoryItemViewModelBase>(); _unfilteredTransactions = new ObservableCollectionExtended <HistoryItemViewModelBase>(); this.WhenAnyValue(x => x.UnfilteredTransactions.Count) .Subscribe(x => IsTransactionHistoryEmpty = x <= 0); _transactionSourceList .Connect() .ObserveOn(RxApp.MainThreadScheduler) .Sort(SortExpressionComparer <HistoryItemViewModelBase> .Ascending(x => x.IsConfirmed) .ThenByDescending(x => x.OrderIndex)) .Bind(_unfilteredTransactions) .Bind(_transactions) .Subscribe(); // [Column] [View] [Header] [Width] [MinWidth] [MaxWidth] [CanUserSort] // Indicators IndicatorsColumnView - Auto 80 - true // Date DateColumnView Date / Time Auto 150 - true // Labels LabelsColumnView Labels * 75 - true // Incoming IncomingColumnView Incoming (BTC) Auto 145 210 true // Outgoing OutgoingColumnView Outgoing (BTC) Auto 145 210 true // Balance BalanceColumnView Balance (BTC) Auto 145 210 true // NOTE: When changing column width or min width please also change HistoryPlaceholderPanel column widths. Source = new HierarchicalTreeDataGridSource <HistoryItemViewModelBase>(_transactions) { Columns = { // Indicators new HierarchicalExpanderColumn <HistoryItemViewModelBase>( new TemplateColumn <HistoryItemViewModelBase>( null, new FuncDataTemplate <HistoryItemViewModelBase>((node,ns) => new IndicatorsColumnView(), true), options: new ColumnOptions <HistoryItemViewModelBase> { CanUserResizeColumn = false, CanUserSortColumn = true, CompareAscending = HistoryItemViewModelBase.SortAscending(x => x.IsCoinJoin), CompareDescending = HistoryItemViewModelBase.SortDescending(x => x.IsCoinJoin), MinWidth = new GridLength(80, GridUnitType.Pixel) }, width: new GridLength(0, GridUnitType.Auto)), x => x.Children, x => { if (x is CoinJoinsHistoryItemViewModel coinJoinsHistoryItemViewModel && coinJoinsHistoryItemViewModel.CoinJoinTransactions.Count > 1) { return(true); } return(false); },
public async Task <IActionResult> PutWallet(string id, WalletViewModel wallet) { if (id != wallet.Id) { return(BadRequest()); } try { var currentWallet = await _context.Wallets.Where(x => x.Id == id).FirstOrDefaultAsync(); var user = await _context.AppUsers.Where(x => x.Id.ToString() == currentWallet.UserId).FirstOrDefaultAsync(); var newCoin = wallet.Coin - currentWallet.Coin; var newPromotionCoin = wallet.PromotionCoin - currentWallet.PendingCoin; var transactionHistory = new TransactionHistory { Id = Guid.NewGuid().ToString(), UserId = wallet.UserId, BillStatus = BillStatus.Completed, Coin = Math.Abs(newCoin), DateCreated = DateTime.Now, Status = Status.Active, TransactionHistoryType = (newCoin > 0) ? TransactionHistoryType.PayIn : TransactionHistoryType.Withdraw, }; string notifyTransaction = " đã nạp "; if (transactionHistory.TransactionHistoryType == TransactionHistoryType.Withdraw) { notifyTransaction = " đã rút "; } transactionHistory.Content = "Tài khoản " + user.UserName + notifyTransaction + newCoin + " vào lúc " + transactionHistory.DateCreated.ToString("dd/MM/yyyy hh:mm:ss tt"); _context.TransactionHistories.Add(transactionHistory); currentWallet.PromotionCoin = wallet.PromotionCoin; currentWallet.Coin = wallet.Coin; _context.Wallets.Update(currentWallet); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WalletExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Update(int id, WalletViewModel wallet) { if (ModelState.IsValid) { await walletWebService.Update(id, wallet); } return(RedirectToAction("Details", "Wallet", new { id = wallet.Id })); }
void SelectCoin(WalletViewModel selected) { selectedCoin = selected; labelBalance.Text = selected.Balance; labelCurrency.Text = selected.Shortcut; amountEntry.Text = string.Empty; toAddressEntry.Text = string.Empty; }
public IDisposable SetWallet(WalletViewModel wallet) { CurrentWallet = wallet; SetIsActive(wallet); return(new CompositeDisposable( Disposable.Create(() => IsActive = false))); }
public IActionResult Wallet() { var model = new WalletViewModel() { User = authService.GetAuthUser(Request, Response) }; return(authService.AuthenticatedResponse(Request, Response, View(model))); }
public async Task <IActionResult> Create(WalletViewModel wallet) { await walletWebService.Create(wallet); return(RedirectToAction("Details", "Person", new { id = wallet.PersonId })); }
public async Task <IActionResult> Index() { var userId = this.userWrapper.GetUserId(HttpContext.User); var wallet = await this.walletService.RetrieveWallet(userId); var model = new WalletViewModel(wallet); return(View(model)); }
public SendViewModel(WalletViewModel walletVm, TransactionBroadcaster broadcaster) : base(NavigationMode.Normal) { _to = ""; _owner = walletVm; _transactionInfo = new TransactionInfo(); _labels = new ObservableCollection <string>(); _lastXAxisCurrentValue = _xAxisCurrentValue; ExchangeRate = walletVm.Wallet.Synchronizer.UsdExchangeRate; PriorLabels = new(); this.ValidateProperty(x => x.To, ValidateToField); this.ValidateProperty(x => x.AmountBtc, ValidateAmount); this.WhenAnyValue(x => x.To) .Subscribe(ParseToField); this.WhenAnyValue(x => x.AmountBtc) .Subscribe(x => _transactionInfo.Amount = new Money(x, MoneyUnit.BTC)); this.WhenAnyValue(x => x.XAxisCurrentValue) .Subscribe(x => { if (x > 0) { _transactionInfo.FeeRate = new FeeRate(GetYAxisValueFromXAxisCurrentValue(x)); SetXAxisCurrentValueIndex(x); } }); this.WhenAnyValue(x => x.XAxisCurrentValueIndex) .Subscribe(SetXAxisCurrentValue); Labels.ToObservableChangeSet().Subscribe(x => _transactionInfo.Labels = new SmartLabel(_labels.ToArray())); EnableCancel = true; EnableBack = true; PasteCommand = ReactiveCommand.CreateFromTask(async() => await OnPaste()); var nextCommandCanExecute = this.WhenAnyValue(x => x.Labels, x => x.AmountBtc, x => x.To, x => x.XAxisCurrentValue).Select(_ => Unit.Default) .Merge(Observable.FromEventPattern(Labels, nameof(Labels.CollectionChanged)).Select(_ => Unit.Default)) .Select(_ => { var allFilled = !string.IsNullOrEmpty(To) && AmountBtc > 0 && Labels.Any(); var hasError = Validations.Any; return(allFilled && !hasError); }); NextCommand = ReactiveCommand.CreateFromTask(async() => await OnNext(broadcaster), nextCommandCanExecute); EnableAutoBusyOn(NextCommand); }
public IHttpActionResult RutTien([FromBody] WalletViewModel request) { string username = Utilities.GetUserNameFromRequest(Request); if (username == null) { return(Unauthorized()); } User user = userService.GetUsers().FirstOrDefault(u => u.UserName.Equals(username)); if (user == null) { return(BadRequest("Get user Error")); } try { if (user.Current_Money < request.Value) { return(BadRequest("Invalid Value")); } var result = nLUtilities.DoTranfer("*****@*****.**", request.Value.ToString(), System.Guid.NewGuid().ToString()); if (result == null) { return(BadRequest("Tranfers fail")); } if (result.Response_code.Equals("E00")) { transactionService.CreateTransaction(new Transaction() { IsSuccess = true, DateCreated = DateTime.UtcNow.AddHours(7), Description = "Rút tiền từ ví", IsActive = true, IsDelete = false, UserId = user.Id, Value = int.Parse(request.Value.ToString()), Type = Transaction.TypeTrans.CashOutToUser }); user.Current_Money -= request.Value; userService.UpdateUser(user); transactionService.SaveTransaction(); } else { return(BadRequest("Error")); } } catch (Exception) { return(BadRequest("Update Error")); } request.Value = user.Current_Money; return(Ok(request)); }
private void WalletDataGrid_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { DataGrid dg = (DataGrid)sender; if (dg.SelectedItem != null) { WalletViewModel walletVm = (WalletViewModel)dg.SelectedItem; walletVm.Edit.Execute(null); } }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var viewModel = new WalletViewModel(); var view = new WalletView(); view.DataContext = viewModel; view.ShowDialog(); }
public IActionResult WithdrawFunds(WalletViewModel wallet) { _flipChain.WithdrawFundsFromWallet(wallet.publicAddress, wallet.Balance); var walletObject = (from w in _context.Wallets where w.Id == wallet.Id select w).FirstOrDefault(); return(View("Wallet", walletObject)); }
public async Task <IActionResult> Index() { WalletViewModel model = await ReturnWallet(); if (model != null) { return(View(model)); } return(View(new WalletViewModel())); }
public async Task <ActionResult> GraphData() { WalletViewModel model = await ReturnWallet(); if (model != null) { return(Json(model.Graph.ToList())); } return(Json(null)); }
public static List <TileViewModel> GetNormalWalletTiles(WalletViewModel walletViewModel, IObservable <Unit> balanceChanged) { return(new List <TileViewModel> { new WalletBalanceTileViewModel(walletViewModel.Wallet, balanceChanged, walletViewModel.History.UnfilteredTransactions) { TilePresets = new ObservableCollection <TilePresetViewModel>() { new(column : 0, row : 0, columnSpan : 1, rowSpan : 1, TileSize.Medium), new(column : 0, row : 0, columnSpan : 1, rowSpan : 1, TileSize.Medium), new(column : 0, row : 0, columnSpan : 1, rowSpan : 1, TileSize.Medium) },
public PartialViewResult GetWalletData() { //Each request causes creating new Controller model, which causes creating new RSAAlgorithm model, so key values //will be different each time thanks to setValues() method in RSAAlgorithm constructor WalletViewModel walletModel = new WalletViewModel() { d = rsa.d, e = rsa.e, n = rsa.n }; return(PartialView("WalletDataPartialView", walletModel)); }
public IActionResult Post([FromBody] WalletViewModel model) { if (!ModelState.IsValid) { NotifyModelStateErrors(); return(Response(model)); } _service.Register(model); return(Response(model)); }
void SelectCoin(WalletViewModel coin) { string address = coin.DefaultAddress; addressLabel.Text = address; ZXingBarcode.BarcodeFormat = ZXing.BarcodeFormat.QR_CODE; ZXingBarcode.BarcodeOptions.Width = 200; ZXingBarcode.BarcodeOptions.Height = 200; ZXingBarcode.BarcodeOptions.Margin = 5; ZXingBarcode.BarcodeValue = address; addressListView.ItemsSource = Repository.GetAddressViewModels(coin.Id); }
private async Task <WalletViewModel> ReturnWallet() { try { var user = await _userManager.FindByEmailAsync(User.Identity.Name); var wallet = _db.WalletCliente.Where(c => c.ClientId == user.Id).OrderBy(o => o.Mes).ToList(); var data = wallet.Select(s => new WalletClienteViewModel() { ValorSaqueBold = _db.Walletwithdraw.Where(e => e.Mes >= new DateTime(s.Mes.Year, s.Mes.Month, 1) && e.Mes <= new DateTime(s.Mes.Year, s.Mes.Month, 1).AddMonths(1).AddMilliseconds(-1)).Sum(p => p.ValorBold), ValorSaqueWise = _db.Walletwithdraw.Where(e => e.Mes >= new DateTime(s.Mes.Year, s.Mes.Month, 1) && e.Mes <= new DateTime(s.Mes.Year, s.Mes.Month, 1).AddMonths(1).AddMilliseconds(-1)).Sum(p => p.ValorWise), Mes = s.Mes, PlanoContratado = s.PlanoContratado, DataContratacao = s.DataContratacao, ValorComissaoTotal = s.ValorComissaoTotal, ValorEntradaBold = s.ValorEntradaBold, ValorEntradaWise = s.ValorEntradaWise, ValorFinal = s.ValorFinal, ValorInicial = s.ValorInicial, ValorRentabilidadeBold = s.ValorRentabilidadeBold, ValorRentabilidadeWise = s.ValorRentabilidadeWise }).ToList(); IEnumerable <object> grafico = new List <object>(); grafico = data.Select(s => new { Mes = s.Mes.ToString("MMM"), Valor = s.ValorFinal }); var model = new WalletViewModel() { InvestimentoTotal = data != null ? (data.Select(s => s.ValorEntradaWise).Sum() + data.Select(s => s.ValorEntradaBold).Sum()) : 0, ComissaoTotalPaga = data != null?data.Select(s => s.ValorComissaoTotal).Sum() : 0, SaldoTotal = data != null?data.Last().ValorFinal : 0, WalletClienteList = data ?? new List <WalletClienteViewModel>(), PlanoContratado = data.Select(s => s.PlanoContratado).ToString().ToUpper(), Graph = grafico.ToList() }; return(model); } catch (Exception ex) { return(null); } }