//----------------------------------------------------------------------- // // Copyright (c) 2009 Deltares. All rights reserved. // // B. Faassen // barry.faassen@deltares.nl // 22-6-2009 // n.a. //----------------------------------------------------------------------- using Deltares.Standard.Extensions; namespace Deltares.Dam.Data { using System; public class TimeSerieEntry { public TimeSerieEntry() { } public TimeSerieEntry(DateTime dateTime, double value) { this.DateTime = dateTime; this.Value = value; } public virtual DateTime DateTime { get; set; } public virtual double Value { get; set; } public virtual string BasisFileName { get; set; } public string RelativeCalculationPathName { get; set; } public Stochast StochastValue { get; set; } public int Flag { get; set; } public TimeSerieEntry GetShallowCopy() { return new TimeSerieEntry { DateTime = DateTime, Flag = Flag, }; } public TimeSerieEntry Map(Func function) { return Map(0, function); } public TimeSerieEntry Map(double missingValue, Func function) { var entry = this.GetShallowCopy(); try { entry.Value = !this.Value.AlmostEquals(missingValue) ? function(this) : missingValue; } catch { entry.Value = missingValue; } return entry; } public void Assign(TimeSerieEntry entry) { this.DateTime = entry.DateTime; this.Value = entry.Value; this.BasisFileName = entry.BasisFileName; this.StochastValue = entry.StochastValue; this.Flag = entry.Flag; } } }