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.
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?
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?