public async Task <IActionResult> UploadFiles(IFormFileCollection files, int idFileDescription, string client1CCode, string account1CCode, int clientTimeZone) { if (clientTimeZone == default) { return(StatusCode(400, "Не задан часовой пояс клиента")); } Dictionary <string, byte[]> filesToSend = new Dictionary <string, byte[]>(); if ((files?.Count ?? 0) > 0) { foreach (IFormFile file in files) { string fileExtension = Path.GetExtension(file.FileName)?.ToUpper(); if ( fileExtension != ".PDF" && fileExtension != ".JPEG" && fileExtension != ".JPG" && fileExtension != ".GIF" && fileExtension != ".PNG" && fileExtension != ".TIF") { return(StatusCode(400, "Допускается загружать файлы только с расширением 'PDF, JPEG, JPG, GIF, PNG, TIF'")); } await using var memoryStream = new MemoryStream(); if (file.Length <= 0) { continue; } await file.CopyToAsync(memoryStream); byte[] fileBytes = memoryStream.ToArray(); string fileName = Path.GetFileName(file.FileName); filesToSend.Add(fileName ?? string.Empty, fileBytes); } if (idFileDescription != default && client1CCode != default && account1CCode != default && filesToSend.Count > 0) { try { await _ServiceRegistrar.UploadRegistrarFilesAsync(User.Identity.Name, account1CCode, client1CCode, idFileDescription, filesToSend, clientTimeZone, CancellationToken.None); } catch (Exception exception) { _Logger.LogError( exception, "Не удалось сохранить файл на сервер. Пользователь: {login}, idFileDescription: {idFileDescription}, client1CCode: {client1CCode}," + " account1CCode: {account1CCode}, clientTimeZone: {clientTimeZone}, filesCount {filesCount}, ошибка: {exceptionMessage}", HelperASP.Login(User), idFileDescription, client1CCode, account1CCode, clientTimeZone, files.Count, exception.Message); return(StatusCode(StatusCodes.Status500InternalServerError, exception.Message)); } } } return(Ok()); }
public async Task <IActionResult> Post([FromForm] IFormFileCollection files, [FromForm] int idFileDescription, [FromForm] string client1CCode, [FromForm] string account1CCode, [FromForm] int clientTimeZone) { ObjectResult checkResult = PostCheckParams(StatusCode, files, idFileDescription, client1CCode, account1CCode, clientTimeZone); if (checkResult != default) { return(checkResult); } Dictionary <string, byte[]> filesToSend = new Dictionary <string, byte[]>(); if (files.Count > 0) { foreach (IFormFile file in files) { string fileExtension = Path.GetExtension(file.FileName)?.ToUpper(); if ( fileExtension != ".PDF" && fileExtension != ".JPEG" && fileExtension != ".JPG" && fileExtension != ".GIF" && fileExtension != ".PNG" && fileExtension != ".TIF") { return(StatusCode(StatusCodes.Status400BadRequest, "Допускается загружать файлы только с расширением 'PDF, JPEG, JPG, GIF, PNG, TIF.'")); } await using (var memoryStream = new MemoryStream()) { if (file.Length <= 0) { continue; } await file.CopyToAsync(memoryStream); byte[] fileBytes = memoryStream.ToArray(); string fileName = Path.GetFileName(file.FileName); filesToSend.Add(fileName ?? string.Empty, fileBytes); } } try { await _ServiceRegistrar.UploadRegistrarFilesAsync( HelperASP.Login(User), account1CCode, client1CCode, idFileDescription, filesToSend, clientTimeZone, CancellationToken.None ); } catch (Exception exception) { _Logger.LogError( exception, "Не удалось сохранить файлы на сервер. Пользователь: {login}," + " Account1CCode: {account1CCode}, Client1CCode: {client1CCode}," + " IdFileDescription: {idFileDescription} , Кол-во файлов {FilesCount}," + " Часовой пояс: {clientTimeZone}, Ошибка: {exceptionMessage}", HelperASP.Login(User), account1CCode, client1CCode, idFileDescription, filesToSend.Count, clientTimeZone, exception.Message); return(StatusCode(StatusCodes.Status500InternalServerError, exception.Message)); } } return(Ok()); }