public static IEnumerable <ChemistryFileData> MapActionToChemistryFileData(Hatfield.EnviroData.Core.Action source, IDataVersioningHelper versioningHelper) { var relatedChemistryAction = source.RelatedActions.Where(x => x.CV_RelationshipType.Name == "Is related to"); var results = new List <ChemistryFileData>(); if (relatedChemistryAction == null || !relatedChemistryAction.Any()) { return(null); } foreach (var relationAction in relatedChemistryAction) { var latestRelationAction = versioningHelper.GetLatestVersionActionData(relationAction.Action1); var featureActions = latestRelationAction.FeatureActions; if (featureActions != null) { foreach (var featureAction in featureActions) { var measurementResults = from result in featureAction.Results from measurementResultValue in result.MeasurementResult.MeasurementResultValues select MapChemistryFileData(relationAction.Action1, result, measurementResultValue); results.AddRange(measurementResults); } } } return(results); }
public void CreateTestAction(IWQDefaultValueProvider wqDefaultValueProvider) { grandActionData = new Hatfield.EnviroData.Core.Action(); grandActionData.ActionID = 3; childActionData = new Hatfield.EnviroData.Core.Action(); childActionData.RelatedActions = new List<RelatedAction>(); childActionData.ActionID = 2; rootActionData = new Hatfield.EnviroData.Core.Action(); rootActionData.RelatedActions = new List<RelatedAction>(); rootActionData.ActionID = 1; var grandChildRelation = new RelatedAction(); grandChildRelation.CV_RelationshipType = new CV_RelationshipType { Name = wqDefaultValueProvider.ActionRelationshipTypeSubVersion }; grandChildRelation.Action1 = grandActionData; childActionData.RelatedActions.Add(grandChildRelation); var childRelation = new RelatedAction(); childRelation.CV_RelationshipType = new CV_RelationshipType { Name = wqDefaultValueProvider.ActionRelationshipTypeSubVersion }; childRelation.Action1 = childActionData; rootActionData.RelatedActions.Add(childRelation); }
protected override IEnumerable <SampleFileData> ResolveCore(Hatfield.EnviroData.Core.Action source) { var defaultValueHelper = new StaticWQDefaultValueProvider(); defaultValueHelper.Init(); var versionHelper = new DataVersioningHelper(defaultValueHelper); var latestVersion = versionHelper.GetLatestVersionActionData(source); var featureActions = latestVersion.FeatureActions; var result = new List <SampleFileData> { }; foreach (var featureAction in featureActions) { var samplingActionResults = featureAction.Results; if (samplingActionResults != null) { foreach (var samplingActionResult in samplingActionResults) { var sampleFileData = MapSampleFileData(featureAction.Action, samplingActionResult); if (sampleFileData != null) { result.Add(sampleFileData); } } } } return(result); }
private static SampleFileData MapSampleFileData(Hatfield.EnviroData.Core.Action actionData, Result sampleResultDomain) { if (sampleResultDomain != null) { var sampleFileData = new SampleFileData(); sampleFileData.SampledDateTime = sampleResultDomain.ResultDateTime; try { sampleFileData.LabName = actionData.Method.Organization.OrganizationName; } catch (NullReferenceException) { sampleFileData.LabName = null; } //Map data from extension properties sampleFileData = MapFromExtensionProperties(sampleFileData, sampleResultDomain.ResultExtensionPropertyValues); return(sampleFileData); } else { return(null); } }
public void CreateTestAction(IWQDefaultValueProvider wqDefaultValueProvider) { grandActionData = new Hatfield.EnviroData.Core.Action(); grandActionData.ActionID = 3; childActionData = new Hatfield.EnviroData.Core.Action(); childActionData.RelatedActions = new List <RelatedAction>(); childActionData.ActionID = 2; rootActionData = new Hatfield.EnviroData.Core.Action(); rootActionData.RelatedActions = new List <RelatedAction>(); rootActionData.ActionID = 1; var grandChildRelation = new RelatedAction(); grandChildRelation.CV_RelationshipType = new CV_RelationshipType { Name = wqDefaultValueProvider.ActionRelationshipTypeSubVersion }; grandChildRelation.Action1 = grandActionData; childActionData.RelatedActions.Add(grandChildRelation); var childRelation = new RelatedAction(); childRelation.CV_RelationshipType = new CV_RelationshipType { Name = wqDefaultValueProvider.ActionRelationshipTypeSubVersion }; childRelation.Action1 = childActionData; rootActionData.RelatedActions.Add(childRelation); }
private ICollection <ActionBy> CloneActionBies(Hatfield.EnviroData.Core.Action previousVersionAction, Hatfield.EnviroData.Core.Action newVersionAction) { if (previousVersionAction.ActionBies == null) { return(null); } else { var clonedNewActionBies = new List <ActionBy>(); foreach (var actionByInPreviousVersion in previousVersionAction.ActionBies) { var newActionBy = new ActionBy(); newActionBy.Action = newVersionAction; newActionBy.Affiliation = actionByInPreviousVersion.Affiliation; newActionBy.AffiliationID = actionByInPreviousVersion.AffiliationID; newActionBy.IsActionLead = actionByInPreviousVersion.IsActionLead; newActionBy.RoleDescription = actionByInPreviousVersion.RoleDescription; clonedNewActionBies.Add(newActionBy); } return(clonedNewActionBies); } }
private ICollection <FeatureAction> CloneFeatureActions(Hatfield.EnviroData.Core.Action previousVersionAction, Hatfield.EnviroData.Core.Action newVersionAction) { if (previousVersionAction.FeatureActions == null) { return(null); } else { var newVersionFeatureActions = new List <FeatureAction>(); foreach (var featureAction in previousVersionAction.FeatureActions) { var newFeatureAction = new FeatureAction(); newFeatureAction.Action = newVersionAction; newFeatureAction.SamplingFeatureID = featureAction.SamplingFeatureID; newFeatureAction.SamplingFeature = featureAction.SamplingFeature; newFeatureAction.Results = CloneResults(featureAction, newFeatureAction); newVersionFeatureActions.Add(newFeatureAction); } return(newVersionFeatureActions); } }
public int GetSubVersionCountOfAction(Hatfield.EnviroData.Core.Action originVersionActionData) { var numberOfVersion = 1; var childVersion = GetNextVersionActionData(originVersionActionData); while (childVersion != null) { numberOfVersion++; childVersion = GetNextVersionActionData(childVersion); } return(numberOfVersion); }
private static ChemistryFileData MapChemistryFileData(Hatfield.EnviroData.Core.Action action, Result result, MeasurementResultValue measurementResultValue) { var chemistryFileData = new ChemistryFileData(); chemistryFileData.ExtractionDate = action.BeginDateTime; chemistryFileData.AnalysedDate = action.EndDateTime.HasValue ? action.EndDateTime.Value : DateTime.MinValue; chemistryFileData.Result = measurementResultValue.DataValue; chemistryFileData.ResultUnit = result.MeasurementResult.Unit.UnitsName; chemistryFileData.OriginalChemName = result.Variable.VariableDefinition; chemistryFileData.ChemCode = result.Variable.VariableCode; chemistryFileData.MethodName = action.Method.MethodName; chemistryFileData.MethodType = action.Method.MethodDescription; var propertyValueDictionary = result.ResultExtensionPropertyValues.ToDictionary(x => x.ExtensionProperty.PropertyName, x => x.PropertyValue); chemistryFileData.SampleCode = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeySampleCode) ? propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeySampleCode] : string.Empty; chemistryFileData.Prefix = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyPrefix) ? propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyPrefix] : string.Empty; chemistryFileData.TotalOrFiltered = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyTotalOrFiltered) ? propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyTotalOrFiltered] : string.Empty; chemistryFileData.ResultType = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyResultType) ? propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyResultType] : string.Empty; chemistryFileData.EQL = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyEQL) ? MappingHelper.ToNullableDouble(propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyEQL]) : null; chemistryFileData.EQLUnits = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyEQLUnits) ? propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyEQLUnits] : string.Empty; chemistryFileData.Comments = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyComments) ? propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyComments] : string.Empty; chemistryFileData.UCL = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyUCL) ? MappingHelper.ToNullableDouble(propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyUCL]) : null; chemistryFileData.LCL = propertyValueDictionary.ContainsKey(ESDATChemistryConstants.ResultExtensionPropertyValueKeyLCL) ? MappingHelper.ToNullableDouble(propertyValueDictionary[ESDATChemistryConstants.ResultExtensionPropertyValueKeyLCL]) : null; return(chemistryFileData); }
public Hatfield.EnviroData.Core.Action CloneActionData(Hatfield.EnviroData.Core.Action previousVersionAction) { var clonedAction = new Hatfield.EnviroData.Core.Action(); //clone value in the root action object clonedAction.ActionTypeCV = previousVersionAction.ActionTypeCV; clonedAction.CV_ActionType = previousVersionAction.CV_ActionType; clonedAction.MethodID = previousVersionAction.MethodID; clonedAction.Method = previousVersionAction.Method; clonedAction.BeginDateTime = previousVersionAction.BeginDateTime; clonedAction.BeginDateTimeUTCOffset = previousVersionAction.BeginDateTimeUTCOffset; clonedAction.EndDateTime = previousVersionAction.EndDateTime; clonedAction.EndDateTimeUTCOffset = previousVersionAction.EndDateTimeUTCOffset; clonedAction.ActionDescription = previousVersionAction.ActionDescription; clonedAction.ActionFileLink = previousVersionAction.ActionFileLink; clonedAction.ActionBies = CloneActionBies(previousVersionAction, clonedAction); clonedAction.FeatureActions = CloneFeatureActions(previousVersionAction, clonedAction); return clonedAction; }
public void SuccessConstructorTest() { var testSampleAction = new Hatfield.EnviroData.Core.Action(); var mockRepository = new Mock<IWQDataRepository>(); mockRepository.Setup(x => x.GetAllWQSampleDataActions()) .Returns(new List<Hatfield.EnviroData.Core.Action> { testSampleAction }); var testCriteria = new GetAllWaterQualitySampleDataCriteria(mockRepository.Object); Assert.NotNull(testCriteria); Assert.AreEqual("GetAllWaterQualityDataCriteria: fetch all water quality data in the database", testCriteria.CriteriaDescription); var fetchedData = testCriteria.FetchData().Cast<Hatfield.EnviroData.Core.Action>(); Assert.NotNull(fetchedData); Assert.AreEqual(1, fetchedData.Count()); Assert.AreEqual(testSampleAction, fetchedData.ElementAt(0)); }
public Hatfield.EnviroData.Core.Action CloneActionData(Hatfield.EnviroData.Core.Action previousVersionAction) { var clonedAction = new Hatfield.EnviroData.Core.Action(); //clone value in the root action object clonedAction.ActionTypeCV = previousVersionAction.ActionTypeCV; clonedAction.CV_ActionType = previousVersionAction.CV_ActionType; clonedAction.MethodID = previousVersionAction.MethodID; clonedAction.Method = previousVersionAction.Method; clonedAction.BeginDateTime = previousVersionAction.BeginDateTime; clonedAction.BeginDateTimeUTCOffset = previousVersionAction.BeginDateTimeUTCOffset; clonedAction.EndDateTime = previousVersionAction.EndDateTime; clonedAction.EndDateTimeUTCOffset = previousVersionAction.EndDateTimeUTCOffset; clonedAction.ActionDescription = previousVersionAction.ActionDescription; clonedAction.ActionFileLink = previousVersionAction.ActionFileLink; clonedAction.ActionBies = CloneActionBies(previousVersionAction, clonedAction); clonedAction.FeatureActions = CloneFeatureActions(previousVersionAction, clonedAction); return(clonedAction); }
public static IEnumerable <SampleFileData> MapActionToSampleFileData(Hatfield.EnviroData.Core.Action source) { var result = new List <SampleFileData> { }; foreach (var featureAction in source.FeatureActions) { var samplingActionResults = featureAction.Results; if (samplingActionResults != null) { foreach (var samplingActionResult in samplingActionResults) { var sampleFileData = MapSampleFileData(featureAction.Action, samplingActionResult); if (sampleFileData != null) { result.Add(sampleFileData); } } } } return(result); }
public void IsDataSupportTest() { var mockVersionHelper = new Mock<IDataVersioningHelper>(); var mockRepository = new Mock<IRepository<CV_RelationshipType>>(); var testTool = new SampleMatrixTypeCheckingTool(mockVersionHelper.Object, mockRepository.Object); var supportData = new Hatfield.EnviroData.Core.Action(); Assert.True(testTool.IsDataSupported(supportData)); Assert.False(testTool.IsDataSupported(1)); }
private Hatfield.EnviroData.Core.Action CreateTestAction() { var testActionData = new Hatfield.EnviroData.Core.Action { FeatureActions = new List<FeatureAction> { new FeatureAction{ SamplingFeature = new SamplingFeature{ SamplingFeatureTypeCV = "Specimen" }, Results = new List<Result>{ new Result{ ResultUUID = new Guid("abdc02ff-4bc6-4b8c-8578-e3c8d3620cea"), ResultDateTime = new DateTime(2015, 5, 1), ResultExtensionPropertyValues = new List<ResultExtensionPropertyValue>{ new ResultExtensionPropertyValue{ ExtensionProperty = new ExtensionProperty{ PropertyName = "Matrix Type" }, PropertyValue = "Water" } } }, new Result{ ResultUUID = new Guid("abdc02ff-4bc6-4b8c-8578-e3c8d3620cea"), ResultExtensionPropertyValues = new List<ResultExtensionPropertyValue>{ new ResultExtensionPropertyValue{ ExtensionProperty = new ExtensionProperty{ PropertyName = "Matrix Type" }, PropertyValue = "water" } } }, new Result{ ResultUUID = new Guid("abdc02ff-4bc6-4b8c-8578-e3c8d3620cea"), ResultDateTime = new DateTime(2015, 5, 1), ResultExtensionPropertyValues = new List<ResultExtensionPropertyValue>{ new ResultExtensionPropertyValue{ ExtensionProperty = new ExtensionProperty{ PropertyName = "Matrix Type" }, PropertyValue = "test type" } } }, new Result{ ResultUUID = new Guid("abdc02ff-4bc6-4b8c-8578-e3c8d3620cea"), ResultDateTime = new DateTime(2015, 5, 1), ResultExtensionPropertyValues = new List<ResultExtensionPropertyValue>{ } } } } } }; return testActionData; }