Пример #1
0
        public void InsertWhereBeschikbaar(Periode periode, Tarief tarief)
        {
            Tarief laatsteType;
            var    overlaps = this.Where(registratie => periode.Overlapt(registratie.StartDatum));
            IEnumerable <TariefKalenderRegistratie> tariefKalenderRegistraties = overlaps.ToList();

            if (tariefKalenderRegistraties.Count() != 0)
            {
                laatsteType = this.Single(registratie =>
                                          registratie.StartDatum == tariefKalenderRegistraties.Max(overlapReg => overlapReg.StartDatum)).TariefType;
                ForEach(registratie =>
                {
                    registratie.TariefType = registratie.TariefType != Tarief.Onbeschikbaar ? tarief : Tarief.Onbeschikbaar;
                });
            }
            else
            {
                var registratiesVoorEind = this.Where(registratie => registratie.StartDatum < periode.Eind);
                laatsteType = this.Single(registratie => registratie.StartDatum == registratiesVoorEind.Max(reg => reg.StartDatum)).TariefType;
            }

            //Add period.Start and tarief as new registration
            if (!Exists(registratie => registratie.StartDatum == periode.Start))
            {
                Add(new TariefKalenderRegistratie(periode.Start, tarief));
            }
            Add(new TariefKalenderRegistratie(periode.Eind, laatsteType));
        }
Пример #2
0
        public void InsertWithOverride(Periode periode, Tarief tarief)
        {
            Tarief laatsteType;
            //Delete all overlapping KalenderRegistraties except last registration in periode => set startdate equal to periode.eindeq
            var overlaps = this.Where(registratie => periode.Overlapt(registratie.StartDatum));
            IEnumerable <TariefKalenderRegistratie> tariefKalenderRegistraties = overlaps.ToList();

            if (tariefKalenderRegistraties.Count() != 0)
            {
                laatsteType = this.Single(registratie =>
                                          registratie.StartDatum == tariefKalenderRegistraties.Max(overlapReg => overlapReg.StartDatum)).TariefType;
                RemoveAll(registratie => periode.Overlapt(registratie.StartDatum));
            }
            else
            {
                var registratiesVoorStart = this.Where(registratie => registratie.StartDatum < periode.Start);
                laatsteType = this.Single(registratie => registratie.StartDatum == registratiesVoorStart.Max(reg => reg.StartDatum)).TariefType;
            }

            //Add period.Start and tarief as new registration
            Add(new TariefKalenderRegistratie(periode.Start, tarief));
            Add(new TariefKalenderRegistratie(periode.Eind, laatsteType));
        }
Пример #3
0
        public void OverlaptDatumTest()
        {
            var periode = new Periode(_start, _eind);

            Assert.IsTrue(periode.Overlapt(_start.AddDays(1)));
        }
Пример #4
0
 public void OverlapTest(Periode p1, Periode p2, bool caseResult, string caseDefinition)
 {
     Assert.IsTrue(p1.Overlapt(p2) == caseResult, $"Case '{caseDefinition}' failed.");
 }