radivoje.milutinovic 3 лет назад
Родитель
Сommit
90fd54e051
1 измененных файлов: 14 добавлений и 9 удалений
  1. 14
    9
      SecureSharing/Controllers/HomeController.cs

+ 14
- 9
SecureSharing/Controllers/HomeController.cs Просмотреть файл

var message = new MessageDto { Text = model.Text }; 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 basePath = Path.Combine(_webHostEnvironment.WebRootPath.Split('/')[0], DefaultPath, message.Code.ToString());
var basePathTemporary = Path.Combine(_webHostEnvironment.WebRootPath.Split('/')[0], DefaultPathTmp); var basePathTemporary = Path.Combine(_webHostEnvironment.WebRootPath.Split('/')[0], DefaultPathTmp);
Directory.CreateDirectory(basePath); Directory.CreateDirectory(basePath);
var directoryNames = model.FilesAsText var directoryNames = model.FilesAsText
.Split(';') .Split(';')
.Select(x => x.Split(':')[0]) .Select(x => x.Split(':')[0])


foreach (var file in fileNames) foreach (var file in fileNames)
{ {
message.FileNames.Add(new FileModel {Name = file});
message.FileNames.Add(new FileModel { Name = file });
} }
foreach (var directoryName in directoryNames) foreach (var directoryName in directoryNames)
{ {
var directoryPath = Path.Combine(basePathTemporary, directoryName); var directoryPath = Path.Combine(basePathTemporary, directoryName);
System.IO.File.Move(filePath, newFilePath); System.IO.File.Move(filePath, newFilePath);
} }
} }
foreach (var directory in directoryNames) foreach (var directory in directoryNames)
{ {
Directory.Delete(Path.Combine(basePathTemporary, directory), true); Directory.Delete(Path.Combine(basePathTemporary, directory), true);


foreach (var formFile in model.Files) foreach (var formFile in model.Files)
{ {
if (formFile.Length <= 0)
if (formFile.Length <= 0)
continue; continue;
var filePath = Path.Combine(basePath, formFile.FileName); var filePath = Path.Combine(basePath, formFile.FileName);
await using var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite); await using var stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
await formFile.CopyToAsync(stream); await formFile.CopyToAsync(stream);
message.FileNames.Add(new FileModel { Name = formFile.FileName }); 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) public async Task<FileStreamResult> Download(string filename, Guid code)

Загрузка…
Отмена
Сохранить