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