public ActionResult Create(int accountTransactionAccountClassificationID, string accountTransactionAccountClassificationTitle)
        {
            AccountingTransactionAccountViewModel accountingTransactionAccountViewModel = new AccountingTransactionAccountViewModel();

            AccountingTransactionAccount accountingTransactionAccount = new AccountingTransactionAccount();
            accountingTransactionAccount.AccountTransactionAccountClassificationID = accountTransactionAccountClassificationID;

            AccountingTransactionAccountClassification accountingTransactionAccountClassification = new AccountingTransactionAccountClassification();
            accountingTransactionAccountClassification.Title = accountTransactionAccountClassificationTitle;

            accountingTransactionAccount.AccountTransactionAccountClassificationID = accountTransactionAccountClassificationID;
            accountingTransactionAccount.AccountingTransactionAccountClassification = accountingTransactionAccountClassification;
            accountingTransactionAccount.Active = true;

            accountingTransactionAccountViewModel.AccountingTransactionAccount = accountingTransactionAccount;

            return View(SetupAccountingTransactionAccountViewModel(accountingTransactionAccountViewModel));
        }
        public ActionResult Create(AccountingTransactionAccountViewModel accountingTransactionAccountViewModel)
        {
            if (ModelState.IsValid)
            {
                AccountingTransactionAccount accountingTransactionAccount = new AccountingTransactionAccount();
                accountingTransactionAccount = accountingTransactionAccountViewModel.AccountingTransactionAccount;

                accountingTransactionAccount.AccountingTransactionAccountClassification = null;

                SetupTagInfosForAccount(ref accountingTransactionAccount, accountingTransactionAccountViewModel);

               // TrySetupDonationAccountingTransactionAccount(accountingTransactionAccount, accountingTransactionAccountViewModel);

                unitOfWork.AccountingTransactionAccountRepository.Insert(accountingTransactionAccount);
                unitOfWork.Save();

                return RedirectToAction("Index");
            }

            return View(SetupAccountingTransactionAccountViewModel(accountingTransactionAccountViewModel));
        }
        private void SetupTagInfosForAccount(ref AccountingTransactionAccount accountingTransactionAccount, AccountingTransactionAccountViewModel accountingTransactionAccountViewModel)
        {
            int[] selectedTags = accountingTransactionAccountViewModel.AvailableTags.Where(x => x.Selected).Select(x => Convert.ToInt32(x.Value)).ToArray<int>();

            IEnumerable<TagInfo> selectedTagInfos = unitOfWork.TagInfoRepository.Get(x => selectedTags.Contains(x.TagInfoID)).ToArray();

            accountingTransactionAccount.TagInfoes.Clear();

            foreach (var selectedTagInfo in selectedTagInfos)
            {
                accountingTransactionAccount.TagInfoes.Add(selectedTagInfo);
            }
        }