public void InsertOrUpdate(UurRegistratie uurregistratie)
 {
     if (uurregistratie.Id == default(int)) {
         // New entity
         context.UurRegistraties.Add(uurregistratie);
     } else {
         // Existing entity
         context.Entry(uurregistratie).State = EntityState.Modified;
     }
 }
        public void Nieuw(int gebruikerKlantId, UurRegistratie uurRegistratie)
        {
            GebruikerKlant gebruikerKlant = uow.GebruikerKlantRepository.Find(gebruikerKlantId);

            if (gebruikerKlant != null && uurRegistratie != null)
            {
                gebruikerKlant.UurRegistraties.Add(uurRegistratie);
                uow.saveChanges();
            }
            else
            {
                throw new Exception("Ongeldige operatie: geen gebruikerklant gespecifieerd en/of ongeldige uurregistratie");
            }
        }
 public UurRegistratieDetailViewModel(string gebruiker, string klant, string departement, UurRegistratie uurRegistratie, bool gefactureerd)
 {
     Gebruiker = gebruiker;
     Klant = klant;
     Departement = departement;
     UurRegistratie = uurRegistratie;
     UurRegistratieTitel = uurRegistratie.Titel;
     Gefactureerd = gefactureerd;  
 }
        public void Delete(UurRegistratie uurRegistratie)
        {
            if (uurRegistratie == null)
            {
                throw new NullReferenceException("Geen uurregistratie geselecteerd");
            }
            UurRegistratie dbVersie = uow.UurRegistratieRepository.Find(uurRegistratie.Id);
            uurRegistratie = null;
            
            if (dbVersie.isGefactureerd())
            {
                throw new InvalidOperationException("Deze uurregistratie kan niet verwijderd worden omdat er reeds factuurgegevens aan gekoppeld zijn");
            }

            uow.UurRegistratieRepository.Delete(dbVersie.Id);
            uow.saveChanges();
        }
        public void Update(UurRegistratie uurRegistratie) {
            if (uurRegistratie != null)
            {
                UurRegistratie dbVersie = uow.UurRegistratieRepository.Find(uurRegistratie.Id);
                if (dbVersie.isGefactureerd())
                {
                    throw new InvalidOperationException("Kan deze uurregistratie niet aanpassen omdat ze reeds gefactureerd is");
                }

                dbVersie.Titel = uurRegistratie.Titel;
                dbVersie.Omschrijving = uurRegistratie.Omschrijving;
                uurRegistratie = null;

                uow.UurRegistratieRepository.InsertOrUpdate(dbVersie);
                uow.saveChanges();
            } else
            {
                throw new NullReferenceException("Geen uurregistratie geselecteerd");
            }
        }
 public JsonResult Delete(UurRegistratie uurRegistratie)
 {            
     try
     {
         uurRegistratieService.Delete(uurRegistratie);
         return Json(new { Result = "OK" });
     }
     catch (Exception ex)
     {
         return Json(new { Result = "ERROR", Message = "Kon uurregistratie niet verwijderen: " + ex.Message });
     }
 }
 public JsonResult Update(UurRegistratie uurRegistratie)
 {
     if (!ModelState.IsValid)
     {
         return Json(new { Result = "ERROR", Message = "Kon uurregistratie niet aanpassen: ongeldige waarde" });
     }
     try
     {
         uurRegistratieService.Update(uurRegistratie);
         return Json(new { Result = "OK" });
     }
     catch (Exception ex)
     {
         return Json(new { Result = "ERROR", Message = "Kon uurregistratie niet aanpassen: " + ex.Message });
     }
 }
        public JsonResult NieuweUurRegistratie(int? gebruikerKlantId, UurRegistratie uurRegistratie)
        {
            if (!gebruikerKlantId.HasValue)
            {
                return Json(new { Result = "ERROR", Message = "Geen gebruiker en/of klant geselecteerd" });
            }

            int gebKlantId = gebruikerKlantId.Value;

            try
            {
                uurRegistratieService.Nieuw(gebKlantId, uurRegistratie);
                return Json(new { Result = "OK", Record = new { Id = uurRegistratie.Id, Titel = uurRegistratie.Titel, Omschrijving = uurRegistratie.Omschrijving } });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }