/// <summary> /// An extended property is a custom property that is assigned to a dataset version in addition to the predefined properties. Then each dataset version owner/ accessor /// can provide a value for the attached properties. /// </summary> /// <param name="extendedPropertyId">The identifier of the extended property.</param> /// <param name="value">The value to be assigned to the extended property of the dataset version.</param> /// <param name="note"><see cref="DataValue"/></param> /// <param name="samplingTime"><see cref="DataValue"/></param> /// <param name="resultTime"><see cref="DataValue"/></param> /// <param name="obtainingMethod"><see cref="DataValue"/></param> /// <param name="datasetVersion">The dataset version receiving the property value</param> /// <returns>The extended property value linked to its <see cref="ExtendedProperty"/> and the <see cref="DatasetVersion"/></returns> public ExtendedPropertyValue CreateExtendedPropertyValue(Int64 extendedPropertyId, string value, string note, DateTime samplingTime, DateTime resultTime, ObtainingMethod obtainingMethod, DatasetVersion datasetVersion) { Contract.Requires(!string.IsNullOrWhiteSpace(value)); Contract.Requires(extendedPropertyId > 0); Contract.Requires(datasetVersion != null); Contract.Ensures(Contract.Result<ExtendedPropertyValue>() != null); ExtendedPropertyValue e = new ExtendedPropertyValue() { Value = value, Note = note, SamplingTime = samplingTime, ResultTime = resultTime, ObtainingMethod = obtainingMethod, ExtendedPropertyId = extendedPropertyId, DatasetVersion = datasetVersion, // subject to delete }; e.DatasetVersion.ExtendedPropertyValues.Add(e); //using (IUnitOfWork uow = this.GetUnitOfWork()) //{ // IRepository<ExtendedPropertyValue> repo = uow.GetRepository<ExtendedPropertyValue>(); // repo.Put(e); // uow.Commit(); //} return (e); }