POS_Sprint_2 #4
37
Serwer/Serwer.Api/Controllers/ImageController.cs
Normal file
37
Serwer/Serwer.Api/Controllers/ImageController.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Serwer.Infrastructure.Services;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Serwer.Api.Controllers
|
||||||
|
{
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class ImageController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly IImageService _imageService;
|
||||||
|
public ImageController(IImageService imageService)
|
||||||
|
{
|
||||||
|
_imageService = imageService;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("Process")]
|
||||||
|
public async Task<IActionResult> Process(IFormFile image)
|
||||||
|
{
|
||||||
|
if(image == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
using (var memoryStream = new MemoryStream())
|
||||||
|
{
|
||||||
|
await image.CopyToAsync(memoryStream);
|
||||||
|
await _imageService.Process(image.Name, image.ContentType, memoryStream.ToArray());
|
||||||
|
}
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -63,6 +63,7 @@ namespace Serwer.Api
|
|||||||
services.AddSingleton<IMapper>(AutoMapperConfig.Initialize());
|
services.AddSingleton<IMapper>(AutoMapperConfig.Initialize());
|
||||||
services.AddSingleton<IJwtHandler, JwtHandler>(sp => new JwtHandler(jwtSettings));
|
services.AddSingleton<IJwtHandler, JwtHandler>(sp => new JwtHandler(jwtSettings));
|
||||||
services.AddScoped<IUserRepository, UserRepository>();
|
services.AddScoped<IUserRepository, UserRepository>();
|
||||||
|
services.AddScoped<IImageService, ImageService>();
|
||||||
services.AddScoped<IUserService, UserService>();
|
services.AddScoped<IUserService, UserService>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,12 +72,17 @@ namespace Serwer.Api
|
|||||||
{
|
{
|
||||||
if (env.IsDevelopment())
|
if (env.IsDevelopment())
|
||||||
{
|
{
|
||||||
|
app.UseCors(builder =>
|
||||||
|
{
|
||||||
|
builder.AllowAnyHeader();
|
||||||
|
builder.AllowAnyMethod();
|
||||||
|
builder.AllowAnyOrigin();
|
||||||
|
});
|
||||||
app.UseDeveloperExceptionPage();
|
app.UseDeveloperExceptionPage();
|
||||||
app.UseSwagger();
|
app.UseSwagger();
|
||||||
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Serwer.Api v1"));
|
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Serwer.Api v1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
app.UseHttpsRedirection();
|
|
||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
||||||
|
32
Serwer/Serwer.Core/Domain/File.cs
Normal file
32
Serwer/Serwer.Core/Domain/File.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Serwer.Core.Domain
|
||||||
|
{
|
||||||
|
public class File
|
||||||
|
{
|
||||||
|
public string Name { get; protected set; }
|
||||||
|
public string ContentType { get; protected set; }
|
||||||
|
public byte[] Bytes { get; protected set; }
|
||||||
|
public long SizeBytes => Bytes.Length;
|
||||||
|
|
||||||
|
protected File()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected File(string name, string contentType, byte[] bytes)
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
ContentType = contentType;
|
||||||
|
Bytes = bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static File Empty => new File();
|
||||||
|
|
||||||
|
public static File Create(string name, string contentType, byte[] bytes)
|
||||||
|
=> new File(name, contentType, bytes);
|
||||||
|
}
|
||||||
|
}
|
13
Serwer/Serwer.Infrastructure/Services/IImageHandler.cs
Normal file
13
Serwer/Serwer.Infrastructure/Services/IImageHandler.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Serwer.Infrastructure.Services
|
||||||
|
{
|
||||||
|
public interface IImageHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
14
Serwer/Serwer.Infrastructure/Services/IImageService.cs
Normal file
14
Serwer/Serwer.Infrastructure/Services/IImageService.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using Serwer.Core.Domain;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Serwer.Infrastructure.Services
|
||||||
|
{
|
||||||
|
public interface IImageService
|
||||||
|
{
|
||||||
|
Task Process(string name, string contentType, byte[] bytes);
|
||||||
|
}
|
||||||
|
}
|
12
Serwer/Serwer.Infrastructure/Services/ImageHandler.cs
Normal file
12
Serwer/Serwer.Infrastructure/Services/ImageHandler.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Serwer.Infrastructure.Services
|
||||||
|
{
|
||||||
|
class ImageHandler
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
19
Serwer/Serwer.Infrastructure/Services/ImageService.cs
Normal file
19
Serwer/Serwer.Infrastructure/Services/ImageService.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using Serwer.Core.Domain;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Serwer.Infrastructure.Services
|
||||||
|
{
|
||||||
|
public class ImageService : IImageService
|
||||||
|
{
|
||||||
|
private readonly ISet<File> _files = new HashSet<File>();
|
||||||
|
public async Task Process(string name, string contentType, byte[] bytes)
|
||||||
|
{
|
||||||
|
var file = File.Create(name, contentType, bytes);
|
||||||
|
await Task.FromResult(_files.Add(file));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user