//-----------------------------------------------------------------------
//
// 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;
}
}
}