public TransactionOperationEventArgs(TransactionItemViewModel transaction) { if (transaction == null) { throw new ArgumentNullException(nameof(transaction)); } Transaction = transaction; }
public void Post([FromBody] TransactionItemViewModel value) { TransactionItem item = new TransactionItem(); item.ProductId = value.ProductId; item.VendingTransactionId = value.VendingTransactionId; item.SalePrice = value.SalePrice; _db.AddTransactionItem(item); }
private IEnumerable <TransactionItemView> Transform(IEnumerable <Transaction> transactions) { var groupsByContact = TransactionItemViewModel.CreateGrouping(transactions); var views = new List <TransactionItemView>(); foreach (var item in groupsByContact) { views.Add(RegisterTransformation(item)); } return(views); }
public ActionResult Create(int?id) { int.TryParse(id.ToString(), out int accountId); var model = new TransactionItemViewModel() { TransactionType = "DEP", AccountId = accountId, DateCreated = DateTime.Now }; return(View(model)); }
private void Items_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.NewItems != null) { var transactions = e.NewItems.OfType <Transaction>(); // looks for ViewItems with an existing Contact { var addingItems_iterator = _groupingItemViews.Where(p => transactions.Any(t => t.Contact.Name == p.ClassId)); foreach (var item in addingItems_iterator) { // sends the Transactions for a specific contact to his view item.AddSubItem(transactions.Where(p => p.Contact.Name == item.ClassId)); } } // looks for transactions with a new registered Contact { var newItems_iterator = transactions.Where(p => !_groupingItemViews.Any(t => t.ClassId == p.Contact.Name)); var views = TransactionItemViewModel.CreateGrouping(newItems_iterator).Select(p => { return(RegisterTransformation(p)); }).ToList(); if (views.Any()) { resumeDashboardGrid.Children.AddVertical(views); } } } if (e.OldItems != null) { foreach (var item in e.OldItems) { var transaction = item as Transaction; var items_iterator = _groupingItemViews.FirstOrDefault(p => p.ClassId == transaction.Contact.Name); items_iterator.RemoveSubItem(transaction); if (items_iterator.IsEmpty) { resumeDashboardGrid.Children.Remove(items_iterator); } } } }
public IActionResult List(int accountId) { var list = new List <TransactionItemViewModel>(); if (accountId > 0) { var items = _transactionService.GetTransactions(accountId); items.ForEach(x => { var entity = new TransactionItemViewModel(); x.CopyTo(entity); list.Add(entity); }); } return(PartialView("TransactionList", list)); }
public IActionResult Index(int?id) { var list = new List <TransactionItemViewModel>(); int.TryParse(id.ToString(), out int accountId); var items = _transactionService.GetTransactions(accountId); items.ForEach(x => { var entity = new TransactionItemViewModel(); x.CopyTo(entity); list.Add(entity); }); var model = new TransactionViewModel() { AccountId = accountId, TransactionList = list }; return(View(model)); }
public async Task <IActionResult> Create(TransactionItemViewModel model) { if (ModelState.IsValid) { TimeSpan ts = new TimeSpan(); var account = _accountService.GetAccount(model.AccountId); var transaction = new Transaction() { TransactionType = model.TransactionType, AccountId = model.AccountId, DateCreated = model.DateCreated, Balance = account?.Balance ?? 0, RowVersion = ts.ToByteArray() }; var recipient = new Transaction(); switch (model.TransactionType) { case "DEP": transaction.Debit = model.Amount; transaction.Balance = transaction.Balance + transaction.Debit; account.Balance = transaction.Balance; break; case "WIT": transaction.Credit = model.Amount; transaction.Balance = transaction.Balance - transaction.Credit; account.Balance = transaction.Balance; break; case "TOA": case "TSA": transaction.Credit = model.Amount; transaction.ToAccountId = model.ToAccountId; var recipientAccount = _accountService.GetAccount(model.ToAccountId); recipient.AccountId = transaction.ToAccountId; recipient.TransactionType = "TRF"; recipient.Debit = model.Amount; recipient.ToAccountId = model.AccountId; recipient.DateCreated = DateTime.Now; recipient.Balance = recipientAccount.Balance + model.Amount; _accountService.UpdateAccount(recipientAccount); _transactionService.CreateTransaction(recipient); break; default: break; } _transactionService.CreateTransaction(transaction); _accountService.UpdateAccount(account); return(RedirectToAction("Index", new RouteValueDictionary(new { id = model.AccountId }))); } return(View(model)); }
protected override async void OnStartup(StartupEventArgs e) { var appId = Marshal.GetTypeLibGuidForAssembly(Assembly.GetExecutingAssembly()).ToString(); _appMutex = new Mutex(initiallyOwned: true, name: appId, createdNew: out _isOwner); if (!_isOwner) { MessageBox.Show("The application is already running."); Current.Shutdown(); return; } XmlConfigurator.Configure(); base.OnStartup(e); _dbFile = ConfigurationManager.ConnectionStrings["HomeBankConnection"].ConnectionString; _sessionFactoryProvider = new SessionFactoryProvider(_dbFile); _sessionProvider = new SessionProvider(_sessionFactoryProvider); _unitOfWorkFactory = new UnitOfWorkFactory(_sessionProvider); _categoryRepository = new SqliteCategoryRepository(_sessionProvider); _transactionRepository = new SqliteTransactionRepository(_sessionProvider); _statisticService = new StatisticService(_transactionRepository); _communalCalculator = new CommunalCalculator(_communalSettings); var categoryItemViewModel = new CategoryItemViewModel(_eventBus); var categoryViewModel = await CategoryViewModel.CreateAsync( _eventBus, _yesNoDialogServiceFactory, _errorDialogServiceFactory, _unitOfWorkFactory, _categoryRepository); var transactionItemViewModel = new TransactionItemViewModel(_eventBus, _transactionRepository, categoryViewModel.Categories); var transactionViewModel = await TransactionViewModel.CreateAsync( _eventBus, _yesNoDialogServiceFactory, _unitOfWorkFactory, _categoryRepository, _transactionRepository); var statisticViewModel = await StatisticViewModel.CreateAsync(_eventBus, _statisticService); statisticViewModel.Type = CategoryTypeFilter.All; statisticViewModel.StartDate = DateTime.Now; statisticViewModel.EndDate = DateTime.Now; var communalViewModel = new CommunalViewModel(_eventBus, _communalCalculator); var settingsViewModel = new SettingsViewModel(_eventBus, _communalSettings); var childrenViewModels = new ViewModel[] { transactionViewModel, categoryViewModel, statisticViewModel, communalViewModel, settingsViewModel, categoryItemViewModel, transactionItemViewModel }; if (_mainView == null) { _mainViewModel = new MainViewModel( _eventBus, childrenViewModels, _categoryRepository, _transactionRepository); transactionViewModel.Type = CategoryTypeFilter.All; transactionViewModel.StartDate = DateTime.Now; transactionViewModel.EndDate = DateTime.Now; _mainView = new MainView(_mainViewModel); _mainView.Show(); } HandleExceptions(); }