Пример #1
0
        public void GranularityIsSet_SetsGranularityInBody(Granularities granularity, string expectedGranularity)
        {
            var request = new GroupByQueryDescriptor()
                          .Granularity(granularity)
                          .Generate();

            Assert.That(request.RequestData.Granularity, Is.EqualTo(expectedGranularity));
        }
Пример #2
0
        protected void SetGranularity(Granularities granularity)
        {
            switch (granularity)
            {
            case Granularities.All:
                GranularityValue = "all";
                break;

            case Granularities.None:
                GranularityValue = "none";
                break;

            case Granularities.Second:
                GranularityValue = "second";
                break;

            case Granularities.Minute:
                GranularityValue = "minute";
                break;

            case Granularities.FifteenMinute:
                GranularityValue = "fifteen_minute";
                break;

            case Granularities.ThirtyMinute:
                GranularityValue = "thirty_minute";
                break;

            case Granularities.Hour:
                GranularityValue = "hour";
                break;

            case Granularities.Day:
                GranularityValue = "day";
                break;

            case Granularities.Week:
                GranularityValue = "week";
                break;

            case Granularities.Month:
                GranularityValue = "month";
                break;

            case Granularities.Quarter:
                GranularityValue = "quarter";
                break;

            case Granularities.Year:
                GranularityValue = "year";
                break;
            }
        }
Пример #3
0
        public ITimeseriesQueryDescriptor Granularity(Granularities granularity)
        {
            SetGranularity(granularity);

            return(this);
        }
Пример #4
0
        public IGroupByQueryDescriptor Granularity(Granularities granularity)
        {
            SetGranularity(granularity);

            return(this);
        }
Пример #5
0
        public ISelectQueryDescriptor Granularity(Granularities granularity)
        {
            SetGranularity(granularity);

            return(this);
        }
Пример #6
0
 /// <summary>
 /// Overload of RelativeToNow to handle null datetimes as expected
 /// </summary>
 /// <param name="utcDateTime"> see above </param>
 /// <param name="shortForm"> see above </param>
 /// <param name="granularity"> see above </param>
 /// <returns></returns>
 public static string RelativeToNow(this DateTime?utcDateTime, string format = "{0} ago", string nullString = "Never", bool shortForm = false, Granularities granularity = Granularities.Second)
 {
     if (utcDateTime == null)
     {
         return(nullString);
     }
     else
     {
         return(string.Format(format, utcDateTime.Value.RelativeToNow("{0}", shortForm, granularity)));
     }
 }
Пример #7
0
    /// <summary>
    /// Given a UTC time, it calculates the absolute distance from now to that point and formats it as a string
    /// </summary>
    /// <param name="utcDateTime">the date time in question (UTC)</param>
    /// <param name="shortForm">boolean value for short form (e.g. "m" instead of " minutes")</param>
    /// <param name="granularity">enum to specify how specific you want to be</param>
    /// <returns></returns>
    public static string RelativeToNow(this DateTime utcDateTime, string format = "{0} ago", bool shortForm = false, Granularities granularity = Granularities.Second)
    {
        TimeSpan t = DateTime.Now.Subtract(utcDateTime);

        double time = 0.0;
        string unit = "";

        if (t.TotalMinutes < 1 && granularity <= Granularities.Second)
        {
            time = t.TotalSeconds;
            unit = "second";
        }
        else if (t.TotalHours < 1 && granularity <= Granularities.Minute)
        {
            time = t.TotalMinutes;
            unit = "minute";
        }
        else if (t.TotalDays < 1 && granularity <= Granularities.Hour)
        {
            time = t.TotalHours;
            unit = "hour";
        }
        else if (t.TotalDays < 7 && granularity <= Granularities.Day)
        {
            time = t.TotalDays;
            unit = "day";
        }
        else if (t.TotalDays < 365 && granularity <= Granularities.Week)
        {
            time = t.TotalDays / 7;
            unit = "week";
        }
        else
        {
            time = t.TotalDays / 365;
            unit = "year";
        }

        int finalTime = Convert.ToInt16(Math.Abs(Math.Round(time)));

        return(string.Format(format, string.Format("{0}{1}", finalTime, (shortForm ? unit.Substring(0, 1) : " " + (finalTime == 1 ? unit : unit + "s")))));
    }