From 317bb099afdd9474364124b7e2733525c0354407 Mon Sep 17 00:00:00 2001 From: Matthew Winston Date: Wed, 20 Dec 2023 15:10:22 -0500 Subject: [PATCH 01/19] progress on Malcolm data parsing --- .../Malcolm/IMalcolmBusiness.cs | 19 +++++ .../CSETWebCore.Model/Malcolm/Buckets.cs | 23 +++++ .../CSETWebCore.Model/Malcolm/Filters.cs | 14 +++ .../CSETWebCore.Model/Malcolm/GenericInput.cs | 20 +++++ .../CSETWebCore.Model/Malcolm/ValuePairs.cs | 15 ++++ .../CSETWebCore.Model/Malcolm/Values.cs | 15 ++++ .../Controllers/MalcolmController.cs | 85 +++++++++++++++++++ .../my-assessments.component.html | 1 + .../my-assessments.component.ts | 8 +- CSETWebNg/src/app/models/malcolm.model.ts | 48 +++++++++++ CSETWebNg/src/app/services/hydro.service.ts | 4 + 11 files changed, 251 insertions(+), 1 deletion(-) create mode 100644 CSETWebApi/CSETWeb_Api/CSETWebCore.Interfaces/Malcolm/IMalcolmBusiness.cs create mode 100644 CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Buckets.cs create mode 100644 CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Filters.cs create mode 100644 CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/GenericInput.cs create mode 100644 CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/ValuePairs.cs create mode 100644 CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Values.cs create mode 100644 CSETWebApi/CSETWeb_Api/CSETWeb_ApiCore/Controllers/MalcolmController.cs create mode 100644 CSETWebNg/src/app/models/malcolm.model.ts diff --git a/CSETWebApi/CSETWeb_Api/CSETWebCore.Interfaces/Malcolm/IMalcolmBusiness.cs b/CSETWebApi/CSETWeb_Api/CSETWebCore.Interfaces/Malcolm/IMalcolmBusiness.cs new file mode 100644 index 0000000000..1c222d309c --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWebCore.Interfaces/Malcolm/IMalcolmBusiness.cs @@ -0,0 +1,19 @@ +//////////////////////////////// +// +// Copyright 2023 Battelle Energy Alliance, LLC +// +// +//////////////////////////////// +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSETWebCore.Interfaces.Malcolm +{ + public interface IMalcolmBusiness + { + + } +} diff --git a/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Buckets.cs b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Buckets.cs new file mode 100644 index 0000000000..4c37a8b75a --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Buckets.cs @@ -0,0 +1,23 @@ +//////////////////////////////// +// +// Copyright 2023 Battelle Energy Alliance, LLC +// +// +//////////////////////////////// +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSETWebCore.Model.Malcolm +{ + public class Buckets + { + public int DocNumber { get; set; } + public string Key { get; set; } + public List Values { get; set; } + //public int DocCountErrorUpperBound { get; set; } + //public int SumOtherDocCount { get; set; } + } +} diff --git a/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Filters.cs b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Filters.cs new file mode 100644 index 0000000000..3052aca66d --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Filters.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSETWebCore.Model.Malcolm +{ + public class Filters + { + public List NetworkDirection { get; set; } + public string Tags { get; set; } + } +} diff --git a/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/GenericInput.cs b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/GenericInput.cs new file mode 100644 index 0000000000..3685a6b9ff --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/GenericInput.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CSETWebCore.Model.Malcolm; +using Newtonsoft.Json.Linq; + +namespace CSETWebCore.Model.Malcolm +{ + public class GenericInput: List + { + public List Fields { get; set; } + public List Filters { get; set; } + public List Range { get; set; } + public List Urls { get; set; } + //public JArray Buckets { get; set; } + public Values Values { get; set; } + } +} diff --git a/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/ValuePairs.cs b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/ValuePairs.cs new file mode 100644 index 0000000000..c875cbf5b1 --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/ValuePairs.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSETWebCore.Model.Malcolm +{ + public class ValuePairs + { + public int DocNumber { get; set; } + public string Key { get; set; } + public Values Values { get; set; } + } +} diff --git a/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Values.cs b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Values.cs new file mode 100644 index 0000000000..b93b524855 --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWebCore.Model/Malcolm/Values.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSETWebCore.Model.Malcolm +{ + public class Values + { + public List Buckets { get; set; } + public int DocCountErrorUpperBound { get; set; } + public int SumOtherDocCount { get; set; } + } +} diff --git a/CSETWebApi/CSETWeb_Api/CSETWeb_ApiCore/Controllers/MalcolmController.cs b/CSETWebApi/CSETWeb_Api/CSETWeb_ApiCore/Controllers/MalcolmController.cs new file mode 100644 index 0000000000..1813e7e324 --- /dev/null +++ b/CSETWebApi/CSETWeb_Api/CSETWeb_ApiCore/Controllers/MalcolmController.cs @@ -0,0 +1,85 @@ +//////////////////////////////// +// +// Copyright 2023 Battelle Energy Alliance, LLC +// +// +//////////////////////////////// +using CSETWebCore.Business.AssessmentIO.Export; +using CSETWebCore.Business.Merit; +using CSETWebCore.DataLayer.Model; +using CSETWebCore.Helpers; +using CSETWebCore.Interfaces.Helpers; +using CSETWebCore.Model.AssessmentIO; +using CSETWebCore.Model.Malcolm; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using NPOI.XSSF.UserModel; +using NuGet.Protocol; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text.Json; + +namespace CSETWebCore.Api.Controllers +{ + public class MalcolmController : ControllerBase + { + private ITokenManager _token; + private CSETContext _context; + private IHttpContextAccessor _http; + private IJSONFileExport _json; + private TextWriter jsonWriter; + + + /// + /// Controller + /// + public MalcolmController(ITokenManager token, CSETContext context, IHttpContextAccessor http) + { + _token = token; + _context = context; + _http = http; + } + + + [HttpGet] + [Route("api/malcolm")] + public IActionResult MapSourceToDestinationData() + { + try + { + //string text = System.IO.File.ReadAllText("C:\\Users\\WINSMR\\Downloads\\source_to_destination_ip.json"); + + //GenericInput json = JsonConvert.DeserializeObject(text); + + string[] files = Directory.GetFiles("C:\\Users\\WINSMR\\Documents\\MalcolmJson"); + var malcolmDataList = new List(); + + try + { + foreach (string file in files) + { + string jsonString = System.IO.File.ReadAllText(file); + var malcolmData = JsonConvert.DeserializeObject(jsonString); + //weatherData = model.AladinModel.ToList(); + + malcolmDataList.Add(malcolmData); + } + } + catch (Exception exc) + { + NLog.LogManager.GetCurrentClassLogger().Error($"... {exc}"); + } + + return Ok(); + } + catch (Exception exc) + { + NLog.LogManager.GetCurrentClassLogger().Error($"... {exc}"); + } + + return null; + } + } +} diff --git a/CSETWebNg/src/app/initial/my-assessments/my-assessments.component.html b/CSETWebNg/src/app/initial/my-assessments/my-assessments.component.html index c325266568..7a2f49a1fc 100644 --- a/CSETWebNg/src/app/initial/my-assessments/my-assessments.component.html +++ b/CSETWebNg/src/app/initial/my-assessments/my-assessments.component.html @@ -41,6 +41,7 @@

{{ t('my assessments') }} +