public VideoTimePeriodsPacket Search(DateTime beginTime, DateTime endTime, IVideoInfo videoInfo) { string path = GlobalData.VideoPath(videoInfo.VideoId, videoInfo.StreamId); DateTime[] dates = VideoStoragerManager.GetFolderPaths(videoInfo.VideoId, videoInfo.StreamId, beginTime, endTime); List <TimePeriodPacket> tis = new List <TimePeriodPacket>(); Parallel.ForEach(dates, date => { string folder = Path.Combine(path, GlobalProcess.FolderPath(date)); var array = FolderManager.GetTimePeriods(folder); if (array.Length > 0) { lock (tis) tis.AddRange(array); } }); if (endTime > DateTime.Now.Date) { tis.AddRange(findTodayLastest(path, endTime)); } var timeCombines = TimePeriodManager.Combine(tis.ToArray()); var validArray = TimePeriodManager.GetIntersections(timeCombines, new TimePeriodPacket(beginTime, endTime)); return(new VideoTimePeriodsPacket(videoInfo, validArray)); }
public void TestTimePeriodManager_Combine_Continuous()//测试连续情况 { var combine = TimePeriodManager.Combine(tis.ToArray()); Assert.AreEqual(1, combine.Length); assertEqual(new TimePeriodPacket(tis.First().BeginTime, tis.Last().EndTime), combine[0]); }
public VideoTimePeriodsPacket GetCompletedTimePeriods() { IndexesPacket[] indexesPackets = FolderManager.GetIndexesPackets(_path); var downloadedTPPs = TimePeriodManager.GetIntersections(indexesPackets, GetVideoTimePeriods()?.TimePeriods); return(new VideoTimePeriodsPacket(_loadInfo.Info, downloadedTPPs)); }
public void Download(TimePeriodPacket tpp) { updateDownloaded(tpp); _missingTi = TimePeriodManager.Subtracts(_missingTi.ToArray(), tpp); updateProbeTime(ProbeTime); updateTicksMissing(); }
public void Execute(IJobExecutionContext context) { var mgr = new TimePeriodManager(); System.Console.WriteLine("Set New TimePeriod"); mgr.AddTimeperiod(); }
public void TestTimePeriodManager_GetIntersections() { TimePeriodPacket ti1 = new TimePeriodPacket(beginTime.AddMinutes(5), beginTime.AddMinutes(40)); TimePeriodPacket[] results = TimePeriodManager.GetIntersections(tis.ToArray(), ti1); Assert.AreEqual(3, results.Length); TimePeriodPacket[] results2 = TimePeriodManager.GetIntersections(new TimePeriodPacket[0], ti1); Assert.AreEqual(0, results2.Length); }
static void assertSubtractsAny(TimePeriodPacket[] tis1, TimePeriodPacket ti2, params TimePeriodPacket[] tis) { TimePeriodPacket[] tiSub = TimePeriodManager.Subtracts(tis1, ti2); Assert.AreEqual(tis.Length, tiSub.Length); for (int i = 0; i < tis.Length; i++) { assertEqual(tis[i], tiSub[i]); } }
public void TestTimePeriodManager_IsValid() { TimePeriodPacket ti = new TimePeriodPacket(new DateTime(2016, 1, 1), new DateTime(2016, 3, 1)); Assert.IsFalse(TimePeriodManager.IsValid(ti, new DateTime(2015, 1, 1))); Assert.IsTrue(TimePeriodManager.IsValid(ti, new DateTime(2016, 1, 1))); Assert.IsTrue(TimePeriodManager.IsValid(ti, new DateTime(2016, 2, 1))); Assert.IsFalse(TimePeriodManager.IsValid(ti, new DateTime(2016, 3, 1))); Assert.IsFalse(TimePeriodManager.IsValid(ti, new DateTime(2016, 5, 1))); }
public void Setup() { TimePeriodManager.SetDefaultHoursPerDay(24); TimePeriodManager.SetFactory( (hour, minute, hoursPerDay) => Mock.Of <ITimeOfDay>(mock => mock.Hour == hour && mock.Minute == minute && mock.HoursPerDay == hoursPerDay)); }
/// <summary> /// Applies a time zone offset to the Realm. /// </summary> /// <param name="hour">The number of hours to offset by.</param> /// <param name="minute">The number of minutes to offset by.</param> /// <exception cref="System.InvalidTimeZoneException">The time zone offset can not be applied due to the realm not being owned by a world. Worlds manage the in-game time and time periods. A world must be assigned as owner on the realm in order for any time zone interactions to take place.</exception> /// <para> /// The Hour and Minute provided will cause the Realm's timezone to be offset from /// the Worlds standard time-zone. /// </para> public void ApplyTimeZoneOffset(int hour, int minute) { if (this.Owner == null) { throw new InvalidTimeZoneException("The time zone offset can not be applied due to the realm not being owned by a world. Worlds manage the in-game time and time periods. A world must be assigned as owner on the realm in order for any time zone interactions to take place."); } TimePeriodManager timeManager = this.Owner.TimePeriodManager; this.TimeZoneOffset = timeManager.CreateTimeOfDay(hour, minute, this.Owner.HoursPerDay); }
public void TestTimePeriodManager_Combine_Segmentation()//测试被分段情况 { tis.RemoveAt(10); tis.RemoveAt(20); var combine = TimePeriodManager.Combine(tis.ToArray()); Assert.AreEqual(3, combine.Length); assertEqual(new TimePeriodPacket(beginTime, tis[9].EndTime), combine[0]); assertEqual(new TimePeriodPacket(tis[10].BeginTime, tis[19].EndTime), combine[1]); assertEqual(new TimePeriodPacket(tis[20].BeginTime, tis.Last().EndTime), combine[2]); }
public void TestTimePeriodManager_GetValidArray() { int validLength = tis.Count; Assert.AreEqual(validLength, TimePeriodManager.GetValidArray(tis.ToArray()).Length); tis.Add(null); Assert.AreEqual(validLength, TimePeriodManager.GetValidArray(tis.ToArray()).Length); tis.Add(new TimePeriodPacket(beginTime.AddDays(1), beginTime)); Assert.AreEqual(validLength, TimePeriodManager.GetValidArray(tis.ToArray()).Length); tis.Add(new TimePeriodPacket(beginTime, beginTime.AddDays(1))); Assert.AreEqual(validLength + 1, TimePeriodManager.GetValidArray(tis.ToArray()).Length); }
static void Main(string[] args) { slrclubCrawler ilbe = new slrclubCrawler(); var mgr = new TimePeriodManager(); mgr.AddTimeperiod(); ilbe.GetList(20, 4); ilbe.ParseArticles(); Console.WriteLine(DateTime.Now + "Crawler finish the work"); }
public void Can_get_time_of_day_state_when_states_are_out_of_order() { // Arrange var manager = new TimePeriodManager(this.CreateStates()); var time = new DateTime(2015, 8, 2, 16, 0, 0); // Act ITimePeriod state = manager.GetTimeOfDayState(time); // Assert Assert.AreEqual(15, state.StateStartTime.Hour); Assert.AreEqual(0, state.StateStartTime.Minute); }
public void Can_get_time_of_day_state_for_current_real_world_time_upper_limit() { // Arrange var manager = new TimePeriodManager(this.CreateStates()); var time = new DateTime(2015, 8, 2, 18, 0, 0); // Act ITimePeriod state = manager.GetTimeOfDayState(time); // Assert Assert.AreEqual(18, state.StateStartTime.Hour); Assert.AreEqual(0, state.StateStartTime.Minute); }
TimePeriodPacket[] findTodayLastest(string path, DateTime end) { string folder = Path.Combine(path, GlobalProcess.FolderPath(DateTime.Now)); var array = FolderManager.GetIndexesFiles(folder); if (array.Length > 0) { string file = array.Max(); var packets = FileManager.GetIndexesPackets(file); return(TimePeriodManager.Combine(packets)); } return(new TimePeriodPacket[0]); }
private void loadRecorder() { if (_baseRec.TimePeriods != null) { try { IndexesPacket[] indexesPackets = FolderManager.GetIndexesPackets(Path); var downloadedTPPs = TimePeriodManager.Combine(indexesPackets); initRecorder(_baseRec.TimePeriods.TimePeriods, downloadedTPPs); } catch (Exception ex) { Console.WriteLine(ex); } } }
public void TestTimePeriodManager_Intersection() { TimePeriodPacket ti1 = new TimePeriodPacket(beginTime, beginTime.AddDays(1)); TimePeriodPacket ti2 = new TimePeriodPacket(beginTime.AddHours(1), beginTime.AddHours(2)); TimePeriodPacket ti3 = new TimePeriodPacket(beginTime.AddHours(1), beginTime.AddDays(2)); TimePeriodPacket ti1_3 = new TimePeriodPacket(beginTime.AddHours(1), beginTime.AddDays(1)); TimePeriodPacket invalid = new TimePeriodPacket(beginTime.AddDays(1), beginTime); assertEqual(ti2, TimePeriodManager.Intersection(ti1, ti2)); assertEqual(ti2, TimePeriodManager.Intersection(ti2, ti1)); assertEqual(ti1_3, TimePeriodManager.Intersection(ti3, ti1)); assertEqual(ti1_3, TimePeriodManager.Intersection(ti1, ti3)); Assert.IsNull(TimePeriodManager.Intersection(ti1, invalid)); Assert.IsNull(TimePeriodManager.Intersection(invalid, ti1)); }
public void TestTimePeriodManager_GetIntersectionsArray() { List <TimePeriodPacket> tis = new List <TimePeriodPacket>(); tis.Add(new TimePeriodPacket(beginTime, beginTime.AddMinutes(15))); for (int i = 0; i < 40; i++) { tis.Add(new TimePeriodPacket(tis.Last().EndTime.AddSeconds(1), tis.Last().EndTime.AddMinutes(15))); } TimePeriodPacket[] results = TimePeriodManager.GetIntersections(tis.ToArray(), new TimePeriodPacket[0]); Assert.AreEqual(0, results.Length); results = TimePeriodManager.GetIntersections(tis.ToArray(), tis.ToArray()); Assert.AreEqual(tis.Count, results.Length); }
private static TimePeriodPacket[] getMissingTIs(TimePeriodPacket[] tisAll, TimePeriodPacket[] tisCompleted) { if (tisAll == null || tisAll.Length == 0) { return(new TimePeriodPacket[0]); } TimePeriodPacket[] subs = TimePeriodManager.Combine(tisAll); if (tisCompleted != null && tisCompleted.Length > 0) { tisCompleted = TimePeriodManager.Combine(tisCompleted); for (int i = 0; i < tisCompleted.Length; i++) { subs = TimePeriodManager.Subtracts(subs, tisCompleted[i]); } } return(subs); }
protected override void updateShortIndexes(TimePeriodPacket newTi) { List <TimePeriodPacket> shortIndexes = new List <TimePeriodPacket>(); shortIndexes.Add(newTi); string simpleIndexesName = $"{GlobalProcess.FileNameFromDate(_fileStartTime)}{GlobalProcess.SimpleIndexesFormat()}"; string fileName = Path.Combine(_curFolder, simpleIndexesName); var indexesDatas = FileManager.GetTimePeriods(fileName); if (indexesDatas != null) { shortIndexes.AddRange(indexesDatas); } var newArray = TimePeriodManager.Combine(shortIndexes.ToArray()); using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.Read)) { for (int i = 0; i < newArray.Length; i++) { writeBuffer(fs, TimePeriodPacket.Encode(newArray[i])); } } }
private void updateDownloaded(TimePeriodPacket tpp) { _downloadedTimePeriods.Add(tpp); _downloadedTimePeriods = TimePeriodManager.Combine(_downloadedTimePeriods.ToArray()).ToList(); }
public bool IsValidTime(TimePeriodPacket timePeriod) { return(_missingTi.Any(_ => TimePeriodManager.Intersection(_, timePeriod) != null)); }
public void Ctor_throws_argument_null_exception_when_given_null() { // Act var manager = new TimePeriodManager(null); }
public void TestTimePeriodManager_Combine_Empty() { Assert.AreEqual(0, TimePeriodManager.Combine(null).Length); Assert.AreEqual(0, TimePeriodManager.Combine(new TimePeriodPacket[0]).Length); }