예제 #1
0
        public WasteWaterTreatmentPlant HarmonizeData([FromUri] FileFormat fileFormat, [FromUri] string waterPlant, [FromUri] string treatmentStepType)
        {
            try
            {
                WasteWaterTreatmentPlant wwtp = null;
                if (fileFormat == FileFormat.CSV || fileFormat == FileFormat.XLS || fileFormat == FileFormat.XLSX)
                {
                    var stream = Request.Content.ReadAsStreamAsync().Result;
                    wwtp = _businessLogic.HarmonizeData(stream, fileFormat, waterPlant, treatmentStepType);
                }
                else if (fileFormat == FileFormat.JSON)
                {
                    var json = Request.Content.ReadAsStringAsync().Result;
                    wwtp = _businessLogic.HarmonizeData(json, waterPlant, treatmentStepType);
                }

                return(wwtp);
            }
            catch (Exception e)
            {
                throw new HttpException((int)HttpStatusCode.BadRequest, $"Data could not be harmonized. Reason: {e.Message}");
            }
        }
예제 #2
0
        private bool IsQualityIndicators(dynamic dynamicObject, out WasteWaterTreatmentPlant wwtp, bool assignToWwtp = false)
        {
            var isCorrect = true;

            wwtp = new WasteWaterTreatmentPlant();

            try
            {
                var qualityIndicatorList =
                    (List <WaterQualityIndicator>)JsonConvert.DeserializeObject <List <WaterQualityIndicator> >(dynamicObject.ToString());

                // checks if list is correct
                if (qualityIndicatorList == null || !qualityIndicatorList.Any())
                {
                    isCorrect = false;
                }

                if (assignToWwtp)
                {
                    wwtp.GeneralIndicators = qualityIndicatorList;
                }
                else
                {
                    wwtp.TreatmentSteps = new List <WaterTreatmentStep>
                    {
                        new WaterTreatmentStep()
                        {
                            QualityIndicators = qualityIndicatorList
                        }
                    };
                }

                if (isCorrect)
                {
                    return(true);
                }
            }
            catch (Exception e)
            {
            }

            try
            {
                var qualityIndicator =
                    (WaterQualityIndicator)JsonConvert.DeserializeObject <WaterQualityIndicator>(dynamicObject.ToString());

                if (string.IsNullOrEmpty(qualityIndicator.Name) ||
                    qualityIndicator.TimeStamp == default(DateTime) ||
                    string.IsNullOrEmpty(qualityIndicator.Unit))
                {
                    throw new Exception("not valid qualityindentifier");
                }

                if (assignToWwtp)
                {
                    if (wwtp.GeneralIndicators == null)
                    {
                        wwtp.GeneralIndicators = new List <WaterQualityIndicator>();
                    }
                    wwtp.GeneralIndicators.Add(qualityIndicator);
                }
                else
                {
                    if (wwtp.TreatmentSteps == null)
                    {
                        wwtp.TreatmentSteps = new List <WaterTreatmentStep>
                        {
                            new WaterTreatmentStep()
                        };
                    }

                    if (wwtp.TreatmentSteps.First().QualityIndicators == null)
                    {
                        wwtp.TreatmentSteps.First().QualityIndicators = new List <WaterQualityIndicator>();
                    }

                    wwtp.TreatmentSteps.First().QualityIndicators.Add(qualityIndicator);
                }

                return(true);
            }
            catch (Exception e)
            {
                wwtp = null;
                return(false);
            }
        }
예제 #3
0
        private bool IsTreatmentSteps(dynamic dynamicObject, out WasteWaterTreatmentPlant wwtp)
        {
            var isCorrect = true;

            wwtp = new WasteWaterTreatmentPlant();

            try
            {
                var treatmentStepList = (List <WaterTreatmentStep>)JsonConvert.DeserializeObject <List <WaterTreatmentStep> >(dynamicObject.ToString());

                // checks if list is correct
                if (treatmentStepList == null || !treatmentStepList.Any())
                {
                    isCorrect = false;
                }

                else if (treatmentStepList.FirstOrDefault().QualityIndicators == null ||
                         !treatmentStepList.FirstOrDefault().QualityIndicators.Any())
                {
                    isCorrect = false;
                }

                wwtp.TreatmentSteps = treatmentStepList;

                if (isCorrect)
                {
                    return(true);
                }
            }
            catch (Exception e)
            {
            }

            try
            {
                var treatmentStep = (WaterTreatmentStep)JsonConvert.DeserializeObject <WaterTreatmentStep>(dynamicObject.ToString());

                // checks if treatmentstep is correct
                if (treatmentStep.QualityIndicators == null ||
                    !treatmentStep.QualityIndicators.Any())
                {
                    throw new Exception("invalid treatmentStep");
                }

                if (wwtp == null)
                {
                    wwtp = new WasteWaterTreatmentPlant()
                    {
                        TreatmentSteps = new List <WaterTreatmentStep>()
                    };
                }
                else if (wwtp.TreatmentSteps == null || !wwtp.TreatmentSteps.Any())
                {
                    wwtp.TreatmentSteps = new List <WaterTreatmentStep>();
                }
                wwtp.TreatmentSteps.Add(treatmentStep);

                return(true);
            }
            catch (Exception e)
            {
                wwtp = null;
                return(false);
            }
        }
예제 #4
0
        public static WasteWaterTreatmentPlant CreateWwtpMock()
        {
            //WWTP WaterPlant
            var wwtpMock = new WasteWaterTreatmentPlant();

            wwtpMock.Location       = "Germany";
            wwtpMock.Name           = "MockPlant";
            wwtpMock.TreatmentSteps = new List <WaterTreatmentStep>();

            //WWTP TreatmentSteps
            var waterTreatmentStep1 = new WaterTreatmentStep
            {
                Name = "TreatmentStep1",
                QualityIndicators = new List <WaterQualityIndicator>()
            };

            var waterTreatmentStep2 = new WaterTreatmentStep
            {
                Name = "TreatmentStep2",
                QualityIndicators = new List <WaterQualityIndicator>()
            };

            //WWTP QualityIndicators
            var qualityIndicator1 = new WaterQualityIndicator
            {
                Name      = "QualityIndicator1",
                TimeStamp = DateTime.Now,
                Unit      = "mg/L",
                Value     = 1.01
            };

            var qualityIndicator2 = new WaterQualityIndicator
            {
                Name      = "QualityIndicator2",
                TimeStamp = DateTime.Now,
                Unit      = "mg/L",
                Value     = 1.02
            };

            var qualityIndicator3 = new WaterQualityIndicator
            {
                Name      = "QualityIndicator3",
                TimeStamp = DateTime.Now,
                Unit      = "mg/L",
                Value     = 1.03
            };

            var qualityIndicator4 = new WaterQualityIndicator
            {
                Name      = "QualityIndicator4",
                TimeStamp = DateTime.Now,
                Unit      = "mg/L",
                Value     = 1.04
            };

            //Assignments
            waterTreatmentStep1.QualityIndicators.Add(qualityIndicator1);
            waterTreatmentStep1.QualityIndicators.Add(qualityIndicator2);

            waterTreatmentStep2.QualityIndicators.Add(qualityIndicator3);
            waterTreatmentStep2.QualityIndicators.Add(qualityIndicator4);

            wwtpMock.TreatmentSteps.Add(waterTreatmentStep1);
            wwtpMock.TreatmentSteps.Add(waterTreatmentStep2);

            return(wwtpMock);
        }