From c1356ddc1c5cd5cbc1603384555b741824831104 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Sun, 13 Mar 2022 18:32:12 +0100 Subject: Proslediti model poslat od frontend-a na python microservice. --- backend/api/api/Controllers/ModelController.cs | 29 ++++++++++++++++++++++++ backend/api/api/Program.cs | 1 + backend/api/api/Services/IMlConnectionService.cs | 8 +++++++ backend/api/api/Services/MlConnectionService.cs | 17 ++++++++++++++ backend/api/api/api.csproj | 2 ++ 5 files changed, 57 insertions(+) create mode 100644 backend/api/api/Controllers/ModelController.cs create mode 100644 backend/api/api/Services/IMlConnectionService.cs create mode 100644 backend/api/api/Services/MlConnectionService.cs diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs new file mode 100644 index 00000000..5e22c61d --- /dev/null +++ b/backend/api/api/Controllers/ModelController.cs @@ -0,0 +1,29 @@ +using api.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace api.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class ModelController : ControllerBase + { + + private IMlConnectionService _mlService; + + public ModelController(IMlConnectionService mlService) + { + _mlService = mlService; + } + + [HttpPost("sendModel")] + [Authorize(Roles = "User")] + public async Task> Test([FromBody] object model) + { + var result = await _mlService.SendModelAsync(model); + return Ok(result); + } + + } +} diff --git a/backend/api/api/Program.cs b/backend/api/api/Program.cs index 2c569daf..702ef259 100644 --- a/backend/api/api/Program.cs +++ b/backend/api/api/Program.cs @@ -28,6 +28,7 @@ builder.Services.AddSingleton(s => builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); //Add Authentication builder.Services.AddAuthentication( diff --git a/backend/api/api/Services/IMlConnectionService.cs b/backend/api/api/Services/IMlConnectionService.cs new file mode 100644 index 00000000..f38fb50a --- /dev/null +++ b/backend/api/api/Services/IMlConnectionService.cs @@ -0,0 +1,8 @@ + +namespace api.Services +{ + public interface IMlConnectionService + { + Task SendModelAsync(object model); + } +} \ No newline at end of file diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs new file mode 100644 index 00000000..a7c81c43 --- /dev/null +++ b/backend/api/api/Services/MlConnectionService.cs @@ -0,0 +1,17 @@ +using RestSharp; + +namespace api.Services +{ + public class MlConnectionService : IMlConnectionService + { + public async Task SendModelAsync(object model) + { + RestClient client = new RestClient("https://jsonplaceholder.typicode.com");//Promeniti na python api kad se odradi + var request = new RestRequest("posts", Method.Post);//Promeniti na python api kad se odradi + request.AddJsonBody(model); + var result = await client.ExecuteAsync(request); + return result.Content;//Response od ML microservisa + + } + } +} diff --git a/backend/api/api/api.csproj b/backend/api/api/api.csproj index 46842c3e..f38621ca 100644 --- a/backend/api/api/api.csproj +++ b/backend/api/api/api.csproj @@ -10,6 +10,8 @@ + + -- cgit v1.2.3 From 0fc05f3be0332b38acbefe86319aebd4affc456c Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Tue, 15 Mar 2022 16:44:54 +0100 Subject: Dodata putanja do python API-a. --- backend/api/api/Services/MlConnectionService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/api/api/Services/MlConnectionService.cs b/backend/api/api/Services/MlConnectionService.cs index a7c81c43..7adade0c 100644 --- a/backend/api/api/Services/MlConnectionService.cs +++ b/backend/api/api/Services/MlConnectionService.cs @@ -6,8 +6,8 @@ namespace api.Services { public async Task SendModelAsync(object model) { - RestClient client = new RestClient("https://jsonplaceholder.typicode.com");//Promeniti na python api kad se odradi - var request = new RestRequest("posts", Method.Post);//Promeniti na python api kad se odradi + RestClient client = new RestClient("http://localhost:5000"); + var request = new RestRequest("data", Method.Post); request.AddJsonBody(model); var result = await client.ExecuteAsync(request); return result.Content;//Response od ML microservisa -- cgit v1.2.3 From 9b120a7ab2f10133f1cdb4cd793680e38c83fffd Mon Sep 17 00:00:00 2001 From: Ivan Ljubisavljevic Date: Tue, 15 Mar 2022 22:31:51 +0100 Subject: Ispravljen model za dataset, odradjen model za model dataseta --- backend/api/api/Controllers/AuthController.cs | 2 -- backend/api/api/Controllers/UserController.cs | 3 ++ backend/api/api/Models/Dataset.cs | 43 +++++++----------------- backend/api/api/Models/Model.cs | 47 +++++++++++++++++++++++++++ backend/api/api/Services/DatasetService.cs | 6 ++-- 5 files changed, 64 insertions(+), 37 deletions(-) create mode 100644 backend/api/api/Models/Model.cs diff --git a/backend/api/api/Controllers/AuthController.cs b/backend/api/api/Controllers/AuthController.cs index 6dfe483a..7167d1bf 100644 --- a/backend/api/api/Controllers/AuthController.cs +++ b/backend/api/api/Controllers/AuthController.cs @@ -49,8 +49,6 @@ namespace api.Controllers return Ok(newToken); - - } diff --git a/backend/api/api/Controllers/UserController.cs b/backend/api/api/Controllers/UserController.cs index d41a42e3..58121656 100644 --- a/backend/api/api/Controllers/UserController.cs +++ b/backend/api/api/Controllers/UserController.cs @@ -1,5 +1,6 @@ using api.Models; using api.Services; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; @@ -72,6 +73,7 @@ namespace api.Controllers // PUT api//5 [HttpPut("{id}")] + [Authorize(Roles = "User")] public ActionResult Put(string id, [FromBody] User user) { var existingUser = userService.Get(id); @@ -86,6 +88,7 @@ namespace api.Controllers // DELETE api//5 [HttpDelete("{id}")] + [Authorize(Roles = "User")] public ActionResult Delete(string id) { var user = userService.Get(id); diff --git a/backend/api/api/Models/Dataset.cs b/backend/api/api/Models/Dataset.cs index 0dc87f40..d58b3143 100644 --- a/backend/api/api/Models/Dataset.cs +++ b/backend/api/api/Models/Dataset.cs @@ -1,46 +1,25 @@ -using MongoDB.Bson; +using System; +using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace api.Models { - public class Dataset - { + public class Dataset + { internal string uploaderId; [BsonId] [BsonRepresentation(BsonType.ObjectId)]//mongo data type to .net public string _id { get; set; } - [BsonElement("uploaderId")] - public string UploaderId { get; set; } - [BsonElement("name")] public string name { get; set; } - public string description { get; set; } - //datetime - public string dateCreated { get; set; } - - public int[] inputColumns { get; set; } - public int columnToPredict { get; set; } - public bool randomTestSet { get; set; } - public int randomTestSetDistribution { get; set; } - - - public string type { get; set; } - public string encoding { get; set; } - public string optimizer { get; set; } - public string lossFunction { get; set; } - public int inputNeurons { get; set; } - public int hiddenLayerNeurons { get; set; } - public int hiddenLayers { get; set; } - public int batchSize { get; set; } - public string inputLayerActivationFunction { get; set; } - public string hiddenLayerActivationFunction { get; set; } - public string outputLayerActivationFunction { get; set; } - - - [BsonElement("extension")] + public string header { get; set; } + public int fileId { get; set; } public string extension { get; set; } - - + public bool isPublic { get; set; } + public bool accessibleByLink { get; set; } + public string dateCreated { get; set; } + public string lastUpdated { get; set; } } } + diff --git a/backend/api/api/Models/Model.cs b/backend/api/api/Models/Model.cs new file mode 100644 index 00000000..2e2dd5be --- /dev/null +++ b/backend/api/api/Models/Model.cs @@ -0,0 +1,47 @@ +using MongoDB.Bson; +using MongoDB.Bson.Serialization.Attributes; + +namespace api.Models +{ + public class Model + { + internal string uploaderId; + + [BsonId] + [BsonRepresentation(BsonType.ObjectId)]//mongo data type to .net + public string _id { get; set; } + [BsonElement("uploaderId")] + public string UploaderId { get; set; } + + + public string name { get; set; } + public string description { get; set; } + //datetime + public string dateCreated { get; set; } + public string lastUpdated { get; set; } + //proveriti id + public string datasetId { get; set; } + + //Test set settings + public int[] inputColumns { get; set; } + public int columnToPredict { get; set; } + public bool radnomOrder {get;set;} + public bool randomTestSet { get; set; } + public int randomTestSetDistribution { get; set; } + + //Neural net training + public string type { get; set; } + public string encoding { get; set; } + public string optimizer { get; set; } + public string lossFunction { get; set; } + public int inputNeurons { get; set; } + public int hiddenLayerNeurons { get; set; } + public int hiddenLayers { get; set; } + public int batchSize { get; set; } + public string inputLayerActivationFunction { get; set; } + public string hiddenLayerActivationFunction { get; set; } + public string outputLayerActivationFunction { get; set; } + + + } +} diff --git a/backend/api/api/Services/DatasetService.cs b/backend/api/api/Services/DatasetService.cs index 1b6d22be..32136a2e 100644 --- a/backend/api/api/Services/DatasetService.cs +++ b/backend/api/api/Services/DatasetService.cs @@ -23,7 +23,7 @@ namespace api.Services //brisanje odredjenog name-a public void Delete(string uploaderId, string name) { - _dataset.DeleteOne(dataset => (dataset.UploaderId == uploaderId && dataset.name == name)); + _dataset.DeleteOne(dataset => (dataset.uploaderId == uploaderId && dataset.name == name)); } public List GetAllDatesets(string uploaderId) { @@ -31,13 +31,13 @@ namespace api.Services } public Dataset GetOneDataset(string uploaderId, string name) { - return _dataset.Find(dataset => dataset.UploaderId == uploaderId && dataset.name == name).FirstOrDefault(); + return _dataset.Find(dataset => dataset.uploaderId == uploaderId && dataset.name == name).FirstOrDefault(); } //ako je potrebno da se zameni name ili ekstenzija public void Update(string uploaderId, string name, Dataset dataset) { - _dataset.ReplaceOne(dataset => dataset.UploaderId == uploaderId && dataset.name == name, dataset); + _dataset.ReplaceOne(dataset => dataset.uploaderId == uploaderId && dataset.name == name, dataset); } } } -- cgit v1.2.3