diff --git a/Back/skydiveLogs-api.Business/ImageService.cs b/Back/skydiveLogs-api.Business/ImageService.cs new file mode 100644 index 0000000..10899f6 --- /dev/null +++ b/Back/skydiveLogs-api.Business/ImageService.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +using skydiveLogs_api.Business.Interface; +using skydiveLogs_api.Model; +using skydiveLogs_api.Data.Interface; + + +namespace skydiveLogs_api.Business +{ + public class ImageService : IImageService + { + public ImageService(IImageRepository imageRepository) + { + _imageRepository = imageRepository; + } + + public void AddNewImage(Image newImage) + { + _imageRepository.Add(newImage); + } + + public void DeleteImageById(int id) + { + throw new NotImplementedException(); + } + + public Image GetImageById(int id) + { + return _imageRepository.GetById(id); + } + + public IEnumerable GetAllImages() + { + return _imageRepository.GetAll(); + } + + public void UpdateImage(int id, Image Image) + { + throw new NotImplementedException(); + } + + private readonly IImageRepository _imageRepository; + } +} diff --git a/Back/skydiveLogs-api.Business/Interface/IImageService.cs b/Back/skydiveLogs-api.Business/Interface/IImageService.cs new file mode 100644 index 0000000..84212a6 --- /dev/null +++ b/Back/skydiveLogs-api.Business/Interface/IImageService.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +using skydiveLogs_api.Model; + + +namespace skydiveLogs_api.Business.Interface +{ + public interface IImageService + { + IEnumerable GetAllImages(); + + Image GetImageById(int id); + + void AddNewImage(Image Image); + + void UpdateImage(int id, Image Image); + + void DeleteImageById(int id); + } +} diff --git a/Back/skydiveLogs-api.Data/ImageRepository.cs b/Back/skydiveLogs-api.Data/ImageRepository.cs new file mode 100644 index 0000000..903afd9 --- /dev/null +++ b/Back/skydiveLogs-api.Data/ImageRepository.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using System.Linq; + +using LiteDB; + +using skydiveLogs_api.Data.Interface; +using skydiveLogs_api.Model; + + +namespace skydiveLogs_api.Data +{ + public class ImageRepository : IImageRepository + { + public ImageRepository(IDataProvider dataProvider) + { + _dataProvider = dataProvider; + _col = _dataProvider.CollOfImage; + } + + public IEnumerable GetAll() + { + return _col.FindAll().ToList(); + } + + public Image GetById(int id) + { + return _col.FindById(new BsonValue(id)); + } + + public bool Update(Image image) + { + return _col.Update(image); + } + + public bool Add(Image newImage) + { + var result = true; + + try + { + _col.Insert(newImage); + } + catch + { + result = false; + } + + return result; + } + + private readonly IDataProvider _dataProvider; + + private readonly ILiteCollection _col; + } +} diff --git a/Back/skydiveLogs-api.Data/Interface/IDataProvider.cs b/Back/skydiveLogs-api.Data/Interface/IDataProvider.cs index 2b33ef1..63d7f5b 100644 --- a/Back/skydiveLogs-api.Data/Interface/IDataProvider.cs +++ b/Back/skydiveLogs-api.Data/Interface/IDataProvider.cs @@ -22,5 +22,7 @@ namespace skydiveLogs_api.Data.Interface ILiteCollection CollOfJump { get; } ILiteCollection CollOfUser { get; } + + ILiteCollection CollOfImage { get; } } } diff --git a/Back/skydiveLogs-api.Data/Interface/IImageRepository.cs b/Back/skydiveLogs-api.Data/Interface/IImageRepository.cs new file mode 100644 index 0000000..141bc2f --- /dev/null +++ b/Back/skydiveLogs-api.Data/Interface/IImageRepository.cs @@ -0,0 +1,9 @@ +using skydiveLogs_api.Model; + + +namespace skydiveLogs_api.Data.Interface +{ + public interface IImageRepository : IRepository + { + } +} diff --git a/Back/skydiveLogs-api.Data/LiteDbProvider.cs b/Back/skydiveLogs-api.Data/LiteDbProvider.cs index 89fff6a..f5f66f2 100644 --- a/Back/skydiveLogs-api.Data/LiteDbProvider.cs +++ b/Back/skydiveLogs-api.Data/LiteDbProvider.cs @@ -14,6 +14,8 @@ namespace skydiveLogs_api.Data BsonMapper.Global.Entity().DbRef(x => x.Aircraft, "Aircraft"); BsonMapper.Global.Entity().DbRef(x => x.DropZone, "DropZone"); BsonMapper.Global.Entity().DbRef(x => x.Gear, "Gear"); + + BsonMapper.Global.Entity().DbRef(x => x.UserId, "User"); } public ILiteCollection GetCollection() @@ -39,5 +41,7 @@ namespace skydiveLogs_api.Data public ILiteCollection CollOfJump => _db.GetCollection(); public ILiteCollection CollOfUser => _db.GetCollection(); + + public ILiteCollection CollOfImage => _db.GetCollection(); } } diff --git a/Back/skydiveLogs-api.Data/skydiveLogs-api.Data.csproj b/Back/skydiveLogs-api.Data/skydiveLogs-api.Data.csproj index c94090b..1837522 100644 --- a/Back/skydiveLogs-api.Data/skydiveLogs-api.Data.csproj +++ b/Back/skydiveLogs-api.Data/skydiveLogs-api.Data.csproj @@ -6,7 +6,7 @@ - + diff --git a/Back/skydiveLogs-api.Model/Aircraft.cs b/Back/skydiveLogs-api.Model/Aircraft.cs index 09e4c8a..a1d8703 100644 --- a/Back/skydiveLogs-api.Model/Aircraft.cs +++ b/Back/skydiveLogs-api.Model/Aircraft.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace skydiveLogs_api.Model +namespace skydiveLogs_api.Model { public class Aircraft { diff --git a/Back/skydiveLogs-api.Model/Image.cs b/Back/skydiveLogs-api.Model/Image.cs new file mode 100644 index 0000000..0e09075 --- /dev/null +++ b/Back/skydiveLogs-api.Model/Image.cs @@ -0,0 +1,13 @@ +namespace skydiveLogs_api.Model +{ + public class Image + { + public int Id { get; set; } + + public string Comment { get; set; } + + public string Data { get; set; } + + public int UserId { get; set; } + } +} diff --git a/Back/skydiveLogs-api.Model/User.cs b/Back/skydiveLogs-api.Model/User.cs index 7569cd9..c2e9599 100644 --- a/Back/skydiveLogs-api.Model/User.cs +++ b/Back/skydiveLogs-api.Model/User.cs @@ -1,4 +1,6 @@ -namespace skydiveLogs_api.Model +using System.Collections.Generic; + +namespace skydiveLogs_api.Model { public class User { @@ -13,5 +15,7 @@ public string Login { get; set; } public string Password { get; set; } + + public IEnumerable Images { get; set; } } } diff --git a/Back/skydiveLogs-api/Controllers/ImageController.cs b/Back/skydiveLogs-api/Controllers/ImageController.cs new file mode 100644 index 0000000..56c2697 --- /dev/null +++ b/Back/skydiveLogs-api/Controllers/ImageController.cs @@ -0,0 +1,68 @@ +using System.Collections.Generic; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Cors; + +using AutoMapper; + +using skydiveLogs_api.Business.Interface; +using skydiveLogs_api.DataContract; +using skydiveLogs_api.Model; + + +namespace skydiveLogs_api.Controllers +{ + public class ImageController : Base + { + public ImageController(IImageService imageService, + IMapper mapper) + { + _imageService = imageService; + _mapper = mapper; + } + + // GET: api/Image + [HttpGet] + [EnableCors] + public IEnumerable Get() + { + var result = _imageService.GetAllImages(); + return _mapper.Map>(result); + } + + // GET: api/Image/5 + [HttpGet("{id}")] + [EnableCors] + public ImageResp Get(int id) + { + var result = _imageService.GetImageById(id); + return _mapper.Map(result); + } + + // POST: api/Image + [HttpPost] + [EnableCors] + public void Post([FromBody] ImageReq value) + { + _imageService.AddNewImage(_mapper.Map(value)); + } + + // PUT: api/Image/5 + [HttpPut("{id}")] + [EnableCors] + public void Put(int id, [FromBody] ImageReq value) + { + _imageService.UpdateImage(id, _mapper.Map(value)); + } + + // DELETE: api/Image/5 + [HttpDelete("{id}")] + [EnableCors] + public void Delete(int id) + { + _imageService.DeleteImageById(id); + } + + private readonly IImageService _imageService; + private readonly IMapper _mapper; + } +} diff --git a/Back/skydiveLogs-api/Data/JumpsDb-log.db b/Back/skydiveLogs-api/Data/JumpsDb-log.db deleted file mode 100644 index 9483b7b..0000000 Binary files a/Back/skydiveLogs-api/Data/JumpsDb-log.db and /dev/null differ diff --git a/Back/skydiveLogs-api/Data/JumpsDb.db b/Back/skydiveLogs-api/Data/JumpsDb.db index 37a8663..aee3ee3 100644 Binary files a/Back/skydiveLogs-api/Data/JumpsDb.db and b/Back/skydiveLogs-api/Data/JumpsDb.db differ diff --git a/Back/skydiveLogs-api/Data/LiteDB.Studio-v1.0.exe b/Back/skydiveLogs-api/Data/LiteDB.Studio-v1.0.1.exe similarity index 70% rename from Back/skydiveLogs-api/Data/LiteDB.Studio-v1.0.exe rename to Back/skydiveLogs-api/Data/LiteDB.Studio-v1.0.1.exe index b5e5e66..ffa5a85 100644 Binary files a/Back/skydiveLogs-api/Data/LiteDB.Studio-v1.0.exe and b/Back/skydiveLogs-api/Data/LiteDB.Studio-v1.0.1.exe differ diff --git a/Back/skydiveLogs-api/DataContract/ImageReq.cs b/Back/skydiveLogs-api/DataContract/ImageReq.cs new file mode 100644 index 0000000..902fa60 --- /dev/null +++ b/Back/skydiveLogs-api/DataContract/ImageReq.cs @@ -0,0 +1,11 @@ +namespace skydiveLogs_api.DataContract +{ + public class ImageReq + { + public int Id { get; set; } + + public string Comment { get; set; } + + public string Data { get; set; } + } +} diff --git a/Back/skydiveLogs-api/DataContract/ImageResp.cs b/Back/skydiveLogs-api/DataContract/ImageResp.cs new file mode 100644 index 0000000..d3fb306 --- /dev/null +++ b/Back/skydiveLogs-api/DataContract/ImageResp.cs @@ -0,0 +1,11 @@ +namespace skydiveLogs_api.DataContract +{ + public class ImageResp + { + public int Id { get; set; } + + public string Comment { get; set; } + + public string Data { get; set; } + } +} diff --git a/Back/skydiveLogs-api/Mapper/ModelProfile.cs b/Back/skydiveLogs-api/Mapper/ModelProfile.cs index 0f4277e..32c2257 100644 --- a/Back/skydiveLogs-api/Mapper/ModelProfile.cs +++ b/Back/skydiveLogs-api/Mapper/ModelProfile.cs @@ -12,6 +12,7 @@ namespace skydiveLogs_api.Mapper CreateMap(); CreateMap(); CreateMap(); + CreateMap(); CreateMap(); CreateMap(); @@ -20,6 +21,7 @@ namespace skydiveLogs_api.Mapper CreateMap(); CreateMap(); CreateMap(); + CreateMap(); CreateMap(); } diff --git a/Back/skydiveLogs-api/skydiveLogs-api.csproj b/Back/skydiveLogs-api/skydiveLogs-api.csproj index 75f30b5..fc12324 100644 --- a/Back/skydiveLogs-api/skydiveLogs-api.csproj +++ b/Back/skydiveLogs-api/skydiveLogs-api.csproj @@ -20,9 +20,9 @@ - - - + + +