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 } }
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); }
/// <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); }
/// <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); }
/// <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); }