Exemple #1
0
        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);            
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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);
            }
        }
Exemple #8
0
        public int GetSubVersionCountOfAction(Hatfield.EnviroData.Core.Action originVersionActionData)
        {
            var numberOfVersion = 1;

            var childVersion = GetNextVersionActionData(originVersionActionData);

            while (childVersion != null)
            {
                numberOfVersion++;
                childVersion = GetNextVersionActionData(childVersion);
            }

            return(numberOfVersion);
        }
Exemple #9
0
        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));
            
        }
Exemple #12
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);
        }
Exemple #13
0
        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;
        }