public static bool IsIntervalOther(this AbonnementProdukt abonnementProdukt, Abonnementer abonnement, DateTime leveringsDato, int week, int year) { if (abonnementProdukt.Interval == Interval.FørstDagHverMåned) { DateTime Date = TimeTool.GetDate(year, week, (int)DayOfWeek.Sunday); for (int i = 0; i < 7; i++) { if (Date.Day == 1) { break; } else { Date = Date.AddDays(-1); } } if (Date.Day == 1 && abonnementProdukt.IsActive(Date) && !abonnementProdukt.OnPause(Date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.SidstDagHverMåned) { DateTime Date = TimeTool.GetDate(year, week, (int)DayOfWeek.Monday); for (int i = 0; i <= 6; i++) { if (Date.AddDays(1).Day == 1) { break; } else { Date = Date.AddDays(1); } } if (Date.AddDays(1).Day == 1 && abonnementProdukt.IsActive(Date) && !abonnementProdukt.OnPause(Date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.SidstArbejdsdagIMåned) { DateTime Date = TimeTool.GetDate(year, week, (int)DayOfWeek.Monday); for (int i = 0; i <= 4; i++) { if (Date.AddDays(1).Day == 1 || Date.DayOfWeek == DayOfWeek.Friday) { break; } else { Date = Date.AddDays(1); } } if ((Date.AddDays(1).Day == 1 || Date.DayOfWeek == DayOfWeek.Friday) && abonnementProdukt.IsActive(Date) && !abonnementProdukt.OnPause(Date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.FørstArbejdsdagIMåned) { DateTime Date = TimeTool.GetDate(year, week, (int)DayOfWeek.Friday); for (int i = 0; i <= 4; i++) { if (Date.Day == 1) { break; } else { Date = Date.AddDays(-1); } } if (Date.Day == 1 && abonnementProdukt.IsActive(Date) && !abonnementProdukt.OnPause(Date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.SidsteValgteDagIMåned) { DateTime Date = TimeTool.GetDate(year, week, (int)DayOfWeek.Monday); for (int i = 0; i <= 6; i++) { if (Date.DayOfWeek == abonnement.Ugedag || Date.AddDays(1).Day == 1) { break; } else { Date = Date.AddDays(1); } } if (Date.DayOfWeek == abonnement.Ugedag && Date.AddDays(7).Day <= 7 && abonnementProdukt.IsActive(Date) && !abonnementProdukt.OnPause(Date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.FørsteValgteDagIMåned) { DateTime Date = TimeTool.GetDate(year, week, (int)DayOfWeek.Sunday); for (int i = 0; i <= 6; i++) { if (Date.DayOfWeek == abonnement.Ugedag || Date.Day == 1) { break; } else { Date = Date.AddDays(-1); } } if (Date.Day <= 7 && Date.DayOfWeek == abonnement.Ugedag && abonnementProdukt.IsActive(Date) && !abonnementProdukt.OnPause(Date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.LigeMåned) { var date = TimeTool.GetDate(year, week, abonnement.Ugedag); if (date.Month % 2 == 0 && date.Day <= 7 && abonnement.Ugedag == date.DayOfWeek && abonnementProdukt.IsActive(date) && !abonnementProdukt.OnPause(date)) { return(true); } } else if (abonnementProdukt.Interval == Interval.UligeMåned) { var date = TimeTool.GetDate(year, week, abonnement.Ugedag); if (date.Month % 2 == 1 && date.Day <= 7 && abonnement.Ugedag == date.DayOfWeek && abonnementProdukt.IsActive(date) && !abonnementProdukt.OnPause(date)) { return(true); } } return(false); }
public static bool IsInIntervalWeek(this AbonnementProdukt abonnementProdukt, DateTime leveringsDato, int week) { int weeks = NumberOfWeeks(abonnementProdukt.StartDato, leveringsDato); if (abonnementProdukt.Interval == Interval.HverUge) { return(true); } else if (abonnementProdukt.Interval == Interval.Lige) { if (week % 2 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Ulige) { if (week % 2 != 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver2uge) { if (weeks % 2 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver3uge) { if (weeks % 3 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver4uge) { if (weeks % 4 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver5uge) { if (weeks % 5 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver6uge) { if (weeks % 6 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver7uge) { if (weeks % 7 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver8uge) { if (weeks % 8 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver9uge) { if (weeks % 9 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver10uge) { if (weeks % 10 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver11uge) { if (weeks % 11 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver12uge) { if (weeks % 12 == 0) { return(true); } } else if (abonnementProdukt.Interval == Interval.Hver26uge) { if (weeks % 26 == 0) { return(true); } } if (abonnementProdukt.Interval == Interval.MåtteSkift) { if (leveringsDato.Date <= new DateTime(leveringsDato.Year, 11, 1).Date&& leveringsDato.Date >= new DateTime(leveringsDato.Year, 3, 1).AddDays(-1).Date) { if (weeks % 4 == 0) { return(true); } } else { if (weeks % 2 == 0) { return(true); } } } return(false); }