|
5 | 5 | using CoinyProject.Infrastructure.Data.Migrations;
|
6 | 6 | using CoinyProject.Infrastructure.Data.Repositories;
|
7 | 7 | using Microsoft.AspNetCore.Hosting;
|
| 8 | +using Microsoft.AspNetCore.Http; |
8 | 9 | using Microsoft.AspNetCore.Mvc;
|
9 | 10 | using Microsoft.EntityFrameworkCore;
|
10 | 11 | using System;
|
@@ -40,32 +41,34 @@ public async Task<int> AddAlbum(AlbumCreating album)
|
40 | 41 |
|
41 | 42 | return _album.Id;
|
42 | 43 | }
|
43 |
| - public async Task AddAlbumElement(AlbumElementCreating element) |
| 44 | + |
| 45 | + public async Task<string> ConvertToImageUrl(IFormFile image) |
44 | 46 | {
|
45 |
| - string imageURL = ""; |
46 |
| - var album = _unitOfWork.AlbumRepository.Include(x => x.Elements) |
47 |
| - .Where(x => x.Id == element.AlbumId) |
48 |
| - .FirstOrDefault(); |
| 47 | + string folder = "albums/elements/"; |
| 48 | + folder += Guid.NewGuid().ToString() + "_" + image.FileName; |
49 | 49 |
|
50 |
| - if (element.Image != null) |
51 |
| - { |
52 |
| - string folder = "albums/elements/"; |
53 |
| - folder += Guid.NewGuid().ToString() + "_" + element.Image.FileName; |
| 50 | + string imageURL = "/" + folder; |
| 51 | + |
| 52 | + string serverFolder = Path.Combine(_webHostEnvironment.WebRootPath, folder); |
54 | 53 |
|
55 |
| - imageURL = "/" + folder; |
| 54 | + await image.CopyToAsync(new FileStream(serverFolder, FileMode.Create)); |
56 | 55 |
|
57 |
| - string serverFolder = Path.Combine(_webHostEnvironment.WebRootPath, folder); |
| 56 | + return imageURL; |
| 57 | + } |
58 | 58 |
|
59 |
| - await element.Image.CopyToAsync(new FileStream(serverFolder, FileMode.Create)); |
60 |
| - } |
| 59 | + public async Task AddAlbumElement(AlbumElementCreating element) |
| 60 | + { |
| 61 | + var album = _unitOfWork.AlbumRepository.Include(x => x.Elements) |
| 62 | + .Where(x => x.Id == element.AlbumId) |
| 63 | + .FirstOrDefault(); |
61 | 64 |
|
62 | 65 | if (album != null)
|
63 | 66 | {
|
64 | 67 | AlbumElement _albumElement = new AlbumElement()
|
65 | 68 | {
|
66 | 69 | Name = element.Name,
|
67 | 70 | Description = element.Description,
|
68 |
| - ImageURL = imageURL |
| 71 | + ImageURL = await ConvertToImageUrl(element.Image), |
69 | 72 | };
|
70 | 73 |
|
71 | 74 | album.Elements.Add(_albumElement);
|
@@ -162,5 +165,56 @@ public async Task DeleteAlbum(int id)
|
162 | 165 | await _unitOfWork.AlbumRepository.Remove(album);
|
163 | 166 | _unitOfWork.Commit();
|
164 | 167 | }
|
| 168 | + |
| 169 | + public async Task<AlbumElementEditDTO> GetAlbumElementForEdit(int id) |
| 170 | + { |
| 171 | + var albumElement = await _unitOfWork.AlbumElementRepository |
| 172 | + .Where(x => x.Id == id) |
| 173 | + .AsNoTracking() |
| 174 | + .FirstOrDefaultAsync(); |
| 175 | + |
| 176 | + var albumElementGetDTO = new AlbumElementEditDTO() |
| 177 | + { |
| 178 | + Id = albumElement.Id, |
| 179 | + Name = albumElement.Name, |
| 180 | + Description = albumElement.Description, |
| 181 | + ImageURL = albumElement.ImageURL |
| 182 | + }; |
| 183 | + |
| 184 | + return albumElementGetDTO; |
| 185 | + |
| 186 | + } |
| 187 | + |
| 188 | + public async Task<int> UpdateAlbumElement(AlbumElementEditDTO element) |
| 189 | + { |
| 190 | + var _element = await _unitOfWork.AlbumElementRepository |
| 191 | + .Where(x => x.Id == element.Id) |
| 192 | + .FirstOrDefaultAsync(); |
| 193 | + |
| 194 | + _element.Name = element.Name; |
| 195 | + _element.Description = element.Description; |
| 196 | + |
| 197 | + if(element.Image != null) |
| 198 | + _element.ImageURL = await ConvertToImageUrl(element.Image); |
| 199 | + |
| 200 | + await _unitOfWork.AlbumElementRepository.Update(_element); |
| 201 | + _unitOfWork.Commit(); |
| 202 | + |
| 203 | + return _element.AlbumId; |
| 204 | + } |
| 205 | + |
| 206 | + public async Task<int> DeleteAlbumElement(int id) |
| 207 | + { |
| 208 | + var element = _unitOfWork.AlbumElementRepository |
| 209 | + .Where(x => x.Id == id) |
| 210 | + .FirstOrDefault(); |
| 211 | + |
| 212 | + await _unitOfWork.AlbumElementRepository.Remove(element); |
| 213 | + _unitOfWork.Commit(); |
| 214 | + |
| 215 | + return element.AlbumId; |
| 216 | + } |
| 217 | + |
| 218 | + |
165 | 219 | }
|
166 | 220 | }
|
0 commit comments