| @@ -63,10 +63,18 @@ public sealed class HomeController : Controller | |||
| var message = new MessageDto { Text = model.Text }; | |||
| await UploadFiles(model, message); | |||
| var code = await _messageService.Create(message, model.ChosenPeriod); | |||
| return RedirectToAction("Link", "Home", new { code = code, share = true }); | |||
| } | |||
| private async Task UploadFiles(MessageModel model, MessageDto message) | |||
| { | |||
| var basePath = Path.Combine(_webHostEnvironment.WebRootPath.Split('/')[0], DefaultPath, message.Code.ToString()); | |||
| var basePathTemporary = Path.Combine(_webHostEnvironment.WebRootPath.Split('/')[0], DefaultPathTmp); | |||
| Directory.CreateDirectory(basePath); | |||
| var directoryNames = model.FilesAsText | |||
| .Split(';') | |||
| .Select(x => x.Split(':')[0]) | |||
| @@ -82,9 +90,9 @@ public sealed class HomeController : Controller | |||
| foreach (var file in fileNames) | |||
| { | |||
| message.FileNames.Add(new FileModel {Name = file}); | |||
| message.FileNames.Add(new FileModel { Name = file }); | |||
| } | |||
| foreach (var directoryName in directoryNames) | |||
| { | |||
| var directoryPath = Path.Combine(basePathTemporary, directoryName); | |||
| @@ -98,7 +106,7 @@ public sealed class HomeController : Controller | |||
| System.IO.File.Move(filePath, newFilePath); | |||
| } | |||
| } | |||
| foreach (var directory in directoryNames) | |||
| { | |||
| Directory.Delete(Path.Combine(basePathTemporary, directory), true); | |||
| @@ -106,17 +114,14 @@ public sealed class HomeController : Controller | |||
| foreach (var formFile in model.Files) | |||
| { | |||
| if (formFile.Length <= 0) | |||
| if (formFile.Length <= 0) | |||
| continue; | |||
| var filePath = Path.Combine(basePath, formFile.FileName); | |||
| await using var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite); | |||
| await formFile.CopyToAsync(stream); | |||
| message.FileNames.Add(new FileModel { Name = formFile.FileName }); | |||
| } | |||
| var code = await _messageService.Create(message, model.ChosenPeriod); | |||
| return RedirectToAction("Link", "Home", new { code = code, share = true }); | |||
| } | |||
| public async Task<FileStreamResult> Download(string filename, Guid code) | |||