예제 #1
0
        public ActionResult Index(string Id)
        {
            _logger.InfoFormat("进入浏览界面 {0}", Id);

            Guid result;

            if (string.IsNullOrWhiteSpace(Id) || !Guid.TryParse(Id, out result))
            {
                return(View("NotFound", new DisplayViewModel()));
            }

            var document = _documentService.GetDocument(Id);

            if (document == null || document.IsDelete)
            {
                return(View("NotFound", new DisplayViewModel()));
            }

            if (!_storePolicy.Exist(document.StorePath))
            {
                return(View("NotFound", new DisplayViewModel()));
            }

            var parentSpaces = _spaceService.GetParentsChain(document.SpaceId);
            var space        = _spaceService.GetSpace(document.SpaceId);

            _contextService.CurrentSpace = space;
            return(View(new DisplayViewModel
            {
                Document = document,
                CurrentSpace = space,
                ParentSpaces = parentSpaces,
            }));
        }
예제 #2
0
        /// <summary>
        /// 这里是否需要try catch呢
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public string Read(string fileName)
        {
            _logger.InfoFormat("读取文档 {0} 的内容", fileName);

            try
            {
                if (!_storePolicy.Exist(fileName))
                {
                    _logger.ErrorFormat("文档 {0} 不存在", fileName);
                    return(string.Empty);
                }

                var bytes = _storePolicy.GetBytes(fileName);
                using (Stream stream = new MemoryStream(bytes))
                {
                    return(_reader.Read(stream, fileName.ToDocumentType()));
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                _logger.Error(ex.StackTrace);
            }

            return(string.Empty);
        }
예제 #3
0
        public ActionResult Index(string Id)
        {
            _logger.InfoFormat("进入浏览界面 {0}", Id);

            Guid result;

            if (string.IsNullOrWhiteSpace(Id) || !Guid.TryParse(Id, out result))
            {
                return(View("NotFound", new DisplayViewModel()));
            }

            var document = _documentService.GetDocument(Id);

            if (document == null || document.IsDelete || !_storePolicy.Exist(document.StorePath))
            {
                return(View("NotFound", new DisplayViewModel()));
            }



            switch (document.DocumentCategory)
            {
            case DocumentCategory.Office:
            case DocumentCategory.Text:
                document = _documentService.Convert(document);
                return(View("Html", new DisplayViewModel {
                    Document = document
                }));

            case DocumentCategory.CAD:
                document = _documentService.Convert(document);
                return(View("Svg", new DisplayViewModel {
                    Document = document
                }));

            default:
                return(View("Unknow", new DisplayViewModel {
                    Document = document
                }));
            }
        }
예제 #4
0
        private void CleanUpDocuments(List <DocumentObject> documents)
        {
            _logger.Info("Clean up Documents");

            foreach (var document in documents)
            {
                try
                {
                    _logger.InfoFormat("Start to delete StorePath:{0}, ConvertPath:{1}", document.StorePath, document.ConvertPath);

                    if (_storePolicy.Exist(document.StorePath))
                    {
                        _logger.InfoFormat("StorePath {0} delete", document.StorePath);
                        _storePolicy.Delete(document.StorePath);
                    }
                    else
                    {
                        _logger.InfoFormat("StorePath {0} is not exist", document.StorePath);
                    }

                    if (System.IO.File.Exists(document.ConvertPath))
                    {
                        _logger.InfoFormat("ConvertPath {0} delete", document.ConvertPath);
                        System.IO.File.Delete(document.ConvertPath);
                    }
                    else
                    {
                        _logger.InfoFormat("ConvertPath {0} is not exist", document.ConvertPath);
                    }
                }
                catch (Exception ex)
                {
                    _logger.Error(ex.Message);
                    _logger.Error(ex.StackTrace);
                }
            }
        }