/// <summary>
        /// Преобразует RutorPost в SoftPost
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        async Task <SoftPost> RutorToSoft(DriverToSoftInput param)
        {
            RutorItem rutorItem = _context
                                  .RutorItems
                                  .Include(el => el.RutorListItem)
                                  .Include(el => el.Imgs)
                                  .Include(el => el.Spoilers)
                                  .SingleOrDefault(el => el.Id == param.ParseItemId);

            if (rutorItem != null)
            {
                var post = new SoftPost();
                post.RutorItemId = param.ParseItemId;
                post.Name        = rutorItem.Name;
                post.Created     = DateTime.Now;

                string torrentFile = await DownloadFile(param.TorrentUri + rutorItem.RutorListItem.HrefNumber,
                                                        Path.GetRandomFileName().Replace('.', '_') + ".torrent",
                                                        param.ProxySocks5Addr,
                                                        param.ProxySocks5Port,
                                                        param.ProxyActive);

                if (torrentFile == null)
                {
                    _logger.LogError($"Не удалось загрузить торрент файл. RutorItem.Id: {param.ParseItemId}; Href: {rutorItem.RutorListItem.HrefNumber}");
                    return(null);
                }
                post.TorrentFile = torrentFile;

                string posterFile = await GetPosterImgRutor(rutorItem.Imgs, param);

                if (posterFile == null)
                {
                    _logger.LogError($"Не удалось загрузить постер. RutorItem.Id: {param.ParseItemId}; Href: {rutorItem.RutorListItem.HrefNumber}");
                    return(null);
                }
                FileInfo img = new FileInfo(posterFile);
                if (img.Length > param.MaxPosterSize * 1024)
                {
                    posterFile = _imgsConverter.ConvertToJpg(posterFile, 100);
                }
                post.PosterImg = posterFile;

                var queryUriImgs =
                    (from el in rutorItem.Imgs
                     where el.ParentUrl != null
                     select el.ParentUrl).ToList();
                var queryParams =
                    (from el in _context.ImghostParsingInputs
                     where el.Active == true
                     select el).ToList();
                List <string> screenshots =
                    (await _imghostService.GetOriginalsUri(new ImghostGetOriginalsInput
                {
                    ImgsUri = queryUriImgs,
                    ParsingParams = queryParams,
                })).ToList();
                var queryScr =
                    (from el in screenshots
                     select new SoftPostImg
                {
                    Created = DateTime.Now,
                    ImgUri = el,
                }).ToList();
                post.Imgs = queryScr;

                post.Description = FormatDescriptionRutor(rutorItem.Description, post.PosterImg);
                post.Spoilers    = FormatSpoilersRutor(rutorItem.Spoilers);

                return(post);
            }
            _logger.LogError($"В базе не найдена раздача с указанным Id. RutorItem.Id: {param.ParseItemId}");
            return(null);
        }