public void Can_Clear_Start_Invariant() { DateTime now = DateTime.Now; var schedule = new ContentScheduleCollection(); schedule.Add(now, now.AddDays(1)); schedule.Clear(ContentScheduleAction.Release); Assert.AreEqual(0, schedule.GetSchedule(ContentScheduleAction.Release).Count()); Assert.AreEqual(1, schedule.GetSchedule(ContentScheduleAction.Expire).Count()); Assert.AreEqual(1, schedule.FullSchedule.Count()); }
public void Can_Remove_Variant() { DateTime now = DateTime.Now; var schedule = new ContentScheduleCollection(); schedule.Add(now, null); schedule.Add("en-US", now, null); IEnumerable <ContentSchedule> invariantSched = schedule.GetSchedule(string.Empty); schedule.Remove(invariantSched.First()); Assert.AreEqual(0, schedule.GetSchedule(string.Empty).Count()); Assert.AreEqual(1, schedule.FullSchedule.Count()); IEnumerable <ContentSchedule> variantSched = schedule.GetSchedule("en-US"); schedule.Remove(variantSched.First()); Assert.AreEqual(0, schedule.GetSchedule("en-US").Count()); Assert.AreEqual(0, schedule.FullSchedule.Count()); }
private ContentSchedule FindSchedule(ContentScheduleCollection currentSchedules, ContentSchedule newSchedule) { var schedule = currentSchedules.GetSchedule(newSchedule.Culture, newSchedule.Action); if (schedule != null && schedule.Any()) { return(schedule.FirstOrDefault()); } return(null); }
public void Can_Remove_Invariant() { var now = DateTime.Now; var schedule = new ContentScheduleCollection(); schedule.Add(now, null); var invariantSched = schedule.GetSchedule(string.Empty); schedule.Remove(invariantSched.First()); Assert.AreEqual(0, schedule.FullSchedule.Count()); }
/// <summary> /// Gets the current status of the Content /// </summary> public static ContentStatus GetStatus(this IContent content, ContentScheduleCollection contentSchedule, string culture = null) { if (content.Trashed) { return(ContentStatus.Trashed); } if (!content.ContentType.VariesByCulture()) { culture = string.Empty; } else if (culture.IsNullOrWhiteSpace()) { throw new ArgumentNullException($"{nameof(culture)} cannot be null or empty"); } var expires = contentSchedule.GetSchedule(culture, ContentScheduleAction.Expire); if (expires != null && expires.Any(x => x.Date > DateTime.MinValue && DateTime.Now > x.Date)) { return(ContentStatus.Expired); } var release = contentSchedule.GetSchedule(culture, ContentScheduleAction.Release); if (release != null && release.Any(x => x.Date > DateTime.MinValue && x.Date > DateTime.Now)) { return(ContentStatus.AwaitingRelease); } if (content.Published) { return(ContentStatus.Published); } return(ContentStatus.Unpublished); }
public void Can_Clear_End_Variant() { var now = DateTime.Now; var schedule = new ContentScheduleCollection(); schedule.Add(now, now.AddDays(1)); schedule.Add("en-US", now, now.AddDays(1)); schedule.Clear(ContentScheduleAction.Expire); Assert.AreEqual(0, schedule.GetSchedule(ContentScheduleAction.Expire).Count()); Assert.AreEqual(1, schedule.GetSchedule(ContentScheduleAction.Release).Count()); Assert.AreEqual(1, schedule.GetSchedule("en-US", ContentScheduleAction.Expire).Count()); Assert.AreEqual(1, schedule.GetSchedule("en-US", ContentScheduleAction.Release).Count()); Assert.AreEqual(3, schedule.FullSchedule.Count()); schedule.Clear("en-US", ContentScheduleAction.Expire); Assert.AreEqual(0, schedule.GetSchedule(ContentScheduleAction.Expire).Count()); Assert.AreEqual(1, schedule.GetSchedule(ContentScheduleAction.Release).Count()); Assert.AreEqual(0, schedule.GetSchedule("en-US", ContentScheduleAction.Expire).Count()); Assert.AreEqual(1, schedule.GetSchedule("en-US", ContentScheduleAction.Release).Count()); Assert.AreEqual(2, schedule.FullSchedule.Count()); }