public bool TryFindBinary(string url, out IBinary binary)
        {
            //string encodedUrl = HttpUtility.UrlPathEncode(url);
            binary = null;
            return false;

            Query findBinary = new Query();
            PublicationURLCriteria urlCriteria = new PublicationURLCriteria(url);

            MultimediaCriteria isBinary = new MultimediaCriteria(true);
            Com.Tridion.Broker.Querying.Criteria.Criteria allCriteria = Com.Tridion.Broker.Querying.CriteriaFactory.And(isBinary, isBinary);
            //Criteria allCriteria = CriteriaFactory.And(isBinary, urlCriteria);
            //Criteria allCriteria = urlCriteria;
            //findBinary.Criteria = allCriteria;

            string[] binaryUri = findBinary.ExecuteQuery();

            if (binaryUri.Length == 0)
            {
                return false;
            }
            else
            {
                ComponentPresentation binaryComponent ;

                return true;
            }

            /*
            using (var sqlBinMetaHome = new Com.Tridion.Broker.Binaries.Meta.SQLBinaryMetaHome())
            {
                Com.Tridion.Meta.BinaryMeta binaryMeta = sqlBinMetaHome.FindByURL(PublicationId, encodedUrl); // "/Images/anubis_pecunia160_tcm70-520973.jpg"
                if (binaryMeta != null)
                {
                    using (var sqlBinaryHome = new Com.Tridion.Broker.Binaries.SQLBinaryHome())
                    {
                        Com.Tridion.Data.BinaryData binData = sqlBinaryHome.FindByPrimaryKey(PublicationId, (int)binaryMeta.GetId());
                        if (binData != null)
                        {
                            binary = new Binary(this)
                            {
                                Url = url,
                                LastPublishedDate = DateTime.Now,
                                Multimedia = null,
                                VariantId = binData.GetVariantId()
                            };
                            return true;
                        }
                    }
                }
                return false;
            }
            */
        }
 public bool TryGetBinary(string tcmUri, out IBinary binary)
 {
     binary = new Binary();
     if (LoadBinariesAsStream)
     {
         binary.BinaryStream = BinaryProvider.GetBinaryStreamByUri(tcmUri);
         if (binary.BinaryStream == null)
             return false;
     }
     else
     {
         binary.BinaryData = BinaryProvider.GetBinaryByUri(tcmUri);
         if (binary.BinaryData == null || binary.BinaryData.Length == 0)
             return false;
     }
     ((Binary)binary).Id = tcmUri;
     return true;
 }
        public bool TryFindBinary(string url, out IBinary binary)
        {
            string encodedUrl = HttpUtility.UrlPathEncode(url);
            binary = null;
            //using (var sqlBinMetaHome = new Com.Tridion.Broker.Binaries.Meta.SQLBinaryMetaHome())
            //{

            //    Com.Tridion.Meta.BinaryMeta binaryMeta = sqlBinMetaHome.FindByURL(PublicationId, encodedUrl); // "/Images/anubis_pecunia160_tcm70-520973.jpg"
            //    if (binaryMeta != null)
            //    {
            //        using (var sqlBinaryHome = new Com.Tridion.Broker.Binaries.SQLBinaryHome())
            //        {
            //            Com.Tridion.Data.BinaryData binData = sqlBinaryHome.FindByPrimaryKey(PublicationId, (int)binaryMeta.GetId());
            //            if (binData != null)
            //            {
            //                binary = new Binary(this)
            //                {
            //                    Id = String.Format("tcm:{0}-{1}", binData.GetPublicationId(), binData.GetId()),
            //                    Url = url,
            //                    LastPublishedDate = DateTime.Now,
            //                    Multimedia = null,
            //                    VariantId = binData.GetVariantId()
            //                };
            //                return true;
            //            }
            //        }
            //    }
            //    return false;
            //}

            Query binaryQuery = new Query();
            ItemTypeCriteria isMultiMedia = new ItemTypeCriteria(32);

            PublicationCriteria inPub = new PublicationCriteria(PublicationId);
            Criteria allCriteria = CriteriaFactory.And(isMultiMedia, inPub);

            string[] results =  binaryQuery.ExecuteQuery();
            binary = null;
            return true;

            foreach (var item in results) {

            }
        }
        public bool TryFindBinary(string url, out IBinary binary)
        {
            binary = new Binary();

            if (LoadBinariesAsStream)
            {
                binary.BinaryStream = BinaryProvider.GetBinaryStreamByUrl(url);
                if (binary.BinaryStream == null)
                    return false;
            }
            else
            {
                binary.BinaryData = BinaryProvider.GetBinaryByUrl(url);
                if (binary.BinaryData == null || binary.BinaryData.Length == 0)
                    return false;
            }

            return true;
        }
 public bool TryGetBinary(string tcmUri, out IBinary binary)
 {
     binary = new Binary();
     if (LoadBinariesAsStream)
     {
         LoggerService.Information("retrieving binaries as a stream is obsolete; support will be dropped in future versions of DD4T");
         binary.BinaryStream = BinaryProvider.GetBinaryStreamByUri(tcmUri);
         if (binary.BinaryStream == null)
             return false;
     }
     else
     {
         binary.BinaryData = BinaryProvider.GetBinaryByUri(tcmUri);
         if (binary.BinaryData == null || binary.BinaryData.Length == 0)
             return false;
     }
     ((Binary)binary).Id = tcmUri;
     return true;
 }
Beispiel #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="IgniteClient"/> class.
        /// </summary>
        /// <param name="clientConfiguration">The client configuration.</param>
        public IgniteClient(IgniteClientConfiguration clientConfiguration)
        {
            Debug.Assert(clientConfiguration != null);

            _configuration = new IgniteClientConfiguration(clientConfiguration);

            _marsh = new Marshaller(_configuration.BinaryConfiguration)
            {
                Ignite = this
            };

            _socket = new ClientFailoverSocket(_configuration, _marsh);

            _binProc = _configuration.BinaryProcessor ?? new BinaryProcessorClient(_socket);

            _binary = new Binary(_marsh);

            _cluster = new ClientCluster(this);

            _compute = new ComputeClient(this, ComputeClientFlags.None, TimeSpan.Zero, null);

            _services = new ServicesClient(this);
        }
 public bool TryGetBinary(string tcmUri, out IBinary binary)
 {
     binary = new Binary();
     if (LoadBinariesAsStream)
     {
         LoggerService.Information("retrieving binaries as a stream is obsolete; support will be dropped in future versions of DD4T");
         binary.BinaryStream = BinaryProvider.GetBinaryStreamByUri(tcmUri);
         if (binary.BinaryStream == null)
         {
             return(false);
         }
     }
     else
     {
         binary.BinaryData = BinaryProvider.GetBinaryByUri(tcmUri);
         if (binary.BinaryData == null || binary.BinaryData.Length == 0)
         {
             return(false);
         }
     }
     ((Binary)binary).Id = tcmUri;
     return(true);
 }
Beispiel #8
0
        public bool TryFindBinary(string url, out IBinary binary)
        {
            binary = new Binary();

            if (LoadBinariesAsStream)
            {
                binary.BinaryStream = BinaryProvider.GetBinaryStreamByUrl(url);
                if (binary.BinaryStream == null)
                {
                    return(false);
                }
            }
            else
            {
                binary.BinaryData = BinaryProvider.GetBinaryByUrl(url);
                if (binary.BinaryData == null || binary.BinaryData.Length == 0)
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #9
0
        public IBinaryObjectBuilder ReadAsBinaryObject(string typeName, IBinary binary)
        {
            if (!_stream.CanRead)
            {
                return(null);
            }

            var read = _stream.Read(_buffer, 0, _buffer.Length);

            if (read < _buffer.Length)
            {
                // EOF
                return(null);
            }

            var result = binary.GetBuilder(typeName);

            foreach (var field in _recordDescriptor.Fields)
            {
                ReadField(result, field);
            }

            return(result);
        }
Beispiel #10
0
 public SW1(IBinary responseApduTrailer)
 {
     _responseApduTrailer = responseApduTrailer;
 }
 private void RemoveFromDB(IBinary binary)
 {
     using (var db = new BinariesEntities())
     {
         var binData = db.Binaries
             .Where<Binaries>(bin => bin.Path.Equals(binary.Url)).FirstOrDefault();
         if (binData != null)
         {
             db.Binaries.Remove(binData);
             db.SaveChanges();
         }
     }
 }
 private void CopyBinaryMetaToBinary(IBinaryMeta binaryMeta, IBinary binary)
 {
     ((Binary)binary).Id                = binaryMeta.Id;
     ((Binary)binary).VariantId         = binaryMeta.VariantId;
     ((Binary)binary).LastPublishedDate = binaryMeta.LastPublishedDate;
 }
 public bool TryFindBinary(string url, out IBinary binary)
 {
     return(TryFindBinary(url, null, true, out binary));
 }
        private void WriteToDb(IBinary binary)
        {
            object fileLock = LockFile(binary.Url);

            using (var db = new BinariesEntities())
            {
                lock (fileLock)
                {
                    var binData = db.Binaries
                        .Where(bin => bin.ComponentUri == binary.Id).FirstOrDefault();
                    if (binData == null)
                    {
                        binData = new Binaries();
                        db.Binaries.Add(binData);
                    }

                    binData.ComponentUri = binary.Id;
                    binData.Path = binary.Url;
                    binData.LastPublishedDate = binary.LastPublishedDate;

                    binData.Content = binary.BinaryData;

                    db.SaveChanges();
                }
            }
        }
Beispiel #15
0
 public CardSecurity(IBacReader bacReader)
 {
     _dgData = bacReader.DGData(_fid);
 }
Beispiel #16
0
 public Le(IBinary commandApduBody)
 {
     _commandApduBody = commandApduBody;
 }
        public static CreationResult Create(
            [NotNull] string filePath,
            int startPage       = -1,
            int endPage         = -1,
            int startIdx        = -1,
            int endIdx          = -1,
            int parentElementId = -1,
            int readPage        = 0,
            Point readPoint     = default(Point),
            ViewModes viewMode  = PDFConst.DefaultViewMode,
            int pageMargin      = PDFConst.DefaultPageMargin,
            float zoom          = PDFConst.DefaultZoom,
            bool shouldDisplay  = true)
        {
            IBinary binMem = null;

            try
            {
                var fileName = Path.GetFileName(filePath);
                var binMems  = Svc.SMA.Registry.Binary.FindByName(new Regex(Regex.Escape(fileName) + ".*",
                                                                            RegexOptions.IgnoreCase)).ToList();

                if (binMems.Any())
                {
                    var oriPdfFileInfo = new FileInfo(filePath);

                    foreach (var itBinMem in binMems)
                    {
                        var smPdfFilePath = itBinMem.GetFilePath("pdf");
                        var smPdfFileInfo = new FileInfo(smPdfFilePath);

                        if (smPdfFileInfo.Length != oriPdfFileInfo.Length)
                        {
                            continue;
                        }

                        binMem = itBinMem;
                        break;
                    }
                }

                if (binMem == null)
                {
                    int binMemId = Svc.SMA.Registry.Binary.AddMember(filePath,
                                                                     fileName);

                    if (binMemId < 0)
                    {
                        return(CreationResult.FailBinaryRegistryInsertionFailed);
                    }

                    binMem = Svc.SMA.Registry.Binary[binMemId];
                }
            }
            catch (Exception ex)
            {
                LogTo.Error(ex,
                            "Exception thrown while creating new PDF element");
                return(CreationResult.FailUnknown);
            }

            return(Create(binMem,
                          startPage,
                          endPage,
                          startIdx,
                          endIdx,
                          parentElementId,
                          readPage,
                          readPoint,
                          viewMode,
                          pageMargin,
                          zoom,
                          shouldDisplay));
        }
Beispiel #18
0
 public DO8E(IBinary computedCC)
 {
     _computedCc = computedCC;
 }
        /// <summary>
        /// Perform actual write of binary content to file
        /// </summary>
        /// <param name="binaryMeta">BinaryMeta the binary meta to store</param>
        /// <param name="physicalPath">String the file path to write to</param>
        /// <returns></returns>
        private bool WriteBinaryToFile(IBinary binary, String physicalPath, Dimensions dimensions)
        {
            bool result = true;
            FileStream fileStream = null;
            try
            {
                lock (physicalPath)
                {                    
                    if (File.Exists(physicalPath))
                    {
                        fileStream = new FileStream(physicalPath, FileMode.Create);
                    }
                    else
                    {
                        FileInfo fileInfo = new FileInfo(physicalPath);
                        if (!fileInfo.Directory.Exists)
                        {
                            fileInfo.Directory.Create();
                        }
                        fileStream = File.Create(physicalPath);
                    }

                    byte[] buffer = binary.BinaryData;

                    if (dimensions != null)
                        buffer = ResizeImageFile(buffer, dimensions, GetImageFormat(physicalPath));
                    fileStream.Write(buffer, 0, buffer.Length);
                }
            }
            catch (Exception e)
            {
                LoggerService.Error("Exception occurred {0}\r\n{1}", e.Message, e.StackTrace);
                result = false;
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
            }

            return result;
        }
Beispiel #20
0
 public BuildedDO97(IBinary rawCommandApdu)
 {
     _rawCommandApdu = rawCommandApdu;
 }
        /// <summary>
        /// Perform actual write of binary content to file
        /// </summary>
        /// <param name="binary">The binary to store</param>
        /// <param name="physicalPath">String the file path to write to</param>
        /// <param name="dimensions">Dimensions of file</param>
        /// <returns>True is binary was written to disk, false otherwise</returns>
        private static bool WriteBinaryToFile(IBinary binary, String physicalPath, Dimensions dimensions)
        {
            using (new Tracer(binary, physicalPath, dimensions))
            {
                bool result = true;
                try
                {
                    if (!File.Exists(physicalPath))
                    {
                        FileInfo fileInfo = new FileInfo(physicalPath);
                        if (fileInfo.Directory != null && !fileInfo.Directory.Exists)
                        {
                            fileInfo.Directory.Create();
                        }
                    }

                    byte[] buffer = binary.BinaryData;
                    if (dimensions != null && (dimensions.Width > 0 || dimensions.Height > 0))
                    {
                        buffer = ResizeImage(buffer, dimensions, GetImageFormat(physicalPath));
                    }

                    lock (NamedLocker.GetLock(physicalPath))
                    {
                        using (FileStream fileStream = new FileStream(physicalPath, FileMode.Create, FileAccess.ReadWrite, FileShare.Read))
                        {
                            fileStream.Write(buffer, 0, buffer.Length);
                        }
                    }
                }
                catch (IOException)
                {
                    // file probabaly accessed by a different thread in a different process, locking failed
                    Log.Warn("Cannot write to {0}. This can happen sporadically, let the next thread handle this.", physicalPath);
                    result = false;
                }

                return result;
            }
        }
 public CmdData(IBinary eIfd, IBinary mIfd)
 {
     _eIfd = eIfd;
     _mIfd = mIfd;
 }
 public bool TryFindBinary(string url, out IBinary binary)
 {
     throw new NotImplementedException();
 }
Beispiel #24
0
        public static CreationResult Create(
            string filePath,
            int startPage       = -1,
            int endPage         = -1,
            int startIdx        = -1,
            int endIdx          = -1,
            int parentElementId = -1,
            int readPage        = 0,
            Point readPoint     = default,
            ViewModes viewMode  = PDFConst.DefaultViewMode,
            int pageMargin      = PDFConst.DefaultPageMargin,
            float zoom          = PDFConst.DefaultZoom,
            bool shouldDisplay  = true)
        {
            IBinary binMem = null;

            try
            {
                var fileName = Path.GetFileName(filePath);

                if (string.IsNullOrWhiteSpace(fileName))
                {
                    LogTo.Warning($"Path.GetFileName(filePath) returned null for filePath '{filePath}'.");
                    return(CreationResult.FailUnknown);
                }

                var binMems = Svc.SM.Registry.Binary.FindByName(
                    new Regex(Regex.Escape(fileName) + ".*", RegexOptions.IgnoreCase)).ToList();

                if (binMems.Any())
                {
                    var oriPdfFileInfo = new FileInfo(filePath);

                    if (oriPdfFileInfo.Exists == false)
                    {
                        LogTo.Warning($"New PDF file '{filePath}' doesn't exist.");
                        return(CreationResult.FailUnknown);
                    }

                    foreach (var itBinMem in binMems)
                    {
                        var smPdfFilePath = itBinMem.GetFilePath("pdf");
                        var smPdfFileInfo = new FileInfo(smPdfFilePath);

                        if (smPdfFileInfo.Exists == false)
                        {
                            LogTo.Warning($"PDF file '{smPdfFilePath}' associated with Binary member id {itBinMem.Id} is missing.");
                            continue;
                        }

                        try
                        {
                            if (smPdfFileInfo.Length != oriPdfFileInfo.Length)
                            {
                                continue;
                            }
                        }
                        catch (FileNotFoundException ex)
                        {
                            LogTo.Warning(ex, "PDF file '{SmPdfFilePath}' or '{FilePath}' has gone missing. Weird.", smPdfFilePath, filePath);
                            continue;
                        }

                        binMem = itBinMem;
                        break;
                    }
                }

                if (binMem == null)
                {
                    int binMemId = Svc.SM.Registry.Binary.Add(filePath, fileName);

                    if (binMemId < 0)
                    {
                        return(CreationResult.FailBinaryRegistryInsertionFailed);
                    }

                    binMem = Svc.SM.Registry.Binary[binMemId];
                }
            }
            catch (RemotingException)
            {
                return(CreationResult.FailUnknown);
            }
            catch (Exception ex)
            {
                LogTo.Error(ex, "Exception thrown while creating new PDF element");
                return(CreationResult.FailUnknown);
            }

            return(Create(binMem,
                          startPage,
                          endPage,
                          startIdx,
                          endIdx,
                          parentElementId,
                          readPage,
                          readPoint,
                          viewMode,
                          pageMargin,
                          zoom,
                          shouldDisplay));
        }
 public bool TryGetBinary(string tcmUri, out IBinary binary)
 {
     throw new NotImplementedException();
 }
Beispiel #26
0
 public ExtractedDO87(IBinary protectedResponseApdu)
 {
     _protectedResponseApdu = protectedResponseApdu;
 }
Beispiel #27
0
 public INS(IBinary commandApduHeader)
 {
     _commandApduHeader = commandApduHeader;
 }
Beispiel #28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TestIgniteService"/> class.
 /// </summary>
 /// <param name="binary">Binary.</param>
 public TestIgniteService(IBinary binary)
 {
     _binary = binary;
 }
        private bool TryFindBinary(string url, string localPath, bool retrieveData, out IBinary binary)
        {
            string physicalPath = localPath ?? Path.Combine(Configuration.BinaryFileSystemCachePath, Path.GetFileName(url));

            LoggerService.Debug($"Using physical path {physicalPath}");
            binary = new Binary();

            Dimensions dimensions = null;

            string urlWithoutDimensions = StripDimensions(url, out dimensions);

            if (LoadBinariesAsStream)
            {
                LoggerService.Information("retrieving binaries as a stream is obsolete; support will be dropped in future versions of DD4T");
                binary.BinaryStream = BinaryProvider.GetBinaryStreamByUrl(urlWithoutDimensions);
                if (binary.BinaryStream == null)
                {
                    return(false);
                }
            }

            string cacheKey = CacheKeyFactory.GenerateKey(urlWithoutDimensions);

            try
            {
                IBinaryMeta binaryMeta     = CacheAgent.Load(cacheKey) as IBinaryMeta;
                bool        metaWasInCache = true;
                if (binaryMeta == null)
                {
                    metaWasInCache = false;
                    binaryMeta     = BinaryProvider.GetBinaryMetaByUrl(urlWithoutDimensions);
                    if (binaryMeta == null)
                    {
                        throw new BinaryNotFoundException();
                    }
                    CacheAgent.Store(cacheKey, "Binary", binaryMeta, new List <string> {
                        binaryMeta.Id
                    });
                }

                if (FileExistsAndIsNotEmpty(physicalPath))
                {
                    if (binaryMeta.HasLastPublishedDate || metaWasInCache)
                    {
                        DateTime fileModifiedDate = File.GetLastWriteTime(physicalPath);
                        if (fileModifiedDate.CompareTo(binaryMeta.LastPublishedDate) >= 0)
                        {
                            LoggerService.Debug("binary {0} is still up to date, no action required", urlWithoutDimensions);
                            // TODO: load bytes from file system into binary
                            if (retrieveData)
                            {
                                FillBinaryFromLocalFS(binary, physicalPath);
                            }
                            CopyBinaryMetaToBinary(binaryMeta, binary);
                            return(true);
                        }
                    }
                }

                // the normal situation (where a binary is still in Tridion and it is present on the file system already and it is up to date) is now covered
                // Let's handle the exception situations.

                byte[] bytes = BinaryProvider.GetBinaryByUrl(urlWithoutDimensions);
                if (bytes == null || bytes.Length == 0)
                {
                    throw new BinaryNotFoundException();
                }

                bool fileIsCreated = WriteBinaryToFile(bytes, physicalPath, dimensions);
                if (!fileIsCreated)
                {
                    LoggerService.Warning($"file '{physicalPath}' could not be created, binary {binary.Id} cannot be returned");
                    return(false);
                }
                if (retrieveData)
                {
                    if (dimensions == null)
                    {
                        binary.BinaryData = bytes;
                    }
                    else
                    {
                        FillBinaryFromLocalFS(binary, physicalPath);
                    }
                }
                CopyBinaryMetaToBinary(binaryMeta, binary);
                return(true);
            }
            catch (BinaryNotFoundException)
            {
                LoggerService.Debug("Binary with url {0} not found", urlWithoutDimensions);

                // binary does not exist in Tridion, it should be removed from the local file system too
                DeleteFile(physicalPath);
                return(false);
            }
            catch (Exception e)
            {
                LoggerService.Warning($"Caught unexpected exception while retrieving binary with url {urlWithoutDimensions} (requested url: {url}. Error message: {e.Message}\r\n{e.StackTrace}");

                // in case of error, the binary should be removed from the local file system too
                DeleteFile(physicalPath);
                throw e;
            }
        }
Beispiel #30
0
 public DGDataView(IBinary dgData)
 {
     _berTLV = new BerTLV(dgData);
 }
 private void FillBinaryFromLocalFS(IBinary binary, string physicalPath)
 {
     binary.BinaryData = File.ReadAllBytes(physicalPath);
 }
Beispiel #32
0
 public ConstructedTLV(IBinary constructedTLV)
 {
     _constructedTLV         = constructedTLV;
     _cachedFirstExistingTLV = new BerTLV(_constructedTLV);
 }
Beispiel #33
0
        public void ProcessRequest(HttpContext context)
        {
            IBinary binary = null;

            string url   = context.Request.Path;
            Cache  cache = HttpContext.Current.Cache;

            if (cache[url] != null)
            {
                binary = (IBinary)cache[url];
            }
            else
            {
                binary = BinaryFactory.FindBinary(context.Request.Path);
                int cacheSetting = Convert.ToInt32(ConfigurationManager.AppSettings[BinaryHandlerCachingKey]);
                cache.Insert(url, binary, null, DateTime.Now.AddSeconds(cacheSetting), TimeSpan.Zero);
            }

            string etagDate     = "\"" + binary.LastPublishedDate.ToString("s", DateTimeFormatInfo.InvariantInfo) + "\"";
            string incomingEtag = context.Request.Headers["If-None-Match"];

            context.Response.Cache.SetETag(etagDate);
            context.Response.Cache.SetCacheability(HttpCacheability.Public);

            if (etagDate.Equals(incomingEtag))
            {
                context.Response.StatusCode = 304;
                return;
            }

            var localPath = ConvertUrl(context.Request.Path, context);

            if (binary == null)
            {
                // there appears to be no binary present in Tridion
                // now we must check if there is still an (old) cached copy on the local file system
                object fileLock = LockFile(binary.Url);
                lock (fileLock)
                {
                    RemoveFromDB(binary);

                    lock (locks)
                    {
                        locks.Remove(binary.Url);
                    }
                }

                // that's all for us, the file is not on the FS, so
                // the default FileHandler will cause a 404 exception
                context.Response.StatusCode = 404;
                context.Response.End();
                return;
            }

            using (var db = new BinariesEntities())
            {
                bool     exists  = false;
                var      binData = db.Binaries.Where(bin => bin.ComponentUri == binary.Id).FirstOrDefault();
                TimeSpan ts      = TimeSpan.Zero;
                if (binData != null)
                {
                    ts     = binary.LastPublishedDate.Subtract(binData.LastPublishedDate);
                    exists = true;
                }

                if (!exists || ts.TotalMilliseconds > 0)
                {
                    WriteToDb(binary);
                }
            }

            FillResponse(context.Response, binary);
        }
        public bool TryGetBinary(string tcmUri, out IBinary binary)
        {
            binary = null;
            //using (var uri = new Com.Tridion.Util.TCMURI(tcmUri))
            //{
            //    using (var sqlBinHome = new Com.Tridion.Broker.Binaries.SQLBinaryHome())
            //    {
            //        var binData = sqlBinHome.FindByPrimaryKey(uri.GetPublicationId(), uri.GetItemId());
            //        using (var sqlBinMetaHome = new Com.Tridion.Broker.Binaries.Meta.SQLBinaryMetaHome())
            //        {
            //            using (Com.Tridion.Util.TCDURI tcdUri = new Com.Tridion.Util.TCDURI(uri))
            //            {
            //                Com.Tridion.Meta.BinaryMeta binaryMeta = sqlBinMetaHome.FindByPrimaryKey(tcdUri);

            //                if (binData != null)
            //                {
            //                    binary = new Binary(this)
            //                    {
            //                        Url = binaryMeta.GetURLPath(),
            //                        LastPublishedDate = DateTime.Now,
            //                        Multimedia = null,
            //                        VariantId = binData.GetVariantId()
            //                    };

            //                    return true;
            //                }
            //            }
            //        }
            //    }
            //}
            return false;
        }
Beispiel #35
0
        public static CreationResult Create(
            IBinary binMem,
            int startPage       = -1,
            int endPage         = -1,
            int startIdx        = -1,
            int endIdx          = -1,
            int parentElementId = -1,
            int readPage        = 0,
            Point readPoint     = default,
            ViewModes viewMode  = PDFConst.DefaultViewMode,
            int pageMargin      = PDFConst.DefaultPageMargin,
            float zoom          = PDFConst.DefaultZoom,
            bool shouldDisplay  = true,
            string subtitle     = null)
        {
            PDFElement pdfEl;
            string     title;
            string     author;
            string     creationDate;
            string     filePath;

            try
            {
                filePath = binMem.GetFilePath("pdf");

                if (File.Exists(filePath) == false)
                {
                    return(CreationResult.FailBinaryMemberFileMissing);
                }

                pdfEl = new PDFElement
                {
                    BinaryMemberId = binMem.Id,
                    FilePath       = filePath,
                    StartPage      = startPage,
                    EndPage        = endPage,
                    StartIndex     = startIdx,
                    EndIndex       = endIdx,
                    ReadPage       = readPage,
                    ReadPoint      = readPoint,
                    ViewMode       = viewMode,
                    PageMargin     = pageMargin,
                    Zoom           = zoom,
                };

                pdfEl.GetInfos(out string pdfTitle,
                               out author,
                               out creationDate);

                title = pdfEl.ConfigureTitle(pdfTitle, subtitle);
            }
            catch (Exception ex)
            {
                LogTo.Error(ex, "Exception thrown while creating new PDF element");
                return(CreationResult.FailUnknown);
            }

            string elementHtml = string.Format(CultureInfo.InvariantCulture,
                                               PDFConst.ElementFormat,
                                               title,
                                               binMem.Name,
                                               pdfEl.GetJsonB64());

            IElement parentElement =
                parentElementId > 0
          ? Svc.SM.Registry.Element[parentElementId]
          : null;

            var elemBuilder =
                new ElementBuilder(ElementType.Topic,
                                   elementHtml)
                .WithParent(parentElement)
                .WithTitle(subtitle ?? title)
                .WithPriority(PDFState.Instance.Config.PDFExtractPriority)
                .WithReference(
                    r => r.WithTitle(title)
                    .WithAuthor(author)
                    .WithDate(creationDate)
                    .WithSource("PDF")
                    .WithLink("..\\" + Svc.SM.Collection.MakeRelative(filePath))
                    );

            if (shouldDisplay == false)
            {
                elemBuilder = elemBuilder.DoNotDisplay();
            }

            return(Svc.SM.Registry.Element.Add(out _, ElemCreationFlags.CreateSubfolders, elemBuilder)
        ? CreationResult.Ok
        : CreationResult.FailCannotCreateElement);
        }
Beispiel #36
0
 public Kb(IBinary kKey)
 {
     _kKey = kKey;
 }
Beispiel #37
0
 public Kic(IBinary r)
 {
     _r = r;
 }
Beispiel #38
0
 public Eifd(IBinary s, IBinary kEnc)
 {
     _s    = s;
     _kEnc = kEnc;
 }
Beispiel #39
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServiceProxyTest"/> class.
 /// </summary>
 public ServiceProxyTest()
 {
     Binary = new Binary(_marsh);
 }
Beispiel #40
0
        private readonly int _responseApduTrailerLength = 2; // len(SW1) + len(SW2) = 2 bytes

        public ResponseApduData(IBinary executedCommandApdu)
        {
            _executedCommandApdu = executedCommandApdu;
        }
Beispiel #41
0
 public DG1(IBacReader bacReader)
 {
     _dgData = bacReader.DGData(_fid);
 }
Beispiel #42
0
 public static void Add(IBinary b)
 {
     data.AddC(b);
 }
        public bool TryGetBinary(string tcmUri, out IBinary binary)
        {
            binary = null;

            Query findBinary = new Query();
            MultimediaCriteria isBinary = new MultimediaCriteria(true);
            return false;

            /*
            using (var uri = new Com.Tridion.Util.TCMURI(tcmUri))
            {
                using (var sqlBinHome = new Com.Tridion.Broker.Binaries.SQLBinaryHome())
                {
                    var binData = sqlBinHome.FindByPrimaryKey(uri.GetPublicationId(), uri.GetItemId());
                    var sqlBinMetaHome = new Com.Tridion.Broker.Binaries.Meta.SQLBinaryMetaHome();
                    Com.Tridion.Util.TCDURI tcdUri = new Com.Tridion.Util.TCDURI(uri);
                    Com.Tridion.Meta.BinaryMeta binaryMeta = sqlBinMetaHome.FindByPrimaryKey(tcdUri);

                    if (binData != null)
                    {
                        binary = new Binary(this)
                        {
                            Url = binaryMeta.GetURLPath(),
                            LastPublishedDate = DateTime.Now,
                            Multimedia = null,
                            VariantId = binData.GetVariantId()
                        };

                        return true;
                    }
                }
            }
            */
        }
        private void FillResponse(HttpResponse response, IBinary binary)
        {
            response.Clear();

            byte[] imageData = null;
            using (var db = new BinariesEntities())
            {
                var binData = db.Binaries.Where(bin => bin.ComponentUri == binary.Id).FirstOrDefault();
                if (binData != null)
                {
                    imageData = binData.Content;
                    response.ContentType = GetContentType(binData.Path);
                    response.Cache.SetLastModified(binData.LastPublishedDate);
                }
            }

            response.BinaryWrite(imageData);
        }