Ejemplo n.º 1
0
            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;
                }
            }
Ejemplo n.º 2
0
 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
 }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
 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));
 }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
            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);
            }
Ejemplo n.º 10
0
 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();
 }
Ejemplo n.º 11
0
 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);
 }
Ejemplo n.º 12
0
 public WurmDateTimeInfoPair(DateTime stamp, WurmDateTime wdt_value)
 {
     Stamp = stamp;
     try
     {
         AdjustedStamp = Stamp - TimeSpan.FromDays(2);
     }
     catch (ArgumentOutOfRangeException)
     {
         AdjustedStamp = DateTime.MinValue;
     }
     WDT_Value = wdt_value;
 }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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;
            }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
 TimeSpan GetTimeToSeasonEnd(int dayEnd, WurmDateTime currentWDT)
 {
     return(GetTimeToDay(dayEnd, currentWDT));
 }
Ejemplo n.º 19
0
 TimeSpan GetTimeToSeason(int dayBegin, WurmDateTime currentWDT)
 {
     return(GetTimeToDay(dayBegin, currentWDT));
 }
Ejemplo n.º 20
0
        public void HashCodeMatchesPattern()
        {
            var date = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0);

            Assert.AreEqual(date.TotalSeconds.GetHashCode(), date.GetHashCode());
        }
Ejemplo n.º 21
0
 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());
 }
Ejemplo n.º 22
0
 /// <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;
         }
     }
 }
Ejemplo n.º 23
0
 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)));
 }
Ejemplo n.º 24
0
 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));
 }
Ejemplo n.º 25
0
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            wdt += new TimeSpan(0, 12, 44);

            textBoxWDTOut.Text = wdt.ToString();
        }
Ejemplo n.º 26
0
        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)));
        }
Ejemplo n.º 27
0
 /// <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);
             }
         }
     }
 }
Ejemplo n.º 28
0
        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);
        }
Ejemplo n.º 29
0
 public WurmSeasonOutputItem(WurmSeasonDefinition wurmSeasonDefinition, double compareOffset, WurmDateTime currentWDT)
 {
     seasonDefinition = wurmSeasonDefinition;
     LengthDays       = seasonDefinition.DayEnd - seasonDefinition.DayBegin + 1;
     CompareOffset    = compareOffset;
     Update(currentWDT);
 }
Ejemplo n.º 30
0
 public void HashCodeMatchesPattern()
 {
     var date = new WurmDateTime(1000, WurmStarfall.Diamond, 3, WurmDay.Ant, 12, 0, 0);
     Assert.AreEqual(date.TotalSeconds.GetHashCode(), date.GetHashCode());
 }
Ejemplo n.º 31
0
        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());
        }
Ejemplo n.º 32
0
 public JobResult(WurmDateTime? wurmDateTime, TimeSpan? uptime)
 {
     WurmDateTime = wurmDateTime;
     Uptime = uptime;
 }
Ejemplo n.º 33
0
 private void button2_Click(object sender, EventArgs e)
 {
     wdt = new WurmDateTime(1, WurmStarfall.Saw, 3, WurmDay.Sleep, 5, 12, 55);
     textBoxWDTOut.Text = wdt.ToString();
 }
Ejemplo n.º 34
0
        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);
        }