示例#1
0
        public async Task <AntwoordOpPostCursus> PostCursusInstantie(CommCursus nieuweCursusInstantie)
        {
            bool cursusWasOnbekend    = false;
            bool instantieWasOnbekend = false;

            var cursus = await VindCursusBijCommCursus(nieuweCursusInstantie);

            if (cursus == null) // de cursus bestaat nog niet
            {
                cursusWasOnbekend = true;
                cursus            = await VoegCursusToe(nieuweCursusInstantie);
            }

            var instantie = db.CursusInstanties.Where(ci => ci.Startdatum == nieuweCursusInstantie.Startdatum && ci.CursusId == cursus.Id).FirstOrDefaultAsync().Result;

            if (instantie == null) // de cursus instantie bestaat nog niet
            {
                instantieWasOnbekend = true;
                instantie            = await VoegCursusInstantieToe(nieuweCursusInstantie, cursus);
            }

            return(new AntwoordOpPostCursus()
            {
                Naam = cursus.Naam, Duur = cursus.Duur, Startdatum = instantie.Startdatum, CursusWasOnbekend = cursusWasOnbekend, InstantieWasOnbekend = instantieWasOnbekend
            });
        }
        public void PostCursusInstantie_MetBekendeCursus_SlaatNieuweInstantieOp()
        {
            //arrange
            var tePostenCursus = new CommCursus()
            {
                Naam       = "test cursus 2",
                Duur       = "5 dagen",
                Startdatum = new DateTime(2020, 6, 3)
            };

            var verwachtAntwoord = new AntwoordOpPostCursus()
            {
                Startdatum           = new DateTime(2020, 6, 3),
                Naam                 = "test cursus 2",
                Duur                 = "5 dagen",
                CursusWasOnbekend    = false,
                InstantieWasOnbekend = true
            };

            //act
            var antwoord = _sut.PostCursusInstantie(tePostenCursus).Result;

            //assert
            antwoord.ShouldNotBeNull();

            CompareAntwoorden(antwoord, verwachtAntwoord);
        }
示例#3
0
        private async Task <Cursus> VoegCursusToe(CommCursus nieuweCursusInstantie)
        {
            db.Cursussen.Add(new Cursus {
                Duur = nieuweCursusInstantie.Duur, Naam = nieuweCursusInstantie.Naam
            });
            await db.SaveChangesAsync();

            return(db.Cursussen.Where(c => c.Naam == nieuweCursusInstantie.Naam).FirstOrDefaultAsync().Result);
        }
示例#4
0
        public async Task <IHttpActionResult> PostCursusInstantie(CommCursus nieuweCursusInstantie)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var antwoord = await repo.PostCursusInstantie(nieuweCursusInstantie);

            return(CreatedAtRoute("DefaultApi", new {}, antwoord));
        }
示例#5
0
        private async Task <CursusInstantie> VoegCursusInstantieToe(CommCursus nieuweCursusInstantie, Cursus cursus)
        {
            var instantie = new CursusInstantie()
            {
                Startdatum = nieuweCursusInstantie.Startdatum, CursusId = cursus.Id
            };

            db.CursusInstanties.Add(instantie);
            await db.SaveChangesAsync();

            return(instantie);
        }
示例#6
0
 private Task <Cursus> VindCursusBijCommCursus(CommCursus cursus)
 {
     return(db.Cursussen.Where(c => c.Naam == cursus.Naam).FirstOrDefaultAsync());
 }
 private void CompareAntwoorden(CommCursus antwoord, CommCursus verwacht)
 {
     antwoord.Duur.ShouldBe(verwacht.Duur);
     antwoord.Startdatum.ShouldBe(verwacht.Startdatum);
     antwoord.Naam.ShouldBe(verwacht.Naam);
 }