Ejemplo n.º 1
0
 protected override IDisposable Run(IObserver <TSource> observer, IDisposable cancel, Action <IDisposable> setSink)
 {
     if (_dueTimeA.HasValue)
     {
         var sink = new TimeA(this, observer, cancel);
         setSink(sink);
         return(sink.Run());
     }
     else
     {
         var sink = new TimeR(this, observer, cancel);
         setSink(sink);
         return(sink.Run());
     }
 }
Ejemplo n.º 2
0
        private void Update(EvaluationContext context)
        {
            var now = DateTime.Now;

            try
            {
                var timeA       = DateTime.Today;
                var timeB       = DateTime.Today;
                var timeAString = TimeA.GetValue(context);
                var timeBString = TimeB.GetValue(context);
                var mix         = Mix.GetValue(context);

                if (DateTime.TryParse(timeAString, out var d1))
                {
                    timeA = d1;
                }
                else
                {
                    Log.Warning($"invalid format for lauchTime '{timeAString}'");
                }

                if (DateTime.TryParse(timeBString, out var d2))
                {
                    timeB = d2;
                }
                else
                {
                    Log.Warning($"invalid format for lauchTime '{timeBString}'");
                }

                //var v = Duration.GetValue(context);
                var duration = timeB - timeA;

                var format = Format.GetValue(context);

                var outString = (timeA + TimeSpan.FromHours(duration.TotalHours * mix))
                                .ToString(format, CultureInfo.InvariantCulture);

                Output.Value = outString;
            }
            catch (System.FormatException)
            {
                Output.Value = "Invalid Format";
            }
        }