diff options
| author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-03-16 13:10:54 +0100 | 
|---|---|---|
| committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-03-16 13:10:54 +0100 | 
| commit | 5eddd6dde8a348ef767f2e270fe2c0fd001033e0 (patch) | |
| tree | f5452a329bb35eb60f990538e783001c1388f40e /backend | |
| parent | da2bbfed902eb095857594e44d71ceec3cdb07d9 (diff) | |
Kada se uploaduje file podaci se upisuju u bazu.
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/api/api/Controllers/FileUploadController.cs | 11 | ||||
| -rw-r--r-- | backend/api/api/Data/UserStoreDatabaseSettings.cs | 1 | ||||
| -rw-r--r-- | backend/api/api/Interfaces/IUserStoreDatabaseSettings.cs | 1 | ||||
| -rw-r--r-- | backend/api/api/Models/FileModel.cs | 14 | ||||
| -rw-r--r-- | backend/api/api/Program.cs | 1 | ||||
| -rw-r--r-- | backend/api/api/Services/FileService.cs | 27 | ||||
| -rw-r--r-- | backend/api/api/Services/IFileService.cs | 9 | ||||
| -rw-r--r-- | backend/api/api/appsettings.json | 17 | 
8 files changed, 71 insertions, 10 deletions
| diff --git a/backend/api/api/Controllers/FileUploadController.cs b/backend/api/api/Controllers/FileUploadController.cs index 68ab814d..3869a6fe 100644 --- a/backend/api/api/Controllers/FileUploadController.cs +++ b/backend/api/api/Controllers/FileUploadController.cs @@ -1,5 +1,6 @@  using System.Net.Http.Headers;  using api.Models; +using api.Services;  using Microsoft.AspNetCore.Authorization;  using Microsoft.AspNetCore.Mvc;  using Microsoft.Net.Http.Headers; @@ -12,10 +13,12 @@ namespace api.Controllers          private string[] permittedExtensions = { ".csv" };          private readonly IConfiguration _configuration;          private JwtToken _token; -        public FileUploadController(IConfiguration configuration) +        private IFileService _fileservice; +        public FileUploadController(IConfiguration configuration,IFileService fileService)          {              _configuration = configuration;              _token = new JwtToken(configuration); +            _fileservice = fileService;          } @@ -68,8 +71,12 @@ namespace api.Controllers              {                  await file.CopyToAsync(stream);              } +            FileModel fileModel= new FileModel(); +            fileModel.path=fullPath; +            fileModel.username=username; +            fileModel=_fileservice.Create(fileModel); -            return Ok(fullPath); +            return Ok(fileModel);          }      }  } diff --git a/backend/api/api/Data/UserStoreDatabaseSettings.cs b/backend/api/api/Data/UserStoreDatabaseSettings.cs index d2391c71..6416ab05 100644 --- a/backend/api/api/Data/UserStoreDatabaseSettings.cs +++ b/backend/api/api/Data/UserStoreDatabaseSettings.cs @@ -11,5 +11,6 @@ namespace api.Data          public string CollectionName { get; set; } = String.Empty;          public string DatasetCollectionName { get; set; } = String.Empty;          public string ModelCollectionName { get; set; } = String.Empty; +        public string FilesCollectionName { get; set; } = String.Empty;      }  } diff --git a/backend/api/api/Interfaces/IUserStoreDatabaseSettings.cs b/backend/api/api/Interfaces/IUserStoreDatabaseSettings.cs index 46ece53c..82312649 100644 --- a/backend/api/api/Interfaces/IUserStoreDatabaseSettings.cs +++ b/backend/api/api/Interfaces/IUserStoreDatabaseSettings.cs @@ -7,5 +7,6 @@          string CollectionName { get; set; }          string DatasetCollectionName { get; set; }          string ModelCollectionName { get; } +        string FilesCollectionName { get; set; }      }  } diff --git a/backend/api/api/Models/FileModel.cs b/backend/api/api/Models/FileModel.cs new file mode 100644 index 00000000..9e7c8b5d --- /dev/null +++ b/backend/api/api/Models/FileModel.cs @@ -0,0 +1,14 @@ +using MongoDB.Bson; +using MongoDB.Bson.Serialization.Attributes; + +namespace api.Models +{ +    public class FileModel +    { +        [BsonId] +        [BsonRepresentation(BsonType.ObjectId)] +        public string _id { get; set; } +        public string username { get; set; } +        public string path { get; set; } +    } +} diff --git a/backend/api/api/Program.cs b/backend/api/api/Program.cs index 24cc5cfe..f3287b4c 100644 --- a/backend/api/api/Program.cs +++ b/backend/api/api/Program.cs @@ -30,6 +30,7 @@ builder.Services.AddScoped<IUserService, UserService>();  builder.Services.AddScoped<IAuthService, AuthService>();  builder.Services.AddScoped<IMlConnectionService, MlConnectionService>();  builder.Services.AddScoped<IModelService, ModelService>(); +builder.Services.AddScoped<IFileService, FileService>();  //Add Authentication diff --git a/backend/api/api/Services/FileService.cs b/backend/api/api/Services/FileService.cs new file mode 100644 index 00000000..29520387 --- /dev/null +++ b/backend/api/api/Services/FileService.cs @@ -0,0 +1,27 @@ +using api.Interfaces; +using api.Models; +using MongoDB.Driver; + +namespace api.Services +{ +    public class FileService : IFileService +    { + +        private readonly IMongoCollection<FileModel> _file; + +        public FileService(IUserStoreDatabaseSettings settings, IMongoClient mongoClient) +        { +            var database = mongoClient.GetDatabase(settings.DatabaseName); +            _file = database.GetCollection<FileModel>(settings.FilesCollectionName); +        } + +        public FileModel Create(FileModel file) +        { +            if (file == null) +                return null; +            _file.InsertOne(file); +            return file; + +        } +    } +} diff --git a/backend/api/api/Services/IFileService.cs b/backend/api/api/Services/IFileService.cs new file mode 100644 index 00000000..14d843ca --- /dev/null +++ b/backend/api/api/Services/IFileService.cs @@ -0,0 +1,9 @@ +using api.Models; + +namespace api.Services +{ +    public interface IFileService +    { +        FileModel Create(FileModel file); +    } +}
\ No newline at end of file diff --git a/backend/api/api/appsettings.json b/backend/api/api/appsettings.json index 63030c15..86363075 100644 --- a/backend/api/api/appsettings.json +++ b/backend/api/api/appsettings.json @@ -9,18 +9,19 @@      }    },    "AllowedHosts": "*", -  "UserStoreDatabaseSettings": { -    /* LocalHost +    "UserStoreDatabaseSettings": { +        /* LocalHost      "ConnectionString": "mongodb://127.0.0.1:27017/",      "DatabaseName": "si_project",      "CollectionName": "User",      "DatasetCollectionName" : "Dataset",      "ModelCollectionName" : "Model"      */ -    "ConnectionString": "mongodb+srv://si_user:si_user@sidatabase.twtfm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority", -    "DatabaseName": "si_db", -    "CollectionName": "users", -    "DatasetCollectionName": "Dataset", -    "ModelCollectionName": "Model" -  } +        "ConnectionString": "mongodb+srv://si_user:si_user@sidatabase.twtfm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority", +        "DatabaseName": "si_db", +        "CollectionName": "users", +        "DatasetCollectionName": "Dataset", +        "ModelCollectionName": "Model", +        "FilesCollectionName": "Files" +    }  } | 
