public ActionResult Edit(PaymentVoucher model)
        {
            var vouchers = new PaymentVoucherRepository();
            model.PreparedBy = UserRepository.CurrentUserName;

            if (ModelState.IsValid)
            {
                vouchers.Update(model);
                return RedirectToAction("Index", new { ProjectID = model.ProjectID });
            }
            else
            {
                var v = vouchers.Get(model.ID);
                model.Project = v.Project;
                return View("Edit", model);
            }
        }
        public void PaymentVoucherRepository_Update_ShouldSaveNewEntries()
        {
            //Create test voucher
            var voucher = createTestVoucher();
            var vouchers = new PaymentVoucherRepository();

            //Create a few entries
            var entries = new List<PaymentVoucherEntry>();
            for (int i = 0; i < 10; i++)
            {
                var entry = createTestVoucherEntry(voucher.ID);
                entries.Add(entry);
            }

            //save it
            voucher.Entries = entries;
            vouchers.Create(voucher);

            //query it back out
            var newFoundVoucher = vouchers.Get(voucher.ID);

            //Create new entries
            entries = new List<PaymentVoucherEntry>();
            for (int i = 0; i < 10; i++)
            {
                var entry = createTestVoucherEntry(newFoundVoucher.ID);
                entries.Add(entry);
            }

            //save it
            newFoundVoucher.Entries = entries;
            vouchers.Update(newFoundVoucher);

            //query it back out. again to check for Updates
            newFoundVoucher = vouchers.Get(voucher.ID);

            Assert.IsNotNull(newFoundVoucher);
            Assert.IsNotNull(newFoundVoucher.Entries);
            Assert.AreEqual(PaymentVoucher.NumberOfEntriesInAVoucher, newFoundVoucher.Entries.Count);
        }