public void Update(WurmDateTime currentWDT) { lastInSeasonState = inSeason; if (currentWDT.DayInYear >= seasonDefinition.DayBegin && currentWDT.DayInYear <= seasonDefinition.DayEnd) { inSeason = true; } else { inSeason = false; } if (inSeason) { WurmTimeToSeasonEnd = GetTimeToSeasonEnd(seasonDefinition.DayEnd + 1, currentWDT); RealTimeToSeasonEnd = new TimeSpan(WurmTimeToSeasonEnd.Ticks / 8); CompareValue = (TimeSpan.FromDays(-WurmCalendar.DaysInYear) + WurmTimeToSeasonEnd).TotalSeconds + CompareOffset; } else { WurmTimeToSeason = GetTimeToSeason(seasonDefinition.DayBegin, currentWDT); RealTimeToSeason = new TimeSpan(WurmTimeToSeason.Ticks / 8); CompareValue = WurmTimeToSeason.TotalSeconds + CompareOffset; } if (inSeason == true && lastInSeasonState == false) { notifyUser = true; } }
public void Equality() { // disable "Comparison made to same variable" #pragma warning disable 1718 var dateLower = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0); var dateHigher = new WurmDateTime(1003, WurmStarfall.Silent, 4, WurmDay.Awakening, 9, 56, 2); Assert.True(dateHigher > dateLower); Assert.True(dateLower < dateHigher); Assert.True(dateHigher != dateLower); // ReSharper disable once EqualExpressionComparison Assert.True(dateHigher == dateHigher); // ReSharper disable once EqualExpressionComparison Assert.True(dateHigher >= dateHigher); Assert.True(dateHigher >= dateLower); // ReSharper disable once EqualExpressionComparison Assert.True(dateHigher <= dateHigher); Assert.True(dateLower <= dateHigher); var dateLowerClone = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0); Assert.True(dateLower.Equals(dateLowerClone)); Assert.True(dateLower.Equals((object)dateLowerClone)); Assert.True(((object)dateLower).Equals((object)dateLowerClone)); Assert.False(((object)dateLower).Equals(null)); // ReSharper disable once SuspiciousTypeConversion.Global Assert.False(((object)dateLower).Equals(new DateTime())); Assert.False((dateLower).Equals(null)); #pragma warning restore 1718 }
public void Equality() { // disable "Comparison made to same variable" #pragma warning disable 1718 var dateLower = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0); var dateHigher = new WurmDateTime(1003, WurmStarfall.Silent, 4, WurmDay.Awakening, 9, 56, 2); Assert.True(dateHigher > dateLower); Assert.True(dateLower < dateHigher); Assert.True(dateHigher != dateLower); // ReSharper disable once EqualExpressionComparison Assert.True(dateHigher == dateHigher); // ReSharper disable once EqualExpressionComparison Assert.True(dateHigher >= dateHigher); Assert.True(dateHigher >= dateLower); // ReSharper disable once EqualExpressionComparison Assert.True(dateHigher <= dateHigher); Assert.True(dateLower <= dateHigher); var dateLowerClone = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0); Assert.True(dateLower.Equals(dateLowerClone)); Assert.True(dateLower.Equals((object)dateLowerClone)); Assert.True(((object)dateLower).Equals(dateLowerClone)); Assert.False(dateLower.Equals(null)); // ReSharper disable once SuspiciousTypeConversion.Global Assert.False(dateLower.Equals(new DateTime())); Assert.False(dateLower.Equals(null)); #pragma warning restore 1718 }
public void IsWithinCalculatesCorrect() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); var datemin = new WurmDateTime(1000, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 6, 8); var datemax = new WurmDateTime(1000, WurmStarfall.Leaf, 1, WurmDay.Ant, 12, 6, 8); Assert.True(date.IsWithin(datemin, datemax)); Assert.False(date.IsWithin(datemax, datemax)); Assert.False(date.IsWithin(datemin, datemin)); }
public void SubtractOrAddExceedsLimit_SetsMinMaxValue() { var dateLow = new WurmDateTime(1, WurmStarfall.Diamond, 1, WurmDay.Ant, 1, 6, 8); Assert.AreEqual(WurmDateTime.MinValue, dateLow - TimeSpan.FromDays(500)); var dateHigh = new WurmDateTime(99999, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual(WurmDateTime.MaxValue, dateHigh + TimeSpan.FromDays(900)); }
public void Serialization_Binary() { WurmDateTime date = new WurmDateTime(1234, WurmStarfall.Fire, 2, WurmDay.Sleep, 2, 5, 8); var serializer = new BinaryTestSerializer <WurmDateTime>(); var deserializedDate = serializer.Reserialize(date); Assert.AreEqual(date, deserializedDate); }
public void Serialization_Json() { var serializer = new JsonTestSerializer <WurmDateTime>(); WurmDateTime date = new WurmDateTime(1234, WurmStarfall.Fire, 2, WurmDay.Sleep, 2, 5, 8); var deserialized = serializer.Reserialize(date); Assert.AreEqual(date, deserialized); }
public void IsWithinCalculatesCorrect() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); var datemin = new WurmDateTime(1000, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 6, 8); var datemax = new WurmDateTime(1000, WurmStarfall.Leaf, 1, WurmDay.Ant, 12, 6, 8); Assert.True(date.IsWithin(datemin, datemax)); Assert.False(date.IsWithin(datemax, datemax)); Assert.False(date.IsWithin(datemin, datemin)); }
TimeSpan GetTimeToDay(int day, WurmDateTime currentWDT) { TimeSpan Value = TimeSpan.FromDays(day); if (Value < currentWDT.DayAndTimeOfYear) { return(TimeSpan.FromDays(Value.Days + 336) - currentWDT.DayAndTimeOfYear); } return(Value - currentWDT.DayAndTimeOfYear); }
private void buttonTestDate_Click(object sender, EventArgs e) { wdt = new WurmDateTime( Convert.ToInt32(textBoxYear.Text), Convert.ToInt32(textBoxStarfall.Text), Convert.ToInt32(textBoxWeek.Text), Convert.ToInt32(textBoxDay.Text), Convert.ToInt32(textBoxHour.Text), Convert.ToInt32(textBoxMinute.Text), Convert.ToInt32(textBoxSecond.Text)); textBoxWDTOut.Text = wdt.ToString(); }
public void CreatesWithProperValues() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual(1000, date.Year); Assert.AreEqual(WurmStarfall.Saw, date.Starfall); Assert.AreEqual(1, date.Week); Assert.AreEqual(WurmDay.Ant, date.Day); Assert.AreEqual(12, date.Hour); Assert.AreEqual(6, date.Minute); Assert.AreEqual(8, date.Second); Assert.AreEqual(29, date.DayInYear); Assert.AreEqual(new TimeSpan(29, 12, 6, 8), date.DayAndTimeOfYear); }
public WurmDateTimeInfoPair(DateTime stamp, WurmDateTime wdt_value) { Stamp = stamp; try { AdjustedStamp = Stamp - TimeSpan.FromDays(2); } catch (ArgumentOutOfRangeException) { AdjustedStamp = DateTime.MinValue; } WDT_Value = wdt_value; }
public void CreatesWithProperValues() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual(1000, date.Year); Assert.AreEqual(WurmStarfall.Saw, date.Starfall); Assert.AreEqual(1, date.Week); Assert.AreEqual(WurmDay.Ant, date.Day); Assert.AreEqual(12, date.Hour); Assert.AreEqual(6, date.Minute); Assert.AreEqual(8, date.Second); Assert.AreEqual(29, date.DayInYear); Assert.AreEqual(new TimeSpan(29, 12, 6, 8), date.DayAndTimeOfYear); }
internal async void ObtainWdtForCurrentServer() { if (obtainingWdt) { return; } obtainingWdt = true; // try to get server datetime, if server configured try { while (true) { if (!String.IsNullOrEmpty(ServerName)) { var server = wurmApi.Servers.GetByName(new ServerName(ServerName)); var result = await server.TryGetCurrentTimeAsync(); if (result != null) { cachedWDT = result.Value; hasWdt = true; break; } } await Task.Delay(TimeSpan.FromSeconds(5)); } } catch (Exception exception) { logger.Error(exception, "Error for server name: " + (ServerName ?? "NULL")); } finally { obtainingWdt = false; } }
public void TimeSpanAdditionsCalculateCorrectDates() { var date = new WurmDateTime(1000, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 0, 0); var date2 = date + TimeSpan.FromDays(2); Assert.AreEqual(new WurmDateTime(1000, WurmStarfall.Diamond, 1, WurmDay.Wurm, 12, 0, 0), date2); var date3 = date + TimeSpan.FromDays(20); Assert.AreEqual(new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Awakening, 12, 0, 0), date3); var date4 = date + TimeSpan.FromDays(28); Assert.AreEqual(new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 0, 0), date4); var date5 = date + TimeSpan.FromDays(336); Assert.AreEqual(new WurmDateTime(1001, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 0, 0), date5); var date6 = date - TimeSpan.FromDays(336); Assert.AreEqual(new WurmDateTime(999, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 0, 0), date6); }
public async Task <WebDataExtractionResult> ExtractAsync(WurmServerInfo serverInfo) { WebDataExtractionResult result = new WebDataExtractionResult(serverInfo.ServerName); var res = await httpWebRequests.GetResponseAsync(serverInfo.WebStatsUrl).ConfigureAwait(false); DateTime headerLastUpdated = res.LastModified; using (Stream stream = res.GetResponseStream()) { using (var reader = new StreamReader(stream)) { bool canReadServerName = false; bool canReadUptime = false; bool canReadWurmTime = false; string line; string strUptime = string.Empty; string strWurmDateTime = string.Empty; while ((line = reader.ReadLine()) != null) { if (canReadServerName) { Match match = Regex.Match(line, @">.+<"); string name = match.Value.Substring(1, match.Value.Length - 2); if (!string.Equals(name, serverInfo.ServerName.Original, StringComparison.InvariantCultureIgnoreCase)) { throw new WurmApiException( string.Format( "Extracted server name does not match server description, expected {0}, actual {1}", serverInfo.ServerName.Original, name)); } canReadServerName = false; } else if (canReadUptime) { Match match = Regex.Match(line, @">.+<"); strUptime = match.Value.Substring(1, match.Value.Length - 2); canReadUptime = false; } else if (canReadWurmTime) { Match match = Regex.Match(line, @">.+<"); strWurmDateTime = match.Value.Substring(1, match.Value.Length - 2); canReadWurmTime = false; } if (Regex.IsMatch(line, "Server name")) { canReadServerName = true; } else if (Regex.IsMatch(line, "Uptime")) { canReadUptime = true; } else if (Regex.IsMatch(line, "Wurm Time")) { canReadWurmTime = true; } } DateTime dtnow = Time.Get.LocalNow; if (headerLastUpdated > dtnow) { headerLastUpdated = dtnow; } TimeSpan uptime = GetTimeSpanFromUptimeWebString(strUptime); result.ServerUptime = uptime; WurmDateTime wdt = GetWurmDateTimeFromWdtWebString(strWurmDateTime); result.WurmDateTime = wdt; result.LastUpdated = headerLastUpdated; } } return(result); }
public void TimeSpanAdditionsCalculateCorrectDates() { var date = new WurmDateTime(1000, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 0, 0); var date2 = date + TimeSpan.FromDays(2); Assert.AreEqual(new WurmDateTime(1000, WurmStarfall.Diamond, 1, WurmDay.Wurm, 12, 0, 0), date2); var date3 = date + TimeSpan.FromDays(20); Assert.AreEqual(new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Awakening, 12, 0, 0), date3); var date4 = date + TimeSpan.FromDays(28); Assert.AreEqual(new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 0, 0), date4); var date5 = date + TimeSpan.FromDays(336); Assert.AreEqual(new WurmDateTime(1001, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 0, 0), date5); var date6 = date - TimeSpan.FromDays(336); Assert.AreEqual(new WurmDateTime(999, WurmStarfall.Diamond, 1, WurmDay.Ant, 12, 0, 0), date6); }
TimeSpan GetTimeToSeasonEnd(int dayEnd, WurmDateTime currentWDT) { return(GetTimeToDay(dayEnd, currentWDT)); }
TimeSpan GetTimeToSeason(int dayBegin, WurmDateTime currentWDT) { return(GetTimeToDay(dayBegin, currentWDT)); }
public void HashCodeMatchesPattern() { var date = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0); Assert.AreEqual(date.TotalSeconds.GetHashCode(), date.GetHashCode()); }
public void ToStringCorrectFormat() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual("12:06:08 on day of Ant in week 1 of the Saw starfall in the year of 1000", date.ToString()); }
/// <summary> /// Outputs wurm date for specified server. Returns false and TimeSpan.Zero if no date available. /// </summary> /// <param name="serverName"></param> /// <param name="wdt"></param> /// <returns></returns> public static bool TryGetWurmDateTime(string serverName, out WurmDateTime wdt) { if (!_initTask.IsCompleted) { wdt = WurmDateTime.MinValue; return false; } else { WurmServerInfo wsd; if (_serverData.Data.TryGetValue(serverName, out wsd)) { wdt = wsd.GetLatestWDT(); return true; } else { wdt = WurmDateTime.MinValue; return false; } } }
public void TimeToCalculatesCorrect() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual(TimeSpan.FromDays(336), date.TimeTo(new WurmDateTime(1001, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8))); }
public void SubtractOrAddExceedsLimit_SetsMinMaxValue() { var dateLow = new WurmDateTime(1, WurmStarfall.Diamond, 1, WurmDay.Ant, 1, 6, 8); Assert.AreEqual(WurmDateTime.MinValue, dateLow - TimeSpan.FromDays(500)); var dateHigh = new WurmDateTime(99999, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual(WurmDateTime.MaxValue, dateHigh + TimeSpan.FromDays(900)); }
private void buttonAdd_Click(object sender, EventArgs e) { wdt += new TimeSpan(0, 12, 44); textBoxWDTOut.Text = wdt.ToString(); }
public void TimeToCalculatesCorrect() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual(TimeSpan.FromDays(336), date.TimeTo(new WurmDateTime(1001, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8))); }
/// <summary> /// update wurm date time if new data is more up to date /// </summary> /// <param name="stamp"></param> /// <param name="value"></param> /// <param name="source"></param> internal void SetWurmDateTime(DateTime stamp, WurmDateTime value, UpdateSource source) { lock (lock_obj) { if (source == UpdateSource.WebFeed) { if (stamp > WDT_web.Stamp) { WDT_web = new WurmDateTimeInfoPair(stamp, value); } } else if (source == UpdateSource.WurmLogs) { if (stamp > WDT_logs.Stamp) { WDT_logs = new WurmDateTimeInfoPair(stamp, value); } } } }
public void Serialization_Binary() { WurmDateTime date = new WurmDateTime(1234, WurmStarfall.Fire, 2, WurmDay.Sleep, 2, 5, 8); var serializer = new BinaryTestSerializer<WurmDateTime>(); var deserializedDate = serializer.Reserialize(date); Assert.AreEqual(date, deserializedDate); }
public WurmSeasonOutputItem(WurmSeasonDefinition wurmSeasonDefinition, double compareOffset, WurmDateTime currentWDT) { seasonDefinition = wurmSeasonDefinition; LengthDays = seasonDefinition.DayEnd - seasonDefinition.DayBegin + 1; CompareOffset = compareOffset; Update(currentWDT); }
public void HashCodeMatchesPattern() { var date = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0); Assert.AreEqual(date.TotalSeconds.GetHashCode(), date.GetHashCode()); }
public void ToStringCorrectFormat() { var date = new WurmDateTime(1000, WurmStarfall.Saw, 1, WurmDay.Ant, 12, 6, 8); Assert.AreEqual("12:06:08 on day of Ant in week 1 of the Saw starfall in the year of 1000", date.ToString()); }
public JobResult(WurmDateTime? wurmDateTime, TimeSpan? uptime) { WurmDateTime = wurmDateTime; Uptime = uptime; }
private void button2_Click(object sender, EventArgs e) { wdt = new WurmDateTime(1, WurmStarfall.Saw, 3, WurmDay.Sleep, 5, 12, 55); textBoxWDTOut.Text = wdt.ToString(); }
public void Serialization_Json() { var serializer = new JsonTestSerializer<WurmDateTime>(); WurmDateTime date = new WurmDateTime(1234, WurmStarfall.Fire, 2, WurmDay.Sleep, 2, 5, 8); var deserialized = serializer.Reserialize(date); Assert.AreEqual(date, deserialized); }