public DataTuple CreateDataTuple(int orderNo, ICollection<VariableValue> variableValues, ICollection<Amendment> amendments, DatasetVersion datasetVersion)
{
//Contract.Requires(!string.IsNullOrWhiteSpace(name));
Contract.Requires(datasetVersion != null);
Contract.Ensures(Contract.Result<DataTuple>() != null && Contract.Result<DataTuple>().Id >= 0);
if (datasetVersion.Status != DatasetVersionStatus.CheckedOut)
{
throw new Exception(string.Format("The dataset version {0} must be checked-out!", datasetVersion.Id));
}
DataTuple e = new DataTuple()
{
OrderNo = orderNo,
DatasetVersion = datasetVersion,
VariableValues = new List<VariableValue>(variableValues),
Amendments = new List<Amendment>(amendments),
};
e.DatasetVersion.PriliminaryTuples.Add(e);
e.Amendments.ToList().ForEach(ex => ex.Tuple = e);
//e.VariableValues.ToList().ForEach(ex => ex.Tuple = e);
// check to see if all variable values and their parameter values are defined in the data structure
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<DataTuple> repo = uow.GetRepository<DataTuple>();
repo.Put(e);
uow.Commit();
}
return (e);
}