public AccountListViewModel(IAccountRepository accountRepository,
            IPaymentRepository paymentRepository,
            IDialogService dialogService,
            INavigationService navigationService)
        {
            this.accountRepository = accountRepository;
            this.dialogService = dialogService;
            this.navigationService = navigationService;

            BalanceViewModel = new BalanceViewModel(accountRepository, paymentRepository);
        }
Пример #2
0
        public void GetTotalBalance_Zero()
        {
            var balanceCalculationService = new Mock <IBalanceCalculationService>();

            balanceCalculationService.Setup(x => x.GetEndOfMonthBalanceForAccount(It.IsAny <AccountViewModel>())).Returns(() => 0);
            balanceCalculationService.Setup(x => x.GetTotalEndOfMonthBalance()).ReturnsAsync(() => 0);

            var vm = new BalanceViewModel(balanceCalculationService.Object,
                                          new Mock <IMvxLogProvider>().Object,
                                          new Mock <IMvxNavigationService>().Object);

            vm.UpdateBalanceCommand.Execute();

            vm.TotalBalance.ShouldEqual(0);
            vm.EndOfMonthBalance.ShouldEqual(0);
        }
        public BalancePage()
        {
            InitializeComponent();
            BindingContext = new BalanceViewModel(this);

            if (DeviceInfo.Platform == DevicePlatform.UWP)
            {
                btnRefresh.IsVisible = true;
            }
            else
            {
                btnRefresh.IsVisible = false;
            }

            lvBalance.ItemTapped += LvBalance_ItemTapped;
        }
Пример #4
0
        public ActionResult SetBalance(string userId, string iban)
        {
            BalanceViewModel model = new BalanceViewModel();
            var user = db.Users.Where(m => m.Id.Equals(userId)).FirstOrDefault();

            if (user != null)
            {
                var account = db.Accounts.Where(m => m.Iban.Equals(iban)).FirstOrDefault();
                model.Balance  = 0;
                model.UserName = user.NameIdentifier;
                model.Iban     = account.Iban;
                model.UserId   = user.Id;
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
Пример #5
0
        /// <summary>
        /// Fixing balance
        /// </summary>
        /// <param name="balance">Instance with info ablout fixing.</param>
        /// <returns>Added data</returns>
        public BalanceViewModel AddNewBalance(BalanceViewModel balance)
        {
            if (IsFinOpsInBalanceDay(balance))
            {
                throw new BusinessLogicException(ErrorMessages.AddNewBalanceMessageReject);
            }
            decimal amount = _unitOfWork.OrganizationAccountRepository.Read(balance.OrgAccountId).CurrentBalance;

            balance.Amount = amount;
            var addedBalanceEntity = _unitOfWork.BalanceRepository.Add(balance);

            _unitOfWork.SaveChanges();
            BalanceViewModel addedBalanceViewModel = ConvertToBalanceViewModel(addedBalanceEntity);

            return(addedBalanceViewModel);
        }
Пример #6
0
        public AccountListViewModel(IMediator mediator,
                                    IMapper mapper,
                                    IBalanceCalculationService balanceCalculationService,
                                    IDialogService dialogService,
                                    ISettingsFacade settingsFacade,
                                    NavigationService navigationService)
        {
            this.mediator          = mediator;
            this.mapper            = mapper;
            this.dialogService     = dialogService;
            this.navigationService = navigationService;
            this.settingsFacade    = settingsFacade;

            BalanceViewModel    = new BalanceViewModel(balanceCalculationService);
            ViewActionViewModel = new AccountListViewActionViewModel(this.navigationService);
        }
Пример #7
0
        public IEnumerable <BalanceViewModel> GetBalanceViewModel(Guid jobOrderId, DateTime dateFrom, DateTime dateTo, BalanceViewModel.Scale scale)
        {
            var model = new List <BalanceViewModel>();
            var step  = scale == BalanceViewModel.Scale.Weekly ? 7 : 1;

            foreach (DateTime day in EachDay(dateFrom, dateTo, step))
            {
                var jobOrder = Repository.GetById <Merp.Accountancy.CommandStack.Model.JobOrder, All_JobOrders>(jobOrderId);
                var balance  = new BalanceViewModel()
                {
                    Date    = day,
                    Balance = jobOrder.CalculateBalance(EventStore, day)
                };
                model.Add(balance);
            }
            return(model);
        }
Пример #8
0
        public async Task <IActionResult> Index()
        {
            var user = await GetUser(required : true);

            //TODO: move this to a ViaRpcProvider in /Services (like IWalletProvider)
            var via      = new ViaJsonRpc(_settings.AccessHttpUrl);
            var balances = Utils.GetUsedBalances(_settings, via, user.Exchange);

            var model = new BalanceViewModel
            {
                User          = user,
                AssetSettings = _settings.Assets,
                Balances      = balances
            };

            return(View(model));
        }
Пример #9
0
        public async Task <IActionResult> Create(BalanceViewModel balanceViewModel)
        {
            if (ModelState.IsValid)
            {
                var accessToken = await HttpContext.GetTokenAsync("access_token");

                BalanceJsonModel balanceJsonModel = _mapper.Map <BalanceViewModel,
                                                                 BalanceJsonModel>(balanceViewModel);

                var result = await _balanceRepository.CreateBalance
                                 ("https://localhost:44382/Balance/Create", accessToken, balanceJsonModel);

                if (result.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index", "Balance"));
                }
            }
            return(View(balanceViewModel));
        }
Пример #10
0
        public ActionResult Index()
        {
            var loggedUser = IsValidUser();

            if (loggedUser != null)
            {
                var account          = _accountService.Balance(loggedUser.Accounts.FirstOrDefault().Id);
                var balanceViewModel = new BalanceViewModel
                {
                    CardNumber = loggedUser.AtmCard.Number,
                    Date       = DateTime.Now,
                    Amount     = account.Amount
                };

                return(View(balanceViewModel));
            }

            return(View("Error"));
        }
Пример #11
0
        public ExchangeViewModel(MainViewModel mainViewModel, ExchangeBase exchangeBase)
            : base(exchangeBase)
        {
            Pairs = new PairManageViewModel(exchangeBase);
            this.MainViewModel = mainViewModel;
            this.Header        = Exchange.Name;
            //this.Foreground = Brushes.DodgerBlue;

            MainViewModel.TimerSeconds.Tick += TimerSecondsOnTick;


            Orders    = new UserOrdersViewModel(Exchange);
            Ticker    = new TickerViewModel(Exchange);
            OrderBook = new OrderBookViewModel(Exchange);

            Trades = new TradesViewModel(MainViewModel, this, Exchange);

            Balance     = new BalanceViewModel(Exchange);
            NewBuyOrder = new NewOrderViewModel(Exchange)
            {
                Side = OrderSide.Buy
            };
            NewSellOrder = new NewOrderViewModel(Exchange)
            {
                Side = OrderSide.Sell
            };

            if (!DesignerProperties.GetIsInDesignMode(new DependencyObject()))
            {
                UpdatePair();
                //Exchange.ExchangeManager.Settings.
                MainViewModel.SettingsService.SettingsLoaded += SettingsServiceOnSettingsLoaded;
                Pairs.PairChanged += PairsOnPairChanged;
                OrderBook.Ticker.LastTradeClickEvent += TickerOnLastTradeClickEvent;
                OrderBook.SelectedAskChanged         += OrderBookOnSelectedAskChanged;
                OrderBook.SelectedBidChanged         += OrderBookOnSelectedBidChanged;
                Balance.SelectedBalanceChanged       += BalanceOnSelectedBalanceChanged;
                CreateTimer();
                UpdateViewModels();
                RegisterUpdates();
                Ticker.Dispatched += TickerOnDispatched;
            }
        }
Пример #12
0
        public IEnumerable <BalanceViewModel> GetBalanceViewModel(Guid jobOrderId, DateTime dateFrom, DateTime dateTo, BalanceViewModel.Scale scale)
        {
            DateTime[] dates = null;
            switch (scale)
            {
            case BalanceViewModel.Scale.Daily:
            case BalanceViewModel.Scale.Weekly:
                var step = scale == BalanceViewModel.Scale.Weekly ? 7 : 1;
                dates = EachDay(dateFrom, dateTo, step).ToArray();
                break;

            case BalanceViewModel.Scale.Monthly:
                dates = EachMonth(dateFrom, dateTo).ToArray();
                break;

            case BalanceViewModel.Scale.Quarterly:
                dates = EachQuarter(dateFrom, dateTo).ToArray();
                break;

            case BalanceViewModel.Scale.Yearly:
                dates = EachYear(dateFrom, dateTo).ToArray();
                break;
            }
            var isTimeAndMaterial = (from jo in Database.JobOrders
                                     where jo.OriginalId == jobOrderId
                                     select jo.IsTimeAndMaterial).Single();

            Merp.Accountancy.CommandStack.Model.JobOrder[] jobOrders = null;
            jobOrders = Repository.GetSeriesById <Merp.Accountancy.CommandStack.Model.JobOrder>(jobOrderId, dates);
            var model = new List <BalanceViewModel>();

            for (int i = 0; i < dates.Count(); i++)
            {
                var balance = new BalanceViewModel()
                {
                    Date    = dates[i],
                    Balance = jobOrders[i].Balance
                };
                model.Add(balance);
            }
            return(model);
        }
Пример #13
0
        public void GetTotalBalance_TwoAccounts_SumOfAccounts()
        {
            var accountMockSetup = new Mock <IAccountRepository>();

            accountMockSetup.Setup(x => x.GetList(null)).Returns(() => new List <AccountViewModel>
            {
                new AccountViewModel {
                    CurrentBalance = 500
                },
                new AccountViewModel {
                    CurrentBalance = 200
                }
            });

            var vm = new BalanceViewModel(accountMockSetup.Object, new Mock <IEndOfMonthManager>().Object);

            vm.UpdateBalanceCommand.Execute();

            vm.TotalBalance.ShouldBe(700);
        }
Пример #14
0
        public ActionResult AddBalance(BalanceViewModel model)
        {
            _logger.Information("Action: AddBalance; Controller: Account; Call method: POST;");
            try
            {
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction("Balance"));
                }

                _accountService.AddSumToBalance(model.AddSum, User.Identity.Name);

                return(RedirectToAction("Balance"));
            }
            catch (Exception e)
            {
                LogException(e);

                return(RedirectToAction("Index", "Error", new { exceptionType = e.GetType().Name }));
            }
        }
        public void GetTotalBalance_TwoAccounts_SumOfAccounts()
        {
            var accountMockSetup = new Mock <IAccountRepository>();

            accountMockSetup.Setup(x => x.GetList(It.IsAny <Expression <Func <AccountViewModel, bool> > >()))
            .Returns(() => new List <AccountViewModel>
            {
                new AccountViewModel {
                    CurrentBalance = 500, IsExcluded = false
                },
                new AccountViewModel {
                    CurrentBalance = 200, IsExcluded = false
                }
            });

            var vm = new BalanceViewModel(accountMockSetup.Object, new Mock <IEndOfMonthManager>().Object);

            vm.UpdateBalanceCommand.Execute();

            vm.TotalBalance.ShouldBe(700);
        }
Пример #16
0
        public void GetTotalBalance_TwoPayments_SumOfPayments()
        {
            var paymentMockSetup = new Mock <IPaymentRepository>();

            paymentMockSetup.Setup(x => x.GetUnclearedPayments(It.IsAny <DateTime>()))
            .Returns(() => new List <Payment> {
                new Payment {
                    Amount = 20, Type = (int)PaymentType.Expense
                },
                new Payment {
                    Amount = 60, Type = (int)PaymentType.Income
                }
            });

            var vm = new BalanceViewModel(new Mock <IAccountRepository>().Object,
                                          paymentMockSetup.Object);

            vm.UpdateBalanceCommand.Execute();

            vm.TotalBalance.ShouldBe(0);
            vm.EndOfMonthBalance.ShouldBe(40);
        }
Пример #17
0
        public void GetTotalBalance_TwoExpense_SumOfPayments()
        {
            var paymentMockSetup = new Mock <IPaymentRepository>();

            paymentMockSetup.Setup(x => x.GetList(It.IsAny <Expression <Func <Payment, bool> > >()))
            .Returns(() => new List <Payment>
            {
                new Payment {
                    Amount = 20, Type = (int)PaymentType.Expense
                },
                new Payment {
                    Amount = 60, Type = (int)PaymentType.Expense
                }
            });

            var vm = new BalanceViewModel(new Mock <IAccountRepository>().Object, paymentMockSetup.Object);

            vm.UpdateBalanceCommand.Execute();

            vm.TotalBalance.ShouldBe(0);
            vm.EndOfMonthBalance.ShouldBe(-80);
        }
Пример #18
0
        public async Task <BalanceViewModel> SyncBankAccountBalanceAsync(Guid userId, Guid id)
        {
            BalanceViewModel balanceViewModel;
            Balance          balance = await _balanceRepository.GetByIdAsync(userId, id);

            BankAccountBalance bankAccountBalance = await _bankAccountService.GetBankAccountBalanceAsync(userId, balance.AssetId);

            if (bankAccountBalance != null)
            {
                Balance updatedBalance = await _balanceRepository.UpdateAsync(userId, id, balance.AssetId, bankAccountBalance.Balance);

                balanceViewModel = new BalanceViewModel(updatedBalance);
            }
            else
            {
                balanceViewModel = new BalanceViewModel(balance);
            }

            await _unitOfWork.SaveChangesAsync();

            return(balanceViewModel);
        }
        internal Task AddCost(CostViewModel newCost)
        {
            return(Task.Factory.StartNew(() =>
            {
                App.RunUIAsync(() =>
                {
                    Costs.Insert(0, newCost);
                });

                BalanceViewModel currentBalance = Accounts.Balances.FirstOrDefault(b => b.Id == newCost.BalanceId);

                if (currentBalance != null)
                {
                    currentBalance.AddCost(newCost.Cost);
                    DbWorker.UpdateBalance(currentBalance.Model);
                }

                DbWorker.AddCost(newCost.Model);

                Accounts.RaiseBalance();
            }));
        }
Пример #20
0
        private async Task <List <BalanceViewModel> > AddAssetsBalancesAsync(Guid userId, DateTime effectiveDate)
        {
            List <BalanceViewModel> result       = new List <BalanceViewModel>();
            IEnumerable <Asset>     activeAssets = await _assetRepository.GetByUserIdAsync(userId, false);

            if (!activeAssets.Any())
            {
                throw new UserHasNoAssetsException();
            }

            foreach (Asset asset in activeAssets)
            {
                Balance newBalance = await _balanceRepository.CreateAsync(userId, asset.Id, effectiveDate, 0.0M);

                var assetModel   = new AssetViewModel(asset);
                var balanceModel = new BalanceViewModel(newBalance, assetModel);
                result.Add(balanceModel);
            }

            await _unitOfWork.SaveChangesAsync();

            return(result);
        }
        internal Task UpdateCost(CostViewModel updateCost)
        {
            return(Task.Factory.StartNew(() =>
            {
                updateCost.Update();

                if (updateCost.HavePrevCost)
                {
                    //TODO: o(n) - bad
                    BalanceViewModel currentBalance = Accounts.Balances.FirstOrDefault(b => b.Id == updateCost.BalanceId);

                    if (currentBalance != null)
                    {
                        currentBalance.ChanngeBalance(DbWorker.GetCost(updateCost.Id).Cost);
                        currentBalance.AddCost(updateCost.Cost);
                        DbWorker.UpdateBalance(currentBalance.Model);
                    }
                    updateCost.HavePrevCost = false;
                }

                DbWorker.UpdateCost(updateCost.Model);
            }));
        }
Пример #22
0
 public async Task WhenIAddNewBalance()
 {
     _createdBalance = await _balanceFeatureContext.BalanceService
                       .AddBalanceAsync(_userContext.UserId, _balanceCreateModel);
 }
        private static BalanceViewModel GetBalancesResponse(string exchangeId, string formObject)
        {
            JObject          jsonResult = JObject.Parse(formObject);
            BalanceViewModel balances   = null;
            var balanceDetailsList      = new List <BalanceDetailViewModel>();

            if (exchangeId == "0")
            {
                var balancesJson = jsonResult["result"];

                balanceDetailsList = JsonConvert.DeserializeObject <List <BalanceDetailViewModel> >(balancesJson.ToString());
            }
            else if (exchangeId == "1")
            {
                var balancesJson = jsonResult["balances"];

                foreach (var detail in balancesJson)
                {
                    var totalBalance = Double.Parse(detail["free"].ToString()) + Double.Parse(detail["locked"].ToString());

                    if (totalBalance == 0)
                    {
                        continue;
                    }

                    balanceDetailsList.Add(
                        new BalanceDetailViewModel
                    {
                        currency  = detail["asset"].ToString(),
                        balance   = String.Format("{0:F8}", totalBalance),
                        available = detail["free"].ToString(),
                        pending   = detail["locked"].ToString()
                    }
                        );
                }
            }
            else if (exchangeId == "2")
            {
                var balancesJson = jsonResult["result"];
                var obj          = JObject.Parse(balancesJson.ToString());


                foreach (var asset in obj)
                {
                    balanceDetailsList.Add(
                        new BalanceDetailViewModel
                    {
                        currency = asset.Key.Substring(1),
                        balance  = String.Format("{0:F8}", asset.Value.ToString()),

                        /*available = detail["free"].ToString(),
                         * pending = detail["locked"].ToString()*/
                    }
                        );
                }
            }
            else if (exchangeId == "3")
            {
                var balancesJson = jsonResult;


                foreach (var detail in balancesJson)
                {
                    if (Double.Parse(detail.Value.ToString()) == 0)
                    {
                        continue;
                    }

                    if (detail.Key.Contains("available", StringComparison.InvariantCulture))
                    {
                        var key   = detail.Key.Substring(0, 3);
                        var asset = balanceDetailsList.Where(c => c.currency == key).SingleOrDefault();
                        if (asset == null)
                        {
                            balanceDetailsList.Add(new BalanceDetailViewModel
                            {
                                currency = key,
                                balance  = "0",

                                available = detail.Value.ToString(),
                                pending   = "0"
                            });
                        }
                        else
                        {
                            asset.available = detail.Value.ToString();
                        }
                    }
                    else if (detail.Key.Contains("balance", StringComparison.InvariantCulture))
                    {
                        var key   = detail.Key.Substring(0, 3);
                        var asset = balanceDetailsList.Where(c => c.currency == key).SingleOrDefault();
                        if (asset == null)
                        {
                            balanceDetailsList.Add(new BalanceDetailViewModel
                            {
                                currency  = key,
                                balance   = detail.Value.ToString(),
                                available = "0",
                                pending   = "0",
                            });
                        }
                        else
                        {
                            asset.balance = detail.Value.ToString();
                        }
                    }
                    else if (detail.Key.Contains("reserved"))
                    {
                        var key   = detail.Key.Substring(0, 3);
                        var asset = balanceDetailsList.Where(c => c.currency == key).SingleOrDefault();
                        if (asset == null)
                        {
                            balanceDetailsList.Add(new BalanceDetailViewModel
                            {
                                currency  = key,
                                balance   = "0",
                                available = "0",
                                pending   = detail.Value.ToString()
                            });
                        }
                        else
                        {
                            asset.pending = detail.Value.ToString();
                        }
                    }

                    /*balanceDetailsList.Add(
                     *  new BalanceDetailViewModel
                     *  {
                     *      currency = detail["detail"].ToString(),
                     *      balance = detail[1].ToString(),
                     *      available = detail[2].ToString(),
                     *      pending = detail[3].ToString()
                     *  }
                     *  );*/
                }
            }
            else if (exchangeId == "4")
            {
                var balancesJson = jsonResult["result"];
                var obj          = JObject.Parse(balancesJson.ToString());


                foreach (var asset in obj)
                {
                    balanceDetailsList.Add(
                        new BalanceDetailViewModel
                    {
                        currency = asset.Key.Substring(1),
                        balance  = String.Format("{0:F8}", asset.Value.ToString()),

                        /*available = detail["free"].ToString(),
                         * pending = detail["locked"].ToString()*/
                    }
                        );
                }
            }



            balances = new BalanceViewModel
            {
                pairs = balanceDetailsList
            };

            return(balances);
        }
Пример #24
0
 public async Task <IActionResult> CreateBalance([FromBody] BalanceViewModel <int> Balance)
 {
     return(await _BalancesControllerProxy.CreateBalance(Balance));
 }
Пример #25
0
        public EditBalanceWindow(BalanceViewModel balanceModelView)
        {
            InitializeComponent();

            BalanceMV = balanceModelView;
        }
 public Numeros()
 {
     balancePageViewModel = new BalanceViewModel();
     InitializeComponent();
     this.BindingContext = balancePageViewModel;
 }
Пример #27
0
        public Balance()
        {
            InitializeComponent();

            DataContext = new BalanceViewModel();
        }
Пример #28
0
        public void CalculateTotals()
        {
            BalanceViewModels = new ObservableCollection <BalanceViewModel>();
            decimal debitbalance  = 0;
            decimal creditbalance = 0;
            var     balance       = 0m;
            string  suffix        = "";

            debitbalance = Ledgergenerals.Where(b => b.LedgerAccountId == SelectedLedgerAccount.LedgerAccountId)
                           .Where(b => b.JournalEntryDate.Date <= ToDate).Sum(b => b.Debit);
            creditbalance = Ledgergenerals.Where(b => b.LedgerAccountId == SelectedLedgerAccount.LedgerAccountId)
                            .Where(b => b.JournalEntryDate.Date <= ToDate).Sum(b => b.Credit);

            var debitbalancetotal = Ledgergenerals.Where(b => b.LedgerAccountId == SelectedLedgerAccount.LedgerAccountId)
                                    .Sum(b => b.Debit);
            var creditbalancetotal = Ledgergenerals.Where(b => b.LedgerAccountId == SelectedLedgerAccount.LedgerAccountId)
                                     .Sum(b => b.Credit);

            if (debitbalance > creditbalance)
            {
                balance = debitbalance - creditbalance;
                suffix  = "Dr";
            }
            if (debitbalance < creditbalance)
            {
                balance = creditbalance - debitbalance;
                suffix  = "Cr";
            }
            var balancetotal = 0m;

            if (debitbalancetotal > creditbalancetotal)
            {
                balancetotal = debitbalancetotal;
            }
            if (debitbalancetotal < creditbalancetotal)
            {
                balancetotal = creditbalancetotal;
            }
            BalanceViewModel balancevm1 = new BalanceViewModel
            {
                BalanceId   = 1,
                TotalString = "Total             " + balancetotal.ToString("C")
            };
            BalanceViewModel balancevm2 = new BalanceViewModel
            {
                BalanceId = 2,

                TotalString = " Balance C/D      " + balance.ToString("C") + suffix
            };

            BalanceViewModels.Add(balancevm1);
            BalanceViewModels.Add(balancevm2);
            if (BalanceViewModels.Count() > 0)
            {
                IsBalanceAvailable = true;
            }
            else
            {
                IsBalanceAvailable = false;
            }
        }
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     _balance = e.Parameter as BalanceViewModel;
 }
Пример #30
0
 public async Task <IActionResult> Update(BalanceViewModel balanceViewModel)
 {
     return(View(balanceViewModel));
 }
Пример #31
0
        private bool IsFinOpsInBalanceDay(BalanceViewModel balance)
        {
            var finops = _unitOfWork.FinOpRepository.GetFinOpByOrgAccount(balance.OrgAccountId);

            return(finops.Where(x => x.FinOpDate.Date >= balance.BalanceDate.Date).Any());
        }