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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        /// <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());
                }
            }
        }
Ejemplo n.º 5
0
    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);
        }
Ejemplo n.º 8
0
        /// <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));
        }
Ejemplo n.º 10
0
    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}";
    }
Ejemplo n.º 11
0
    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 }));
 }
Ejemplo n.º 14
0
 void SelectCoin(WalletViewModel selected)
 {
     selectedCoin        = selected;
     labelBalance.Text   = selected.Balance;
     labelCurrency.Text  = selected.Shortcut;
     amountEntry.Text    = string.Empty;
     toAddressEntry.Text = string.Empty;
 }
Ejemplo n.º 15
0
    public IDisposable SetWallet(WalletViewModel wallet)
    {
        CurrentWallet = wallet;

        SetIsActive(wallet);

        return(new CompositeDisposable(
                   Disposable.Create(() => IsActive = false)));
    }
Ejemplo n.º 16
0
        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
            }));
        }
Ejemplo n.º 18
0
        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));
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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));
        }
Ejemplo n.º 21
0
        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);
            }
        }
Ejemplo n.º 22
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var viewModel = new WalletViewModel();
            var view      = new WalletView();

            view.DataContext = viewModel;
            view.ShowDialog();
        }
Ejemplo n.º 23
0
        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));
        }
Ejemplo n.º 24
0
        public async Task <IActionResult> Index()
        {
            WalletViewModel model = await ReturnWallet();

            if (model != null)
            {
                return(View(model));
            }

            return(View(new WalletViewModel()));
        }
Ejemplo n.º 25
0
        public async Task <ActionResult> GraphData()
        {
            WalletViewModel model = await ReturnWallet();

            if (model != null)
            {
                return(Json(model.Graph.ToList()));
            }

            return(Json(null));
        }
Ejemplo n.º 26
0
 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)
             },
Ejemplo n.º 27
0
        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));
        }
Ejemplo n.º 28
0
        public IActionResult Post([FromBody] WalletViewModel model)
        {
            if (!ModelState.IsValid)
            {
                NotifyModelStateErrors();
                return(Response(model));
            }

            _service.Register(model);

            return(Response(model));
        }
Ejemplo n.º 29
0
        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);
        }
Ejemplo n.º 30
0
        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);
            }
        }