public ActionResult Edit(ClientFeeGroupTransactionFeeVM clientFeeGroupTransactionFeeVM)
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //Get ClientFeeGroup
            TransactionFeeClientFeeGroup transactionFeeClientFeeGroup = new TransactionFeeClientFeeGroup();

            transactionFeeClientFeeGroup = clientFeeGroupTransactionFeeVM.TransactionFeeClientFeeGroup;

            ClientFeeGroup clientFeeGroup = new ClientFeeGroup();

            clientFeeGroup = clientFeeGroupRepository.GetGroup(transactionFeeClientFeeGroup.ClientFeeGroupId);

            //Check Exists
            if (clientFeeGroup == null)
            {
                ViewData["ActionMethod"] = "EditGet1";
                return(View("RecordDoesNotExistError"));
            }
            //Get TransactionFee
            TransactionFee transactionFee = new TransactionFee();

            transactionFee = transactionFeeRepository.GetItem(transactionFeeClientFeeGroup.TransactionFeeId);

            //Check Exists
            if (transactionFee == null)
            {
                ViewData["ActionMethod"] = "EditGet2";
                return(View("RecordDoesNotExistError"));
            }


            //Database Update
            try
            {
                transactionFeeClientFeeGroupRepository.Update(transactionFeeClientFeeGroup, clientFeeGroupTransactionFeeVM.OriginalTransactionFeeId);
            }
            catch (SqlException ex)
            {
                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }

            return(RedirectToAction("List", new { id = transactionFeeClientFeeGroup.ClientFeeGroupId }));
        }
        // GET: Edit A TransactionFeeClientFeeGroup
        public ActionResult Edit(int cid, int tId)
        {
            //Get Item From Database
            TransactionFeeClientFeeGroup transactionFeeClientFeeGroup = new TransactionFeeClientFeeGroup();

            transactionFeeClientFeeGroup = transactionFeeClientFeeGroupRepository.GetItem(cid, tId);

            //Check Exists
            if (transactionFeeClientFeeGroup == null)
            {
                ViewData["ActionMethod"] = "EditGet";
                return(View("RecordDoesNotExistError"));
            }

            ClientFeeGroupTransactionFeeVM clientFeeGroupTransactionFeeVM = new ClientFeeGroupTransactionFeeVM();

            clientFeeGroupTransactionFeeVM.TransactionFeeClientFeeGroup = transactionFeeClientFeeGroup;

            //Get ClientFeeGroup
            ClientFeeGroup clientFeeGroup = new ClientFeeGroup();

            clientFeeGroup = clientFeeGroupRepository.GetGroup(cid);
            clientFeeGroupTransactionFeeVM.ClientFeeGroup           = clientFeeGroup;
            clientFeeGroupTransactionFeeVM.OriginalTransactionFeeId = tId;

            TransactionFee transactionFee = new TransactionFee();

            transactionFee = transactionFeeRepository.GetItem(tId);

            int productId = (int)transactionFee.ProductId;

            transactionFeeClientFeeGroup.ProductId = productId;



            SelectList transactionFeeList = new SelectList(transactionFeeClientFeeGroupRepository.GetUnUsedTransactionFees(cid, productId, transactionFee.TransactionFeeId).ToList(), "TransactionFeeId", "TransactionFeeDescription");

            clientFeeGroupTransactionFeeVM.TransactionFees = transactionFeeList;

            ProductRepository productRepository = new ProductRepository();
            SelectList        productList       = new SelectList(productRepository.GetTransactionFeeProducts().ToList(), "ProductId", "ProductName", productId);

            clientFeeGroupTransactionFeeVM.Products = productList;

            return(View(clientFeeGroupTransactionFeeVM));
        }
        // GET: /Create
        public ActionResult Create(int id)
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //Get ClientFeeGroup
            ClientFeeGroup clientFeeGroup = new ClientFeeGroup();

            clientFeeGroup = clientFeeGroupRepository.GetGroup(id);

            //Check Exists
            if (clientFeeGroup == null)
            {
                ViewData["ActionMethod"] = "ListGet";
                return(View("RecordDoesNotExistError"));
            }

            ClientFeeGroupTransactionFeeVM clientFeeGroupTransactionFeesVM = new ClientFeeGroupTransactionFeeVM();

            clientFeeGroupTransactionFeesVM.ClientFeeGroup = clientFeeGroup;

            TransactionFeeClientFeeGroup transactionFeeClientFeeGroup = new TransactionFeeClientFeeGroup();

            transactionFeeClientFeeGroup.ClientFeeGroupId = id;
            clientFeeGroupTransactionFeesVM.TransactionFeeClientFeeGroup = transactionFeeClientFeeGroup;


            //TransactionFeeRepository transactionFeeRepository = new TransactionFeeRepository();
            //SelectList transactionFeeList = new SelectList(transactionFeeRepository.GetAllItems().ToList(), "TransactionFeeId", "TransactionFeeDescription");
            SelectList transactionFeeList = new SelectList(transactionFeeClientFeeGroupRepository.GetUnUsedTransactionFees(id, 0, 0).ToList(), "TransactionFeeId", "TransactionFeeDescription");

            clientFeeGroupTransactionFeesVM.TransactionFees = transactionFeeList;

            ProductRepository productRepository = new ProductRepository();
            SelectList        productList       = new SelectList(productRepository.GetTransactionFeeProducts().ToList(), "ProductId", "ProductName");

            clientFeeGroupTransactionFeesVM.Products = productList;


            return(View(clientFeeGroupTransactionFeesVM));
        }