public void CreatesRemotePath()
        {
            var entityId = Guid.NewGuid();
            var fileId   = Guid.NewGuid();
            var file     = new EntityFile(1, "AccountFile", entityId, fileId, 1, new byte[] { 0 });

            var remotePath = file.GetRemotePath();

            Assert.NotNull(file);
            Assert.NotNull(file.Entity);
            Assert.NotNull(file.EntityId);
            Assert.NotNull(file.FileId);
            Assert.NotNull(file.Version);
            Assert.Equal($"AccountFile/{entityId.ToString()}/{fileId.ToString()}/1", remotePath);
        }
        /// <summary>
        /// Помещает файл в файловое хранилище.
        /// </summary>
        /// <param name="entityFile">Выгружаемый файл</param>
        /// <param name="allFiles">Все файлы сущности</param>
        public async Task <bool> PutWithHttp(EntityFile entityFile, IEnumerable <EntityFile> allFiles)
        {
            if (entityFile?.Data == null || !(entityFile.FolderNames?.Count > 0))
            {
                return(false);
            }
            try
            {
                using (var handler = new HttpClientHandler {
                    Credentials = new NetworkCredential(UserName, Password), PreAuthenticate = true
                })
                    using (var client = new HttpClient(handler)
                    {
                        BaseAddress = new Uri(ServerUrl)
                    })
                    {
                        var requestMessage =
                            new HttpRequestMessage(HttpMethod.Put, new Uri(ServerUrl + entityFile.GetRemotePath()))
                        {
                            Content = new ByteArrayContent(entityFile.Data),
                            Version = HttpVersion.Version11,
                            Headers =
                            {
                                { HttpRequestHeader.Translate.ToString(),     "f"                        },
                                { HttpRequestHeader.ContentType.ToString(),   "application/octet-stream" },
                                { HttpRequestHeader.ContentLength.ToString(), entityFile.Data.ToString() }
                            }
                        };

                        var result = await client.SendAsync(requestMessage, HttpCompletionOption.ResponseContentRead);

                        var entityFiles = allFiles.ToList();
                        Log.Info(Utils.ShowPercentProgress("Выгружаем файлы", entityFiles.IndexOf(entityFile), entityFiles.Count));
                        Log.Info($"Файл: #{entityFile.Number.ToString()} {entityFile.Entity}/{entityFile.EntityId}/{entityFile.FileId}/{entityFile.Version} {entityFile.Data.Length / 1024.0:####0.######} КБ ({entityFile.Data.Length / (1024.0 * 1024.0):####0.######} МБ) {result.StatusCode.ToString()}");

                        return(true);
                    }
            }
            catch (WebException ex)
            {
                Console.WriteLine(ex.Message);
                Log.Debug(ex);
                return(false);
            }
            catch (Exception ex)
            {
                ExceptionHandler.LogExceptionToConsole(ex);
                throw ex;
            }
        }