Best NBi code snippet using NBi.Core.Transformation.Transformer.Native.DateTimeToClip.EvaluateDateTime
DateTimeTransformations.cs
Source:DateTimeTransformations.cs
...15 switch (value)16 {17 case null: return EvaluateNull();18 case DBNull _: return EvaluateNull();19 case DateTime dt: return EvaluateDateTime(dt);20 default: return EvaluateUncasted(value);21 }22 }23 private object EvaluateUncasted(object value)24 {25 if (value as string == "(null)" || (value is string && string.IsNullOrEmpty(value as string)))26 return EvaluateNull();27 var caster = new DateTimeCaster();28 var dateTime = caster.Execute(value);29 return EvaluateDateTime(dateTime);30 }31 protected virtual object EvaluateNull() => null;32 protected abstract object EvaluateDateTime(DateTime value);33 }34 class DateTimeToDate : AbstractDateTimeTransformation35 {36 protected override object EvaluateDateTime(DateTime value) => value.Date;37 }38 class DateToAge : AbstractDateTimeTransformation39 {40 protected override object EvaluateNull() => 0;41 protected override object EvaluateDateTime(DateTime value)42 {43 // Save today's date.44 var today = DateTime.Today;45 // Calculate the age.46 var age = today.Year - value.Year;47 // Go back to the year the person was born in case of a leap year48 return value.AddYears(age) > today ? age-- : age;49 }50 }51 class DateTimeToFirstOfMonth : AbstractDateTimeTransformation52 {53 protected override object EvaluateDateTime(DateTime value) => new DateTime(value.Year, value.Month, 1);54 }55 class DateTimeToFirstOfYear : AbstractDateTimeTransformation56 {57 protected override object EvaluateDateTime(DateTime value) => new DateTime(value.Year, 1, 1);58 }59 class DateTimeToLastOfMonth : AbstractDateTimeTransformation60 {61 protected override object EvaluateDateTime(DateTime value) => new DateTime(value.Year, value.Month, 1).AddMonths(1).AddDays(-1);62 }63 class DateTimeToLastOfYear : AbstractDateTimeTransformation64 {65 protected override object EvaluateDateTime(DateTime value) => new DateTime(value.Year, 12, 31);66 }67 class DateTimeToNextDay : AbstractDateTimeTransformation68 {69 protected override object EvaluateDateTime(DateTime value) => value.AddDays(1);70 }71 class DateTimeToNextMonth : AbstractDateTimeTransformation72 {73 protected override object EvaluateDateTime(DateTime value) => value.AddMonths(1);74 }75 class DateTimeToNextYear : AbstractDateTimeTransformation76 {77 protected override object EvaluateDateTime(DateTime value) => value.AddYears(1);78 }79 class DateTimeToPreviousDay : AbstractDateTimeTransformation80 {81 protected override object EvaluateDateTime(DateTime value) => value.AddDays(-1);82 }83 class DateTimeToPreviousMonth : AbstractDateTimeTransformation84 {85 protected override object EvaluateDateTime(DateTime value) => value.AddMonths(-1);86 }87 class DateTimeToPreviousYear : AbstractDateTimeTransformation88 {89 protected override object EvaluateDateTime(DateTime value) => value.AddYears(-1);90 }91 class DateTimeToClip : AbstractDateTimeTransformation92 {93 public IScalarResolver<DateTime> Min { get; }94 public IScalarResolver<DateTime> Max { get; }95 public DateTimeToClip(IScalarResolver<DateTime> min, IScalarResolver<DateTime> max)96 => (Min, Max) = (min, max);97 protected override object EvaluateDateTime(DateTime value)98 => (value < Min.Execute()) ? Min.Execute() : (value > Max.Execute()) ? Max.Execute() : value;99 }100 class DateTimeToSetTime : AbstractDateTimeTransformation101 {102 public IScalarResolver<string> Instant { get; }103 public DateTimeToSetTime(IScalarResolver<string> instant)104 => Instant = instant;105 protected override object EvaluateDateTime(DateTime value)106 {107 var time = TimeSpan.Parse(Instant.Execute());108 return new DateTime(value.Year, value.Month, value.Day, time.Hours, time.Minutes, time.Seconds);109 }110 }111 class NullToDate : AbstractDateTimeTransformation112 {113 public IScalarResolver<DateTime> Default { get; }114 public NullToDate(IScalarResolver<DateTime> dt)115 => Default = dt;116 protected override object EvaluateNull() => Default.Execute();117 protected override object EvaluateDateTime(DateTime value) => value;118 }119 class DateTimeToFloorHour : AbstractDateTimeTransformation120 {121 protected override object EvaluateDateTime(DateTime value)122 => value.AddTicks(-1 * (value.Ticks % TimeSpan.TicksPerHour));123 }124 class DateTimeToCeilingHour : AbstractDateTimeTransformation125 {126 protected override object EvaluateDateTime(DateTime value)127 => value.AddTicks(TimeSpan.TicksPerHour - (value.Ticks % TimeSpan.TicksPerHour == 0 ? TimeSpan.TicksPerHour : value.Ticks % TimeSpan.TicksPerHour));128 }129 class DateTimeToFloorMinute : AbstractDateTimeTransformation130 {131 protected override object EvaluateDateTime(DateTime value)132 => value.AddTicks(-1 * (value.Ticks % TimeSpan.TicksPerMinute));133 }134 class DateTimeToCeilingMinute : AbstractDateTimeTransformation135 {136 protected override object EvaluateDateTime(DateTime value)137 => value.AddTicks(TimeSpan.TicksPerMinute - (value.Ticks % TimeSpan.TicksPerMinute == 0 ? TimeSpan.TicksPerMinute : value.Ticks % TimeSpan.TicksPerMinute));138 }139 class DateTimeToAdd : AbstractDateTimeTransformation140 {141 public IScalarResolver<int> Times { get; }142 public IScalarResolver<string> TimeSpan { get; }143 public DateTimeToAdd(IScalarResolver<string> timeSpan, IScalarResolver<int> times)144 => (TimeSpan, Times) = (timeSpan, times);145 public DateTimeToAdd(IScalarResolver<string> timeSpan)146 : this(timeSpan, new LiteralScalarResolver<int>(1)) { }147 protected override object EvaluateDateTime(DateTime value)148 => value.AddTicks(System.TimeSpan.Parse(TimeSpan.Execute()).Ticks * Times.Execute());149 }150 class DateTimeToSubtract : DateTimeToAdd151 {152 public DateTimeToSubtract(IScalarResolver<string> timeSpan, IScalarResolver<int> times)153 : base(timeSpan, times) { }154 public DateTimeToSubtract(IScalarResolver<string> timeSpan)155 : base(timeSpan) { }156 protected override object EvaluateDateTime(DateTime value)157 => value.AddTicks(System.TimeSpan.Parse(TimeSpan.Execute()).Ticks * Times.Execute() * -1);158 }159}...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!