public void Test_Good_Date_Descriptor_With_Features(int index, string name, DateTimeFeature feature) { var desc = Descriptor.Create <FakeDate>(); Assert.AreEqual(name, desc.Features[index].Name); Assert.AreEqual(new DateTimeProperty(feature).Features, ((DateTimeProperty)desc.Features[index]).Features); }
public void Test_Good_Date_Descriptor_With_Features_Fluent() { DateTimeFeature portion = DateTimeFeature.Month | DateTimeFeature.Year | DateTimeFeature.Second | DateTimeFeature.Hour; var d = Descriptor.For <FakeDate>() .WithDateTime(f => f.Date1, portion); Assert.AreEqual("Date1", d.Features[0].Name); Assert.AreEqual(new DateTimeProperty(portion).Features, ((DateTimeProperty)d.Features[0]).Features); }
public void Feature_CommandGreaterThanNowByYear_IsEnabled_ReturnsFalse() { var jsonSettings = GetJsonSettings(EnvironmentEnum.LOCAL, PlatformEnum.Web); var feature = new DateTimeFeature(jsonSettings); feature.Command = DateTime.UtcNow.AddYears(1).Date.ToString(); Assert.IsFalse(feature.IsEnabled()); }
public void Feature_CommandEqualToNow_IsEnabled_ReturnsTrue() { var jsonSettings = GetJsonSettings(EnvironmentEnum.LOCAL, PlatformEnum.Web); var feature = new DateTimeFeature(jsonSettings); feature.Command = DateTime.UtcNow.ToString(); Assert.IsTrue(feature.IsEnabled()); }
/// <summary> /// Gets DateTimeFeature enum from enumerated /// values /// </summary> /// <param name="features">string collection of enum values</param> /// <returns>DateTimeFeatures</returns> public static DateTimeFeature GetFeatures(string[] features) { DateTimeFeature feature = 0; for (var i = 0; i < features.Length; i++) { feature |= (DateTimeFeature)Enum.Parse(typeof(DateTimeFeature), features[i]); } return(feature); }
/// <summary>Adds DateTime property to descriptor with previously chained name.</summary> /// <exception cref="DescriptorException">Thrown when a Descriptor error condition occurs.</exception> /// <param name="features"> /// Which date features to use (can pipe: DateTimeFeature.Year | /// DateTimeFeature.DayOfWeek) /// </param> /// <returns>descriptor with added property.</returns> public Descriptor AsDateTime(DateTimeFeature features) { if (this._label) { throw new DescriptorException("Cannot use a DateTime property as a label"); } var p = new DateTimeProperty(features) { Discrete = true, Name = this._name }; this.AddProperty(p); return(this._descriptor); }
/// <summary> /// Retrieve the list of expanded columns. If there is a one-to-one correspondence between the /// type and its expansion it will return a single value/. /// </summary> /// <param name="features">Features</param> /// <returns></returns> public static IEnumerable <string> GetColumns(DateTimeFeature features) { Func <DateTimeFeature, string> c = d => Enum.GetName(typeof(DateTimeFeature), d); if (features.HasFlag(DateTimeFeature.Year)) { yield return(c(DateTimeFeature.Year)); } if (features.HasFlag(DateTimeFeature.DayOfYear)) { yield return("DayOfYear"); } if (features.HasFlag(DateTimeFeature.Month)) { yield return("Month"); } if (features.HasFlag(DateTimeFeature.Day)) { yield return("Day"); } if (features.HasFlag(DateTimeFeature.DayOfWeek)) { yield return("DayOfWeek"); } if (features.HasFlag(DateTimeFeature.Hour)) { yield return("Hour"); } if (features.HasFlag(DateTimeFeature.Minute)) { yield return("Minute"); } if (features.HasFlag(DateTimeFeature.Second)) { yield return("Second"); } if (features.HasFlag(DateTimeFeature.Millisecond)) { yield return("Millisecond"); } }
/// <summary> /// Retrieve the list of expanded columns. If there is a one-to-one correspondence between the /// type and its expansion it will return a single value/. /// </summary> /// <param name="features">Features</param> /// <returns></returns> public static IEnumerable <string> GetColumns(DateTimeFeature features) { if (features.HasFlag(DateTimeFeature.Year)) { yield return(nameof(DateTimeFeature.Year)); } if (features.HasFlag(DateTimeFeature.DayOfYear)) { yield return(nameof(DateTimeFeature.DayOfYear)); } if (features.HasFlag(DateTimeFeature.Month)) { yield return(nameof(DateTimeFeature.Month)); } if (features.HasFlag(DateTimeFeature.Day)) { yield return(nameof(DateTimeFeature.Day)); } if (features.HasFlag(DateTimeFeature.DayOfWeek)) { yield return(nameof(DateTimeFeature.DayOfWeek)); } if (features.HasFlag(DateTimeFeature.Hour)) { yield return(nameof(DateTimeFeature.Hour)); } if (features.HasFlag(DateTimeFeature.Minute)) { yield return(nameof(DateTimeFeature.Minute)); } if (features.HasFlag(DateTimeFeature.Second)) { yield return(nameof(DateTimeFeature.Second)); } if (features.HasFlag(DateTimeFeature.Millisecond)) { yield return(nameof(DateTimeFeature.Millisecond)); } }
/// <summary>Constructor.</summary> /// <param name="features">The features.</param> public DateFeatureAttribute(DateTimeFeature features) { dp = new DateTimeProperty(features); }
public void Test_Good_Date_Descriptor_With_Features(int index, string name, DateTimeFeature feature) { var desc = Descriptor.Create<FakeDate>(); Assert.AreEqual(name, desc.Features[index].Name); Assert.AreEqual(new DateTimeProperty(feature).Features, ((DateTimeProperty)desc.Features[index]).Features); }
/// <summary>Adds DateTime property to descriptor with previously chained name.</summary> /// <exception cref="DescriptorException">Thrown when a Descriptor error condition occurs.</exception> /// <param name="features">Which date features to use (can pipe: DateTimeFeature.Year | /// DateTimeFeature.DayOfWeek)</param> /// <returns>descriptor with added property.</returns> public Descriptor AsDateTime(DateTimeFeature features) { if (_label) throw new DescriptorException("Cannot use a DateTime property as a label"); var p = new DateTimeProperty(features) { Discrete = true, Name = _name }; AddProperty(p); return _descriptor; }
public DateFeatureAttribute(DateTimeFeature features) { dp = new DateTimeProperty(features); }
/// <summary>Constructor.</summary> /// <param name="features">The features.</param> public DateTimeProperty(DateTimeFeature features) { Type = typeof(DateTime); Features = features; }
/// <summary> /// Retrieve the list of expanded columns. If there is a one-to-one correspondence between the /// type and its expansion it will return a single value/. /// </summary> /// <param name="features">Features</param> /// <returns></returns> public static IEnumerable<string> GetColumns(DateTimeFeature features) { Func<DateTimeFeature, string> c = d => Enum.GetName(typeof(DateTimeFeature), d); if (features.HasFlag(DateTimeFeature.Year)) yield return c(DateTimeFeature.Year); if (features.HasFlag(DateTimeFeature.DayOfYear)) yield return "DayOfYear"; if (features.HasFlag(DateTimeFeature.Month)) yield return "Month"; if (features.HasFlag(DateTimeFeature.Day)) yield return "Day"; if (features.HasFlag(DateTimeFeature.DayOfWeek)) yield return "DayOfWeek"; if (features.HasFlag(DateTimeFeature.Hour)) yield return "Hour"; if (features.HasFlag(DateTimeFeature.Minute)) yield return "Minute"; if (features.HasFlag(DateTimeFeature.Second)) yield return "Second"; if (features.HasFlag(DateTimeFeature.Millisecond)) yield return "Millisecond"; }
/// <summary>Constructor.</summary> /// <param name="features">The features.</param> public DateTimeProperty(DateTimeFeature features) : base() { Type = typeof(DateTime); Features = features; }
/// <summary>Constructor.</summary> /// <param name="features">The features.</param> public DateTimeProperty(DateTimeFeature features) : base() { this.Type = typeof(DateTime); this.Features = features; }