예제 #1
0
        public IResourceHandler GetResourceHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request)
        {
            var requestUrl = RequestUrl.FromString(request.Url);

            var api      = GetApi(requestUrl.Api);
            var mimeType = mimeResolver.GetMimeType(Path.GetFileName(requestUrl.Resource));

            return(ResourceHandler.FromByteArray(api.ProcessRequest(requestUrl), mimeType));
        }
        public BlobInfo UpdateBlob(string blobId, string blobName, string blobType, Stream blobData)
        {
            var start = DateTime.Now;

            try
            {
                if (string.IsNullOrEmpty(blobId))
                {
                    throw new ArgumentNullException(nameof(blobId));
                }

                if (blobData == null)
                {
                    throw new ArgumentNullException(nameof(blobData));
                }

                if (string.IsNullOrEmpty(blobType))
                {
                    blobType = _mimeTypeResolver.GetMimeType(blobName);
                }

                var blobInfo = new BlobInfo
                {
                    Id   = blobId,
                    Name = blobName,
                    Type = blobType,
                    Size = blobData.Length,
                    Time = DateTime.UtcNow
                };

                WriteBlobInfo(blobId, blobInfo);
                WriteBlobData(blobId, blobData);

                _performanceLog.Log("UpdateBlob", start);

                return(blobInfo);
            }
            catch (Exception e)
            {
                _performanceLog.Log("UpdateBlob", start, e);

                throw;
            }
        }
예제 #3
0
        private IEnumerable <SourceFile> GetFilesForFolder(DirectoryInfo directory)
        {
            var files = new List <SourceFile>();

            foreach (FileInfo f in directory.GetFiles(SEARCH_PATTERN))
            {
                files.Add(new SourceFile(f.Name, f.FullName, _mimeTypeReolver.GetMimeType(f.Name)));
            }

            if (files.Any())
            {
                return(files);
            }

            return(null);
        }
예제 #4
0
        public ClipboardItem GetClipboardItem()
        {
            var image = _clipboard.GetImage();

            if (image != null)
            {
                string path = _encoder.EncodeToTempPng(image);

                return(new ClipboardItem(path, "image/png"));
            }

            string filePath = _clipboard.GetFilePath();

            if (filePath != null)
            {
                string contentType = _mimeTypeResolver.GetMimeType(filePath);
                return(new ClipboardItem(filePath, contentType));
            }

            return(null);
        }