示例#1
0
        public void QueryWaterQualityDataTestAnalyteAndSite()
        {
            DateTime beginDate1 = new DateTime(2010, 1, 01, 10, 34, 9);

            DateTime endDate1 = new DateTime(2016, 7, 18, 18, 34, 9);

            List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte> analyteList = new List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte>();

            String[] arrayNames = { null, null, "Toluene", "Ethylbenzene", "Xylenes", "Naphthenic Acid", "Toluene-d8 (BTEX)", "Benzene", "o-Terphenyl (F2-F4)", "C>10 - C16", "Phenolphthalein Alkalinity", "Alkalinity (Total as CaCO3)", "Alkalinity (Carbonate as CaCO3)", "True Colour", "Conductivity", "pH", "Calc Total Kjeldahl Nitrogen", "nitrate and nitrite (as N)", "Ortho Phosphate (P)", "Phosphorus (P)", "Nitrogen (N)" };
            for (int i = 0; i < 21; i++)
            {
                Analyte analyte = new Analyte
                {
                    Id       = (12 + i),
                    Name     = arrayNames[i],
                    Category = new AnalyteCategory
                    {
                        Id   = 14,
                        Name = "Chemistry"
                    }
                };
                analyteList.Add(analyte);
            }


            List <IQueryable <WaterQualityObservation> > QueryList = new List <IQueryable <WaterQualityObservation> >();
            int k = 0;

            for (int i = 0; i < siteList.Count(); i++)
            {
                for (int j = 0; j < analyteList.Count(); j++)
                {
                    var waterQualityProfile = _wqDataProfile.QueryWaterQualityData(beginDate1, endDate1, siteList[i], analyteList[j]);
                    Assert.NotNull(waterQualityProfile);
                    QueryList.Add(waterQualityProfile);
                }
            }

            Assert.AreEqual(84, QueryList.Count()); //test for the number of values returned after the query

            for (int i = 0; i < siteList.Count(); i++)
            {
                for (int j = 0; j < analyteList.Count(); j++)
                {
                    var tempArray = QueryList[k].ToArray();

                    foreach (var result in tempArray)
                    {
                        Assert.AreEqual(siteList[i].Id, result.Site.Id);
                        Assert.AreEqual(analyteList[j].Id, result.Analyte.Id);
                    }

                    k++;
                }
            }
        }
        public void QueryWaterQualityDataListTest()
        {
            DateTime beginDate1 = new DateTime(2016, 6, 01, 10, 34, 9);

            DateTime endDate1 = new DateTime(2016, 7, 18, 18, 34, 9);

            DateTime resultDate = new DateTime(2016, 6, 15, 10, 34, 9);

            List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte> analyteList = new List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte>();

            String[] arrayNames = { "Toluene", "Ethylbenzene", "Xylenes", "Naphthenic Acid", "Toluene-d8 (BTEX)", "Benzene", "o-Terphenyl (F2-F4)", "C>10 - C16", "Phenolphthalein Alkalinity", "Alkalinity (Total as CaCO3)", "Alkalinity (Carbonate as CaCO3)", "True Colour" };

            for (int i = 0; i < 12; i++)
            {
                Analyte analyte = new Analyte
                {
                    Id       = (14 + i),
                    Name     = arrayNames[i],
                    Category = new AnalyteCategory
                    {
                        Id   = 14,
                        Name = "Chemistry"
                    }
                };
                analyteList.Add(analyte);
            }



            List <IQueryable <LabReportSample> > queryList = new List <IQueryable <LabReportSample> >();

            var waterQualityProfile = _wqDataProfile.QueryWaterQualityData(beginDate1, endDate1, siteList, analyteList);

            queryList.Add(waterQualityProfile);

            var arrayWaterQualityProfile = queryList[0].ToArray();

            Assert.NotNull(waterQualityProfile);

            Assert.AreEqual(12, waterQualityProfile.Count());

            for (int i = 0; i < arrayWaterQualityProfile.Length; i++)
            {
                Assert.AreEqual((i + 1), arrayWaterQualityProfile[i].Value);
                Assert.AreEqual(resultDate, arrayWaterQualityProfile[i].DateTime);
                Assert.AreEqual(analyteList[i].Id, arrayWaterQualityProfile[i].Analyte.Id);
                Assert.AreEqual(analyteList[i].Name, arrayWaterQualityProfile[i].Analyte.Name);

                Assert.AreEqual(siteList[i].Id, arrayWaterQualityProfile[i].Site.Id);
                Assert.AreEqual(siteList[i].Name, arrayWaterQualityProfile[i].Site.Name);
                Assert.AreEqual(siteList[i].Latitude, arrayWaterQualityProfile[i].Site.Latitude);
                Assert.AreEqual(siteList[i].Longitude, arrayWaterQualityProfile[i].Site.Longitude);
                Assert.AreEqual(7, arrayWaterQualityProfile[i].UTCOffset);
            }
        }
        public void QueryWaterQualityDataTestAnalyte()
        {
            DateTime beginDate1 = new DateTime(2016, 6, 01, 10, 34, 9);

            DateTime endDate1 = new DateTime(2016, 7, 18, 18, 34, 9);

            DateTime resultDate = new DateTime(2016, 6, 15, 10, 34, 9);

            List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte> analyteList = new List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte>();

            String[] arrayNames = { "Toluene", "Ethylbenzene", "Xylenes", "Naphthenic Acid", "Toluene-d8 (BTEX)", "Benzene", "o-Terphenyl (F2-F4)", "C>10 - C16", "Phenolphthalein Alkalinity", "Alkalinity (Total as CaCO3)", "Alkalinity (Carbonate as CaCO3)", "True Colour" };

            for (int i = 0; i < 12; i++)
            {
                Analyte analyte = new Analyte
                {
                    Id       = (14 + i),
                    Name     = arrayNames[i],
                    Category = new AnalyteCategory
                    {
                        Id   = 14,
                        Name = "Chemistry"
                    }
                };
                analyteList.Add(analyte);
            }


            List <IQueryable <LabReportSample> > QueryList = new List <IQueryable <LabReportSample> >();

            for (int i = 0; i < analyteList.Count(); i++)
            {
                var waterQualityProfile = _wqDataProfile.QueryWaterQualityData(beginDate1, endDate1, analyteList[i]);
                Assert.NotNull(waterQualityProfile);
                QueryList.Add(waterQualityProfile);
            }


            for (int i = 0; i < QueryList.Count(); i++)
            {
                Assert.AreEqual(1, QueryList[i].Count());
                Assert.AreEqual((i + 1), QueryList[i].FirstOrDefault().Value);                    //values
                Assert.AreEqual(resultDate, QueryList[i].FirstOrDefault().DateTime);              //date time
                Assert.AreEqual(7, QueryList[i].FirstOrDefault().UTCOffset);                      //offset

                Assert.AreEqual(analyteList[i].Id, QueryList[i].FirstOrDefault().Analyte.Id);     //analyte id
                Assert.AreEqual(analyteList[i].Name, QueryList[i].FirstOrDefault().Analyte.Name); //analyte name
            }
        }
示例#4
0
        public void QueryWaterQualityDataListTest()
        {
            DateTime beginDate1 = new DateTime(2010, 6, 01);

            DateTime endDate1 = new DateTime(2016, 12, 31);

            DateTime resultDate = new DateTime(2016, 6, 15, 10, 34, 9);

            List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte> analyteList = new List <Hatfield.EnviroData.DataProfile.WQ.Models.Analyte>();

            String[] arrayNames = { null, null, "Toluene", "Ethylbenzene", "Xylenes", "Naphthenic Acid", "Toluene-d8 (BTEX)", "Benzene", "o-Terphenyl (F2-F4)", "C>10 - C16", "Phenolphthalein Alkalinity", "Alkalinity (Total as CaCO3)", "Alkalinity (Carbonate as CaCO3)", "True Colour", "Conductivity", "pH", "Calc Total Kjeldahl Nitrogen", "nitrate and nitrite (as N)", "Ortho Phosphate (P)", "Phosphorus (P)", "Nitrogen (N)" };

            for (int i = 0; i < 21; i++)
            {
                Analyte analyte = new Analyte
                {
                    Id       = (12 + i),
                    Name     = arrayNames[i],
                    Category = new AnalyteCategory
                    {
                        Id   = 14,
                        Name = "Chemistry"
                    }
                };
                analyteList.Add(analyte);
            }


            List <IQueryable <WaterQualityObservation> > queryList = new List <IQueryable <WaterQualityObservation> >();

            var waterQualityProfile = _wqDataProfile.QueryWaterQualityData(beginDate1, endDate1, siteList, analyteList);

            queryList.Add(waterQualityProfile);

            var arrayWaterQualityProfile = queryList[0].ToArray();

            Assert.NotNull(waterQualityProfile);

            Assert.AreEqual(174, waterQualityProfile.Count());  //total number of analyte results

            Assert.AreEqual(siteList[0].Id, arrayWaterQualityProfile[0].Site.Id);
            Assert.AreEqual(siteList[0].Name, arrayWaterQualityProfile[0].Site.Name);
            Assert.AreEqual(analyteList[2].Id, arrayWaterQualityProfile[0].Analyte.Id);
            Assert.AreEqual(analyteList[2].Name, arrayWaterQualityProfile[0].Analyte.Name);

            Assert.AreEqual(siteList[3].Id, arrayWaterQualityProfile[173].Site.Id);
            Assert.AreEqual(siteList[3].Name, arrayWaterQualityProfile[173].Site.Name);
        }
示例#5
0
        /// <summary>
        /// Query water quality data
        /// </summary>
        /// <param name="startDateTime">query start date</param>
        /// <param name="endDateTime">query end date</param>
        /// <param name="site">query site</param>
        /// <param name="analyte">query analyte</param>
        /// <returns></returns>
        public IQueryable <WaterQualityObservation> QueryWaterQualityData(DateTime startDateTime, DateTime endDateTime, Site site, Analyte analyte)
        {
            var waterQualityObervationModel = from observationModel in _dbContext.RelatedActions
                                              where (observationModel.RelationshipTypeCV == "Is related to" &&
                                                     observationModel.Action1.BeginDateTime >= startDateTime &&
                                                     observationModel.Action1.EndDateTime <= endDateTime &&
                                                     observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().VariableID == analyte.Id &&
                                                     observationModel.Action1.FeatureActions.FirstOrDefault().SamplingFeatureID == site.Id)
                                              orderby observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().VariableID ascending
                                              select new WaterQualityObservation
            {
                Id        = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().ResultID,
                DateTime  = observationModel.Action1.BeginDateTime,
                UTCOffset = (long)observationModel.Action1.BeginDateTimeUTCOffset,
                Value     = (float?)observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().MeasurementResult.MeasurementResultValues.FirstOrDefault().DataValue ?? 0,
                Unit      = new Unit
                {
                    Id          = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().UnitsID,
                    Name        = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Unit.UnitsName,
                    Description = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Unit.UnitsTypeCV
                },
                Analyte = new Analyte
                {
                    Id       = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().VariableID,
                    Name     = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Variable.VariableDefinition,
                    Category = new AnalyteCategory
                    {
                        Id           = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Variable.VariableID,
                        Name         = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Variable.VariableTypeCV,
                        StandardUnit = new Unit
                        {
                            Id          = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().UnitsID,
                            Name        = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Unit.UnitsName,
                            Description = observationModel.Action1.FeatureActions.FirstOrDefault().Results.FirstOrDefault().Unit.UnitsTypeCV
                        }
                    }
                },
                Site = new Site
                {
                    Id        = observationModel.Action1.FeatureActions.FirstOrDefault().SamplingFeatureID,
                    Name      = observationModel.Action1.FeatureActions.FirstOrDefault().SamplingFeature.SamplingFeatureName,
                    Latitude  = observationModel.Action1.FeatureActions.FirstOrDefault().SamplingFeature.Site.Latitude,
                    Longitude = observationModel.Action1.FeatureActions.FirstOrDefault().SamplingFeature.Site.Longitude
                }
            };

            return(waterQualityObervationModel);
        }
示例#6
0
        /// <summary>
        /// Query water quality data
        /// </summary>
        /// <param name="startDateTime">query start date</param>
        /// <param name="endDateTime">query end date</param>
        /// <param name="site">query site</param>
        /// <param name="analyte">query analyte</param>
        /// <returns></returns>
        public IQueryable <LabReportSample> QueryWaterQualityData(DateTime startDateTime, DateTime endDateTime, Site site, Analyte analyte)
        {
            var waterQualityObervationModel = from observationModel in _dbContext.Results

                                              where (observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTime >= startDateTime &&
                                                     observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTime <= endDateTime &&
                                                     observationModel.FeatureAction.SamplingFeature.SamplingFeatureID == site.Id &&
                                                     observationModel.VariableID == analyte.Id) //use contains to see if identical value is present
                                              select new LabReportSample
            {
                Id        = observationModel.ResultID,
                DateTime  = observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTime,
                UTCOffset = (long)observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTimeUTCOffset,
                Value     = (int)observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().DataValue,
                Analyte   = new Analyte()
                {
                    Id   = observationModel.VariableID,
                    Name = observationModel.Variable.VariableDefinition,

                    Category = new AnalyteCategory
                    {
                        Id   = observationModel.VariableID,
                        Name = observationModel.Variable.VariableTypeCV
                    }
                },
                Site = new Site()
                {
                    Id        = observationModel.FeatureAction.SamplingFeature.Site.SamplingFeatureID,
                    Name      = observationModel.FeatureAction.SamplingFeature.Site.SamplingFeature.SamplingFeatureName,
                    Latitude  = observationModel.FeatureAction.SamplingFeature.Site.Latitude,
                    Longitude = observationModel.FeatureAction.SamplingFeature.Site.Longitude
                },
                Unit = new Unit
                {
                    Id          = observationModel.UnitsID,
                    Name        = observationModel.Unit.UnitsName,
                    Description = observationModel.Unit.UnitsTypeCV
                },
            };

            return(waterQualityObervationModel);
        }
示例#7
0
        /// <summary>
        /// Query water quality data
        /// </summary>
        /// <param name="startDateTime">query start date</param>
        /// <param name="endDateTime">query end date</param>
        /// <param name="analyte">query analyte</param>
        /// <returns></returns>
        public IQueryable <LabReportSample> QueryWaterQualityData(DateTime startDateTime, DateTime endDateTime, Analyte analyte)
        {
            var waterQualityObervationModel = from observationModel in _dbContext.Results
                                              where (observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTime >= startDateTime &&
                                                     observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTime <= endDateTime &&
                                                     observationModel.VariableID == analyte.Id)
                                              select new LabReportSample
            {
                Id        = observationModel.ResultID,
                DateTime  = observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTime,
                UTCOffset = (long)observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().ValueDateTimeUTCOffset,

                Value   = (int)observationModel.MeasurementResult.MeasurementResultValues.FirstOrDefault().DataValue,                                    //needs to be changed
                Analyte = new Analyte()
                {
                    Id   = observationModel.VariableID,
                    Name = observationModel.Variable.VariableDefinition,

                    Category = new AnalyteCategory
                    {
                        Id   = observationModel.VariableID,
                        Name = observationModel.Variable.VariableTypeCV
                    }
                },
                Unit = new Unit
                {
                    Id          = observationModel.UnitsID,
                    Name        = observationModel.Unit.UnitsName,
                    Description = observationModel.Unit.UnitsTypeCV
                },
            };

            return(waterQualityObervationModel);
        }