aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/api/api/Controllers/DatasetController.cs68
-rw-r--r--backend/api/api/Interfaces/IFileService.cs2
-rw-r--r--backend/api/api/Services/FileService.cs6
-rw-r--r--backend/api/api/Services/FillAnEmptyDb.cs20
-rw-r--r--frontend/src/app/_data/Dataset.ts1
-rw-r--r--frontend/src/app/_elements/folder/folder.component.ts4
-rw-r--r--frontend/src/app/_services/datasets.service.ts4
7 files changed, 96 insertions, 9 deletions
diff --git a/backend/api/api/Controllers/DatasetController.cs b/backend/api/api/Controllers/DatasetController.cs
index a6ebe8ac..7602a621 100644
--- a/backend/api/api/Controllers/DatasetController.cs
+++ b/backend/api/api/Controllers/DatasetController.cs
@@ -148,7 +148,75 @@ namespace api.Controllers
return Ok();
}
}
+ // POST api/<DatasetController>/stealDs
+ [HttpPost("stealDs")]
+ [Authorize(Roles = "User,Guest")]
+ public async Task<ActionResult<Dataset>> StealDs([FromBody] Dataset dataset)
+ {
+ string uploaderId = getUserId();
+
+ dataset.uploaderId = uploaderId;
+
+ //da li ce preko tokena da se ubaci username ili front salje
+ //dataset.username = usernameToken;
+ //username = "" ako je GUEST DODAO
+ var existingDataset = _datasetService.GetOneDatasetN(dataset.uploaderId, dataset.name);
+
+ if (existingDataset != null)
+ return NotFound($"Dataset with this name already exists");
+ else
+ {
+ dataset.dateCreated = DateTime.Now;
+ dataset.lastUpdated = DateTime.Now;
+ dataset.isPublic = false;
+
+ FileModel fileModel = _fileService.getFile(dataset.fileId);
+ string folderName = "UploadedFiles";
+ var folderPath = Path.Combine(Directory.GetCurrentDirectory(), folderName, uploaderId);
+
+ string ext = ".csv";
+
+ //nesto
+
+ //Check Directory
+ if (!Directory.Exists(folderPath))
+ {
+ Directory.CreateDirectory(folderPath);
+ }
+ //Index file if same filename
+ var fullPath = Path.Combine(folderPath, dataset.name + ext);
+ int i = 0;
+
+ while (System.IO.File.Exists(fullPath))
+ {
+ i++;
+ fullPath = Path.Combine(folderPath, dataset.name + i.ToString() + ext);
+ }
+
+ dataset.fileId = "";
+
+ _fileService.CopyFile(fileModel.path, fullPath);
+
+
+ FileModel fileModel1 = new FileModel();
+ fileModel1.type = ext;
+ fileModel1.path = fullPath;
+ fileModel1.uploaderId = uploaderId;
+ fileModel1.date = DateTime.Now.ToUniversalTime();
+ fileModel1 = _fileService.Create(fileModel1);
+
+ dataset.fileId = fileModel1._id;
+
+ //nesto
+
+
+ dataset.isPreProcess = false;
+ _datasetService.Create(dataset);
+ _mlConnectionService.PreProcess(dataset, fileModel.path, uploaderId);
+ return Ok();
+ }
+ }
// PUT api/<DatasetController>/{name}
[HttpPut("{id}")]
diff --git a/backend/api/api/Interfaces/IFileService.cs b/backend/api/api/Interfaces/IFileService.cs
index e061dfdb..00dc0002 100644
--- a/backend/api/api/Interfaces/IFileService.cs
+++ b/backend/api/api/Interfaces/IFileService.cs
@@ -9,5 +9,7 @@ namespace api.Services
public FileModel getFile(string id);
bool CheckDb();
string GetFileId(string fullPath);
+ bool CopyFile(string sourceFile, string destinacionFile);
+
}
} \ No newline at end of file
diff --git a/backend/api/api/Services/FileService.cs b/backend/api/api/Services/FileService.cs
index ea3fe56e..6ef74ca1 100644
--- a/backend/api/api/Services/FileService.cs
+++ b/backend/api/api/Services/FileService.cs
@@ -59,5 +59,11 @@ namespace api.Services
return file._id;
}
+
+ public bool CopyFile(string sourceFile, string destinacionFile)
+ {
+ File.Copy(sourceFile, destinacionFile, true);
+ return true;
+ }
}
}
diff --git a/backend/api/api/Services/FillAnEmptyDb.cs b/backend/api/api/Services/FillAnEmptyDb.cs
index fc169853..28f293ce 100644
--- a/backend/api/api/Services/FillAnEmptyDb.cs
+++ b/backend/api/api/Services/FillAnEmptyDb.cs
@@ -53,7 +53,7 @@ namespace api.Services
dataset._id = "";
dataset.uploaderId = "000000000000000000000000";
- dataset.name = "Titanik dataset";
+ dataset.name = "Titanik dataset(public)";
dataset.description = "Titanik dataset";
dataset.fileId = _fileService.GetFileId(fullPath);
dataset.extension = ".csv";
@@ -61,7 +61,7 @@ namespace api.Services
dataset.accessibleByLink = true;
dataset.dateCreated = DateTime.Now;
dataset.lastUpdated = DateTime.Now;
- dataset.delimiter = "";
+ dataset.delimiter = ",";
dataset.columnInfo = new ColumnInfo[] { };
dataset.columnInfo = new[]
{
@@ -84,7 +84,7 @@ namespace api.Services
dataset.nullRows = 708;
dataset.isPreProcess = true;
dataset.cMatrix = new float[11][];
- dataset.cMatrix[0] = new float[] {1f,-0.005006660707294941f, -0.03514399379491806f,-0.03855886310338974f,0.04293888062238693f,0.03684719651937485f};
+ dataset.cMatrix[0] = new float[] { 1f, -0.005006660707294941f, -0.03514399379491806f, -0.03855886310338974f, 0.04293888062238693f, 0.03684719651937485f };
_datasetService.Create(dataset);
@@ -173,14 +173,14 @@ namespace api.Services
dataset._id = "";
dataset.uploaderId = "000000000000000000000000";
dataset.name = "Diamonds dataset";
- dataset.description = "Diamonds dataset";
+ dataset.description = "Diamonds dataset(public)";
dataset.fileId = _fileService.GetFileId(fullPath);
dataset.extension = ".csv";
dataset.isPublic = true;
dataset.accessibleByLink = true;
dataset.dateCreated = DateTime.Now;
dataset.lastUpdated = DateTime.Now;
- dataset.delimiter = "";
+ dataset.delimiter = ",";
dataset.columnInfo = new[]
{
new ColumnInfo( "Unnamed: 0", true, 0, 26969.5f, 0, 53939, 26969.5f, new string[]{ }, new int[] {}, new float[] {}, 0.01f,0.1f ),
@@ -199,6 +199,9 @@ namespace api.Services
dataset.nullCols = 0;
dataset.nullRows = 0;
dataset.isPreProcess = true;
+ dataset.cMatrix = new float[11][];
+ dataset.cMatrix[0] = new float[] { 1f, -0.005006660707294941f, -0.03514399379491806f, -0.03855886310338974f, 0.04293888062238693f, 0.03684719651937485f };
+
_datasetService.Create(dataset);
@@ -295,14 +298,14 @@ namespace api.Services
dataset._id = "";
dataset.uploaderId = "000000000000000000000000";
dataset.name = "Iris dataset";
- dataset.description = "Iris dataset";
+ dataset.description = "Iris dataset(public) ";
dataset.fileId = _fileService.GetFileId(fullPath);
dataset.extension = ".csv";
dataset.isPublic = true;
dataset.accessibleByLink = true;
dataset.dateCreated = DateTime.Now;
dataset.lastUpdated = DateTime.Now;
- dataset.delimiter = "";
+ dataset.delimiter = ",";
dataset.columnInfo = new[]
{
new ColumnInfo( "sepal_length", true, 0, 5.8433332443237305f, 4.300000190734863f, 7.900000095367432f, 5.800000190734863f, new string[]{ }, new int[] {}, new float[] {}, 0.01f, 0.1f ),
@@ -314,6 +317,9 @@ namespace api.Services
dataset.nullCols = 150;
dataset.nullRows = 0;
dataset.isPreProcess = true;
+ dataset.cMatrix = new float[11][];
+ dataset.cMatrix[0] = new float[] { 1f, -0.005006660707294941f, -0.03514399379491806f, -0.03855886310338974f, 0.04293888062238693f, 0.03684719651937485f };
+
_datasetService.Create(dataset);
diff --git a/frontend/src/app/_data/Dataset.ts b/frontend/src/app/_data/Dataset.ts
index a962fe6b..73b77bd0 100644
--- a/frontend/src/app/_data/Dataset.ts
+++ b/frontend/src/app/_data/Dataset.ts
@@ -17,6 +17,7 @@ export default class Dataset extends FolderFile {
public rowCount: number = 0,
public nullRows: number = 0,
public nullCols: number = 0,
+ public isPreProcess : Boolean = false,
public cMatrix: number[][] = []
) {
super(name, dateCreated, lastUpdated);
diff --git a/frontend/src/app/_elements/folder/folder.component.ts b/frontend/src/app/_elements/folder/folder.component.ts
index fff5a25d..d26ac999 100644
--- a/frontend/src/app/_elements/folder/folder.component.ts
+++ b/frontend/src/app/_elements/folder/folder.component.ts
@@ -301,9 +301,9 @@ export class FolderComponent implements AfterViewInit {
switch (this.type) {
case FolderType.Dataset:
(<Dataset>file)._id="";
-
+ (<Dataset>file).isPreProcess = true;
(<Dataset>file).isPublic=false;
- this.datasetsService.addDataset(<Dataset>file).subscribe((response) => {
+ this.datasetsService.stealDataset(<Dataset>file).subscribe((response) => {
this.filteredFiles.splice(this.filteredFiles.indexOf(file), 1);
this.refreshFiles(null);
});
diff --git a/frontend/src/app/_services/datasets.service.ts b/frontend/src/app/_services/datasets.service.ts
index f5677097..1b961442 100644
--- a/frontend/src/app/_services/datasets.service.ts
+++ b/frontend/src/app/_services/datasets.service.ts
@@ -24,6 +24,10 @@ export class DatasetsService {
return this.http.post(`${Configuration.settings.apiURL}/dataset/add`, dataset, { headers: this.authService.authHeader() });
}
+ stealDataset(dataset: Dataset): Observable<any> {
+ return this.http.post(`${Configuration.settings.apiURL}/dataset/stealDs`, dataset, { headers: this.authService.authHeader() });
+ }
+
getDatasetFile(fileId: any): any {
return this.http.get(`${Configuration.settings.apiURL}/file/csvRead/${fileId}/-1/11`, { headers: this.authService.authHeader(), responseType: 'text' });
}