From 4b10635522cb75b4838b0528d602fd4b58b3e4a7 Mon Sep 17 00:00:00 2001 From: Thomas Fransolet Date: Thu, 23 Dec 2021 14:06:58 +0100 Subject: [PATCH] Upload multiple files at once (resource) --- .../Controllers/AuthenticationController.cs | 2 +- .../Controllers/ResourceController.cs | 41 +++++++++---------- ManagerService/Startup.cs | 5 +++ 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/ManagerService/Controllers/AuthenticationController.cs b/ManagerService/Controllers/AuthenticationController.cs index 63719ab..30daaad 100644 --- a/ManagerService/Controllers/AuthenticationController.cs +++ b/ManagerService/Controllers/AuthenticationController.cs @@ -51,7 +51,7 @@ namespace ManagerService.Service.Controllers { #if DEBUG email = "test@email.be"; - password = "kljqsdkljqsd"; + password = "W/7aj4NB60i3YFKJq50pbw=="; // password = "kljqsdkljqsd"; #endif var token = _tokensService.Authenticate(email.ToLower(), password); diff --git a/ManagerService/Controllers/ResourceController.cs b/ManagerService/Controllers/ResourceController.cs index 372ff1b..1c137a4 100644 --- a/ManagerService/Controllers/ResourceController.cs +++ b/ManagerService/Controllers/ResourceController.cs @@ -130,8 +130,7 @@ namespace ManagerService.Controllers /// /// Upload a specific resource (picture or video) - /// - /// id resource + /// [ProducesResponseType(typeof(string), 200)] [ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 500)] @@ -146,33 +145,33 @@ namespace ManagerService.Controllers uploadResource.type = (ResourceType) Enum.Parse(typeof(ResourceType), type); uploadResource.label = label; - var file = Request.Form.Files[0]; + List resources = new List(); - if (file.Length > 0) + foreach (var file in Request.Form.Files) { - var stringResult = ""; if (file.Length > 0) { - using (var ms = new MemoryStream()) + var stringResult = ""; + if (file.Length > 0) { - file.CopyTo(ms); - var fileBytes = ms.ToArray(); - stringResult = Convert.ToBase64String(fileBytes); + using (var ms = new MemoryStream()) + { + file.CopyTo(ms); + var fileBytes = ms.ToArray(); + stringResult = Convert.ToBase64String(fileBytes); + } } + // Todo add some verification ? + Resource resource = new Resource(); + resource.Label = uploadResource.label; + resource.Type = uploadResource.type; + resource.DateCreation = DateTime.Now; + resource.Data = stringResult; + Resource resourceCreated = _resourceService.Create(resource); + resources.Add(resourceCreated); } - // Todo add some verification ? - Resource resource = new Resource(); - resource.Label = uploadResource.label; - resource.Type = uploadResource.type; - resource.DateCreation = DateTime.Now; - resource.Data = stringResult; - Resource resourceCreated = _resourceService.Create(resource); - return Ok(resourceCreated.ToDTO()); - } - else - { - return BadRequest(); } + return Ok(resources.Select(r => r.ToDTO())); } catch (ArgumentNullException ex) { diff --git a/ManagerService/Startup.cs b/ManagerService/Startup.cs index ac857e5..b848b5a 100644 --- a/ManagerService/Startup.cs +++ b/ManagerService/Startup.cs @@ -145,6 +145,10 @@ namespace ManagerService // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + /*app.UseCors( + options => options.WithOrigins("http://localhost:60109").AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials() + );*/ + if (env.IsDevelopment()) { //app.UseDeveloperExceptionPage(); @@ -156,6 +160,7 @@ namespace ManagerService app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); + app.UseCors("AllowAll"); app.UseEndpoints(endpoints => {