public IActionResult UpdateContract(Contract contract, Contract original)
        {
            var CustomerItems = repository.CustomerList();

            ViewData["CustomerItems"] = CustomerItems;

            /*
             * Für den Vertrag habe ich festgelegt das Sonderfälle berücksichtigt werden bei denen EK oder VK 0 Euro betragen.
             * Negative Werte für EK und VK sollen nicht erlaubt sein. In allen Fällen darf der EK nicht größer als VK sein.
             */
            decimal PurchasePriceValue;
            decimal RetailPriceValue;

            DateTime startdateValue = new DateTime();
            DateTime enddateValue   = new DateTime();

            if (ParseStringToDecimal(contract.StrPurchasePrice, out PurchasePriceValue))
            {
                contract.PurchasePrice = PurchasePriceValue;
            }
            else
            {
                ModelState.AddModelError(nameof(contract.StrPurchasePrice), "Hier ist nur ein Zahlenwert erlaubt!");
            }

            if (ParseStringToDecimal(contract.StrRetailPrice, out RetailPriceValue))
            {
                contract.RetailPrice = RetailPriceValue;
            }
            else
            {
                ModelState.AddModelError(nameof(contract.StrRetailPrice), "Hier ist nur ein Zahlenwert erlaubt!");
            }

            if (string.IsNullOrEmpty(contract.StrStartdate))
            {
                ModelState.AddModelError(nameof(contract.StrStartdate), "Der Vertrag benötigt ein Startdatum!");
            }
            else if (ParseStringToDate(contract.StrStartdate, out startdateValue))
            {
                contract.Startdate = startdateValue;
            }
            else
            {
                ModelState.AddModelError(nameof(contract.StrStartdate), "Fehler: Datumsfeld (dd.mm.yyyy)");
            }

            if (ParseStringToDate(contract.StrEnddate, out enddateValue))
            {
                contract.Enddate = enddateValue;
            }
            else
            {
                ModelState.AddModelError(nameof(contract.StrEnddate), "Fehler: Datumsfeld (dd.mm.yyyy)");
            }

            if (PurchasePriceValue < 0M)
            {
                ModelState.AddModelError(nameof(contract.StrPurchasePrice), "Einkaufspreis muss Null oder größer Null sein!");
            }
            if (RetailPriceValue < 0M)
            {
                ModelState.AddModelError(nameof(contract.StrRetailPrice), "Verkaufspreis muss Null oder größer Null sein!");
            }
            if (PurchasePriceValue > 0M && RetailPriceValue > 0M && PurchasePriceValue > RetailPriceValue)
            {
                ModelState.AddModelError(nameof(contract.StrPurchasePrice), "Einkaufspreis muss höher oder gleich dem Verkaufspreis sein!");
            }

            if (startdateValue > enddateValue)
            {
                ModelState.AddModelError(nameof(contract.StrEnddate), "Endedatum muss nach dem Startdatum liegen!");
            }

            if (ModelState.GetValidationState(nameof(contract.StrStartdate)) == ModelValidationState.Valid &&
                ModelState.GetValidationState(nameof(contract.StrEnddate)) == ModelValidationState.Valid &&
                ModelState.GetValidationState(nameof(contract.StrPurchasePrice)) == ModelValidationState.Valid &&
                ModelState.GetValidationState(nameof(contract.StrRetailPrice)) == ModelValidationState.Valid)
            {
                if (contract.ContractId == 0)
                {
                    repository.AddContract(contract);
                }
                else
                {
                    repository.UpdateContract(contract, original);
                }
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(View("EditContract", original));
            }
        }