Example #1
0
        public int Bewaren(int groepId, UitstapInfo info)
        {
            // Als de uitstap een ID heeft, moet een bestaande uitstap opgehaald worden.
            // Anders maken we een nieuwe.

            Uitstap uitstap;
            bool    wasBivak = false;

            var groepsWerkJaar = _groepsWerkJaarRepo.Select()
                                 .Where(gwj => gwj.Groep.ID == groepId)
                                 .OrderByDescending(gwj => gwj.WerkJaar)
                                 .First();

            if (!_autorisatieMgr.IsGav(groepsWerkJaar.Groep))
            {
                throw FaultExceptionHelper.GeenGav();
            }

            if (info.ID == 0)
            {
                // Nieuwe uitstap
                uitstap = _mappingHelper.Map <UitstapInfo, Uitstap>(info);
                uitstap.GroepsWerkJaar = groepsWerkJaar;
                groepsWerkJaar.Uitstap.Add(uitstap);
            }
            else
            {
                // Haal origineel op, gekoppeld aan groepswerkjaar
                uitstap = (from u in groepsWerkJaar.Uitstap
                           where u.ID == info.ID
                           select u).First();
                wasBivak = uitstap.IsBivak;

                // overschrijf met gegevens uit 'info'
                _mappingHelper.Map(info, uitstap);
            }

#if KIPDORP
            using (var tx = new TransactionScope())
            {
#endif
            _groepsWerkJaarRepo.SaveChanges();

            if (uitstap.IsBivak)
            {
                _bivakSync.Bewaren(uitstap);
            }
            else if (wasBivak)
            {
                _bivakSync.Verwijderen(uitstap.ID);
            }

#if KIPDORP
            tx.Complete();
        }
#endif
            return(uitstap.ID);
        }
Example #2
0
        public void BivakVerwijderenAlsGeenBivakMeerTest()
        {
            // ARRANGE
            var groepsWerkJaar = new GroepsWerkJaar
            {
                Groep = new ChiroGroep {
                    ID = 1
                },
            };
            var bivak = new Uitstap {
                ID = 2, IsBivak = true, GroepsWerkJaar = groepsWerkJaar
            };

            groepsWerkJaar.Uitstap.Add(bivak);

            var uitstapInfo = new UitstapInfo {
                ID = bivak.ID, IsBivak = false
            };

            // mock synchronisatie voor kipadmin
            var bivakSyncMock = new Mock <IBivakSync>();

            bivakSyncMock.Setup(src => src.Verwijderen(bivak.ID)).Verifiable();
            Factory.InstantieRegistreren(bivakSyncMock.Object);

            // mock data acces
            var repositoryProviderMock = new Mock <IRepositoryProvider>();

            repositoryProviderMock.Setup(src => src.RepositoryGet <GroepsWerkJaar>())
            .Returns(new DummyRepo <GroepsWerkJaar>(new List <GroepsWerkJaar> {
                groepsWerkJaar
            }));
            Factory.InstantieRegistreren(repositoryProviderMock.Object);

            // ACT

            var target = Factory.Maak <UitstappenService>();

            target.Bewaren(groepsWerkJaar.Groep.ID, uitstapInfo);

            // ASSERT

            bivakSyncMock.Verify(src => src.Verwijderen(bivak.ID), Times.AtLeastOnce());
        }
Example #3
0
        public void BewarenTest()
        {
            // ARRANGE
            var groepsWerkJaar = new GroepsWerkJaar {
                Groep = new ChiroGroep {
                    ID = 1
                }
            };
            var uitstapInfo = new UitstapInfo {
                IsBivak = true
            };
            var gwjRepo = new DummyRepo <GroepsWerkJaar>(new List <GroepsWerkJaar> {
                groepsWerkJaar
            });

            // mock synchronisatie voor kipadmin
            var bivakSyncMock = new Mock <IBivakSync>();

            bivakSyncMock.Setup(src => src.Bewaren(It.IsAny <Uitstap>()))
            // controleer of het bivak bewaard werd voor de sync.
            .Callback((() => Assert.AreNotEqual(0, gwjRepo.SaveCount)))
            .Verifiable();
            Factory.InstantieRegistreren(bivakSyncMock.Object);

            // mock data acces
            var repositoryProviderMock = new Mock <IRepositoryProvider>();

            repositoryProviderMock.Setup(src => src.RepositoryGet <GroepsWerkJaar>())
            .Returns(gwjRepo);
            Factory.InstantieRegistreren(repositoryProviderMock.Object);

            // ACT

            var target = Factory.Maak <UitstappenService>();

            target.Bewaren(groepsWerkJaar.Groep.ID, uitstapInfo);

            // ASSERT

            bivakSyncMock.Verify(src => src.Bewaren(It.IsAny <Uitstap>()), Times.AtLeastOnce());
        }