[ASP.NET MVC5] Waar functie voor auto aanmaak child records

Pagina: 1
Acties:

Vraag


  • ArchitectOfDoom
  • Registratie: November 2011
  • Laatst online: 28-03-2023
Mijn vraag
Ik ben wat aan het spelen met ASP.NET MVC. Ik ben ook behoorlijk nieuw in programmeren (long time ago), dus ik ben nog wat aan het zoeken. Met name naar de structuur.

In mijn applicatie wil ik mijn vakantieplanning stoppen. Voor mijn vraag zijn de volgende model classes van belang:

Holiday
Een Holiday kent een Start en een Eind datum (en mogen niet null zijn). Ik wil dat voor elke dag beginnend met de start datum dat er een Day record wordt aangemaakt tot en met de einddatum. Heeft een 1:N relatie met Day dus.

Day
Een dag heeft één datum en een HolidayId.

En daarboven op de volgende controller classes:
HolidaysController
DaysController

Ik heb nu een methode binnen de HolidaysController die dit afhandeld. Dat voelt wat onbevredigend aan, omdat het in mijn ogen geen goede seperation of concerns is.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        protected void CreateDaysFromHoliday(Holiday holiday)
        {
            int? numberofdays = holiday.NumberOfDays;
            if (numberofdays != null)
            {
                DateTime date = holiday.StartDate;
                do
                {
                    Day day = new Day();
                    day.OnCreate(holiday.OwnerId);
                    day.HolidayID = holiday.Id;
                    day.DayDate = date;
                    date = date.AddDays(1);
                    db.Days.Add(day);
                }
                while (date <= holiday.EndDate);
                db.SaveChanges();
            }
        }


Ik wil dit er weer uithalen en splitsen in twee methodes in het model. Een in het model Holiday met dezelfde loop als boven, maar met een aanroep van een methode van het model Days die een dag returned. Die dag wil ik dan in de loop aan de ICollection<Days> toevoegen.

Wat ik me afvraag: is dit een betere oplossing? Of zou ik het anders moeten oplossen? En slikt de ApplicationDBContext die ICollection ook?

Beste antwoord (via ArchitectOfDoom op 20-02-2017 07:44)


  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Je hebt alle data al in Holiday, begin en einddatum.

Ik zou alleen en dag aanmaken als daar specifieke data in moet

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Je hebt alle data al in Holiday, begin en einddatum.

Ik zou alleen en dag aanmaken als daar specifieke data in moet

Acties:
  • 0 Henk 'm!

  • ArchitectOfDoom
  • Registratie: November 2011
  • Laatst online: 28-03-2023
HansvDr schreef op donderdag 16 februari 2017 @ 13:28:
Je hebt alle data al in Holiday, begin en einddatum.

Ik zou alleen en dag aanmaken als daar specifieke data in moet
Hey Hans, dat was niet mijn vraag, maar wel een goede opmerking :) . Dat lost gelijk dit ook op.

Aan de hand daarvan ben ik het nu iets anders gaan insteken.

De dag is nu een non-mapped model class die de activiteiten per dag ordent en die de bijbehorende overnachting voor die dag erbij haalt (voor nu - ik wil ook nog dat deze klasse de afstanden tussen de activiteiten presenteert en op basis daarvan het aantal kilometers laat zien).