コード例 #1
0
        public virtual DocumentLibrary InsertDocumentLibrary(DocumentLibrary entity)
        {
            DocumentLibrary other = new DocumentLibrary();

            other = entity;
            if (entity.IsTransient())
            {
                string         sql            = @"Insert into DocumentLibrary ( [DocumentID]
				,[LibraryID]
				,[DisplayOrder]
				,[CreatedOn] )
				Values
				( @DocumentID
				, @LibraryID
				, @DisplayOrder
				, @CreatedOn );
				Select scope_identity()"                ;
                SqlParameter[] parameterArray = new SqlParameter[] {
                    new SqlParameter("@DocumentID", entity.DocumentId)
                    , new SqlParameter("@LibraryID", entity.LibraryId)
                    , new SqlParameter("@DisplayOrder", entity.DisplayOrder)
                    , new SqlParameter("@CreatedOn", entity.CreatedOn)
                };
                var identity = SqlHelper.ExecuteScalar(this.ConnectionString, CommandType.Text, sql, parameterArray);
                if (identity == DBNull.Value)
                {
                    throw new DataException("Identity column was null as a result of the insert operation.");
                }
                return(GetDocumentLibrary(Convert.ToInt32(identity)));
            }
            return(entity);
        }
コード例 #2
0
        public static DocumentLibrary GetDocumentLibrary(Guid documentLibraryId)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            DocumentLibrary  library          = librariesManager.GetDocumentLibraries().Where(l => l.Id == documentLibraryId).FirstOrDefault();

            return(library);
        }
コード例 #3
0
        /// <summary>
        ///  Ensure a document library exist or it will  create a new one based on type and owner
        /// </summary>
        /// <param name="ownerId"></param>
        /// <param name="libraryType"></param>
        /// <param name="location"></param>
        /// <returns>DocumentLibrary</returns>
        public async Task <DocumentLibrary> CreateDocumentLibrary(string ownerId, string libraryType, string location)
        {
            Ensure.NotNullOrEmpty(ownerId);
            Ensure.NotNullOrEmpty(libraryType);
            Ensure.NotNullOrEmpty(location);

            DocumentLibrary documentLibrary = null;

            using (var db = new ConnectDbContext(_db))
            {
                documentLibrary = db.DocumentLibraries.FirstOrDefault(x => x.OwnerId == ownerId && x.LibraryType == libraryType);
                if (documentLibrary == null)
                {
                    documentLibrary = new DocumentLibrary
                    {
                        Id          = Guid.NewGuid().ToString("N"),
                        OwnerId     = ownerId,
                        LibraryType = libraryType,
                        Location    = location
                    };

                    db.DocumentLibraries.Add(documentLibrary);
                    db.SaveChanges();
                }
            }

            //Ensure there is a Trash folder and Root folder
            await EnsureTrashFolderAsync(ownerId);

            return(documentLibrary);
        }
コード例 #4
0
        private void OnCmdSpeichern()
        {
            // TODO: Add your Code here

            var metadataItem = new MetadataItem(_bezeichnung, _erfassungsdatum, _typItems[0], _stichwoerter);

            // überprüfen ob die Pflichtfelder ausgefüllt worden sind:
            if (!requiredFields())
            {
                MessageBox.Show("Es müssen alle Pflichtfelder ausgefüllt werden!");
                return;
            }
            var documentLibrary = new DocumentLibrary();
            var xmlService      = new XmlService();

            // File Speichern:
            documentLibrary.SaveFileInFolder(this._filePath, ".pdf");
            metadataItem.FilePath = documentLibrary.FilePath;

            // MetadatenXmlFile erstellen, speichern und in eine Liste speichern:
            var guid      = documentLibrary.CreateDmsSaveFileName(this._filePath, ".xml");
            var serialXml = xmlService.CreateXmlWithMetadataItem(metadataItem);

            xmlService.SaveXml(serialXml, guid);


            _navigateBack();
        }
コード例 #5
0
        public Guid UploadTorrentFile(string torrentTitle, Stream torrentFileStream, string torrentFileName, string torrentExtention, string torrentLibrary)
        {
            CultureInfo culture = CultureInfo.InvariantCulture;

            LibrariesManager librariesManager = LibrariesManager.GetManager(LibrariesManager.GetDefaultProviderName());
            DocumentLibrary  documentLibrary  = librariesManager.GetDocumentLibraries().Where(l => l.Title.Equals(torrentLibrary)).SingleOrDefault();

            Document document = librariesManager.CreateDocument();

            document.Parent           = documentLibrary;
            document.Title            = torrentTitle;
            document.DateCreated      = DateTime.UtcNow;
            document.PublicationDate  = DateTime.UtcNow;
            document.LastModified     = DateTime.UtcNow;
            document.UrlName          = Regex.Replace(torrentTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
            document.MediaFileUrlName = Regex.Replace(torrentFileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

            librariesManager.Upload(document, torrentFileStream, torrentExtention);
            librariesManager.RecompileAndValidateUrls(document);

            document.ApprovalWorkflowState.Value = "Published";

            librariesManager.Lifecycle.Publish(document, culture);
            librariesManager.SaveChanges();

            return(document.Id);
        }
コード例 #6
0
        public virtual DocumentLibrary UpdateDocumentLibrary(DocumentLibrary entity)
        {
            if (entity.IsTransient())
            {
                return(entity);
            }
            DocumentLibrary other = GetDocumentLibrary(entity.DocumentId);

            if (entity.Equals(other))
            {
                return(entity);
            }
            string sql = @"Update DocumentLibrary set  [LibraryID]=@LibraryID
							, [DisplayOrder]=@DisplayOrder
							, [CreatedOn]=@CreatedOn 
							 where DocumentID=@DocumentID"                            ;

            SqlParameter[] parameterArray = new SqlParameter[] {
                new SqlParameter("@DocumentID", entity.DocumentId)
                , new SqlParameter("@LibraryID", entity.LibraryId)
                , new SqlParameter("@DisplayOrder", entity.DisplayOrder)
                , new SqlParameter("@CreatedOn", entity.CreatedOn)
            };
            SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.Text, sql, parameterArray);
            return(GetDocumentLibrary(entity.DocumentId));
        }
コード例 #7
0
        private PartialViewResult ViewNewDocument(DocumentLibrary documentLibrary, NewDocumentViewModel viewModel)
        {
            var documentCategories = documentLibrary.DocumentLibraryDocumentCategories.Select(x => x.DocumentCategory)
                                     .ToSelectListWithEmptyFirstRow(x => x.DocumentCategoryID.ToString(CultureInfo.InvariantCulture), x => x.DocumentCategoryDisplayName);
            var viewData = new NewDocumentViewData(documentCategories);

            return(RazorPartialView <NewDocument, NewDocumentViewData, NewDocumentViewModel>(viewData, viewModel));
        }
コード例 #8
0
 public static DocumentLibraryModelInfo FromView(DocumentLibrary view)
 {
     return(new DocumentLibraryModelInfo
     {
         Id = view?.Id,
         Name = view?.Name
     });
 }
        public void Remove(DocumentLibrary entity)
        {
            if (entity == null)
            {
                throw new ArgumentException($"{typeof(DocumentLibrary).Name} Entity is null");
            }

            Remove(entity.ID);
        }
コード例 #10
0
        private PartialViewResult ViewDeleteDocumentLibrary(DocumentLibrary documentLibrary, ConfirmDialogFormViewModel viewModel)
        {
            var numberOfDocumentAssociated = documentLibrary.DocumentLibraryDocuments.Count;
            var confirmMessage             = numberOfDocumentAssociated > 0 ?
                                             $"This Document Library has {numberOfDocumentAssociated} documents. Deleting the Document Library will delete all associated documents. Are you sure you wish to delete Document Library '{documentLibrary.DocumentLibraryName}'?" :
                                             $"Are you sure you wish to delete Document Library '{documentLibrary.DocumentLibraryName}'?";

            var viewData = new ConfirmDialogFormViewData(confirmMessage);

            return(RazorPartialView <ConfirmDialogForm, ConfirmDialogFormViewData, ConfirmDialogFormViewModel>(viewData, viewModel));
        }
コード例 #11
0
        public void GetFileNameFromPath_CheckCorrectFileName_GetCorrectFileName()
        {
            //Arrange
            var file = new DocumentLibrary();
            var stubDocumentLibrary = new StubDocumentLibraryTest();
            var stubFilePath        = stubDocumentLibrary.GetFileNameFromPath(stubDocumentLibrary.FilePath);

            //Act
            string result = file.GetFileNameFromPath(stubDocumentLibrary.FilePath);

            //Assert
            Assert.That(result, Is.EqualTo(stubFilePath));
        }
コード例 #12
0
        public async Task <DocumentLibrary> GetDocumentLibraryAsync(string ownerId)
        {
            Ensure.NotNullOrEmpty(ownerId);

            var documentLibrary = new DocumentLibrary();

            using (var db = new ConnectDbContext(_db))
            {
                documentLibrary = db.DocumentLibraries.FirstOrDefault(x => x.OwnerId == ownerId);
            }

            return(documentLibrary);
        }
コード例 #13
0
        public virtual DocumentLibrary DocumentLibraryFromDataRow(DataRow dr)
        {
            if (dr == null)
            {
                return(null);
            }
            DocumentLibrary entity = new DocumentLibrary();

            entity.DocumentId   = (System.Int32)dr["DocumentID"];
            entity.LibraryId    = (System.Int32)dr["LibraryID"];
            entity.DisplayOrder = (System.Int32)dr["DisplayOrder"];
            entity.CreatedOn    = (System.DateTime)dr["CreatedOn"];
            return(entity);
        }
コード例 #14
0
        public void CreateDmsSaveFileName_CheckSwitchCaseFunctionXml_GetCorrectFileName()
        {
            //Arrange
            var id   = "123456";
            var file = new DocumentLibrary(id);
            var stubDocumentLibrary = new StubDocumentLibraryTest(id);
            var stubFilePath        = stubDocumentLibrary.CreateDmsSaveFileName(stubDocumentLibrary.FilePath, ".xml");

            //Act
            string result = file.CreateDmsSaveFileName(stubDocumentLibrary.FilePath, ".xml");

            //Assert
            Assert.That(result, Is.EqualTo(stubFilePath));
        }
コード例 #15
0
        public static void DeleteDocumentLibrary(Guid documentLibraryId)
        {
            LibrariesManager manager = LibrariesManager.GetManager();

            DocumentLibrary library = manager.GetDocumentLibraries().Where(b => b.Id == documentLibraryId).SingleOrDefault();

            if (library != null)
            {
                //Mark the library to be deleted.
                manager.DeleteDocumentLibrary(library);

                //Save the changes.
                manager.SaveChanges();
            }
        }
コード例 #16
0
ファイル: Database.cs プロジェクト: openrasta/rest-workshop-1
 static Database()
 {
     Documents = new DocumentLibrary
                     {
                         new DocumentInfo
                             {
                                 Id = 1,
                                 Author = "@serialseb",
                                 Data = ReadNotepad(),
                                 DataHref = new DocumentData {Id = 1}.CreateUri(),
                                 LastModifiedTimeUTC = DateTime.UtcNow,
                                 FileName = "Notepad"
                             }
                     };
 }
コード例 #17
0
        /// <summary>
        /// GetDocumentLibrary
        /// </summary>
        /// <param name="documentLibraryId"></param>
        /// <returns></returns>
        public ServiceResponse <DocumentLibraryDC> GetDocumentLibrary(int documentLibraryId)
        {
            ServiceResponse <DocumentLibraryDC> documentLibraryResponse = new ServiceResponse <DocumentLibraryDC>();

            try
            {
                SetContext();
                DocumentLibrary documentLibraryResult = _contentManager.GetDocumentLibrary(documentLibraryId);
                documentLibraryResponse.Result = Mapper.Map <DocumentLibrary, DocumentLibraryDC>(documentLibraryResult);
            }
            catch (Exception ex)
            {
                HandleError(ex, documentLibraryResponse);
            }
            return(documentLibraryResponse);
        }
        public void Add(DocumentLibrary entity)
        {
            if (entity == null)
            {
                throw new ArgumentException($"{typeof(DocumentLibrary).Name} Entity is null");
            }

            entity.ID = Connection.ExecuteScalar <long>(SqlCommand.Add
                                                        , param: new
            {
                SiteId    = entity.SiteID,
                Url       = entity.URL,
                Title     = entity.Title,
                ItemCount = entity.ItemCount
            }, transaction: Transaction);
        }
コード例 #19
0
ファイル: Database.cs プロジェクト: serialseb/rest-workshop-1
 static Database()
 {
     Documents = new DocumentLibrary
     {
         new DocumentInfo
         {
             Id       = 1,
             Author   = "@serialseb",
             Data     = ReadNotepad(),
             DataHref = new DocumentData {
                 Id = 1
             }.CreateUri(),
             LastModifiedTimeUTC = DateTime.UtcNow,
             FileName            = "Notepad"
         }
     };
 }
コード例 #20
0
        /// <summary>
        /// SaveDocumentLibrary
        /// </summary>
        /// <param name="documentLibrary"></param>
        /// <returns></returns>
        public ServiceResponse <int> SaveDocumentLibrary(DocumentLibraryDC documentLibrary)
        {
            ServiceResponse <int> documentLibraryResponse = new ServiceResponse <int>();

            try
            {
                SetContext();
                DocumentLibrary documentLibraryModel = Mapper.Map <DocumentLibraryDC, DocumentLibrary>(documentLibrary);
                _contentManager.SaveDocumentLibrary(documentLibraryModel);
                documentLibraryResponse.Result = documentLibraryModel.DocumentLibraryId;
            }
            catch (Exception ex)
            {
                HandleError(ex, documentLibraryResponse);
            }
            return(documentLibraryResponse);
        }
コード例 #21
0
        private bool UploadFileToS3(Guid masterDocumentId, string providerName, string libraryName, string fileName, MemoryStream fileStream)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager(providerName);
            Document         document         = librariesManager.GetDocuments().Where(i => i.Id == masterDocumentId).FirstOrDefault();

            if (document == null)
            {
                //The document is created as master. The masterDocumentId is assigned to the master version.
                document = librariesManager.CreateDocument(masterDocumentId);

                //Set the parent document library.
                DocumentLibrary documentLibrary = librariesManager.GetDocumentLibraries().Where(d => d.Title == libraryName).SingleOrDefault();
                document.Parent = documentLibrary;

                //Set the properties of the document.
                string documentTitle = masterDocumentId.ToString() + "_" + fileName;
                document.Title                 = documentTitle;
                document.DateCreated           = DateTime.UtcNow;
                document.PublicationDate       = DateTime.UtcNow;
                document.LastModified          = DateTime.UtcNow;
                document.UrlName               = Regex.Replace(documentTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
                document.MediaFileUrlName      = Regex.Replace(documentTitle.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
                document.ApprovalWorkflowState = "Published";

                //Upload the document file.
                string fileExtension = fileName.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries).Last();
                librariesManager.Upload(document, fileStream, fileExtension ?? string.Empty);

                //Recompiles and validates the url of the document.
                librariesManager.RecompileAndValidateUrls(document);

                //Save the changes.
                librariesManager.SaveChanges();

                //Publish the DocumentLibraries item. The live version acquires new ID.
                var bag = new Dictionary <string, string>();
                bag.Add("ContentType", typeof(Document).FullName);
                WorkflowManager.MessageWorkflow(masterDocumentId, typeof(Document), null, "Publish", false, bag);

                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #22
0
 // Token: 0x06003037 RID: 12343 RVA: 0x0011A8A4 File Offset: 0x00118AA4
 private static void RenderLibraryItemAsXml(XmlTextWriter xmlWriter, DocumentLibrary library)
 {
     xmlWriter.WriteStartElement("docLib");
     if (!string.IsNullOrEmpty(library.Uri))
     {
         xmlWriter.WriteAttributeString("uri", library.Uri);
     }
     if (!string.IsNullOrEmpty(library.DisplayName))
     {
         xmlWriter.WriteAttributeString("dn", library.DisplayName);
     }
     if (!string.IsNullOrEmpty(library.SiteName))
     {
         xmlWriter.WriteAttributeString("hn", library.SiteName);
     }
     xmlWriter.WriteAttributeString("uf", ((int)library.Type).ToString());
     xmlWriter.WriteEndElement();
 }
コード例 #23
0
        // Token: 0x06003035 RID: 12341 RVA: 0x0011A68C File Offset: 0x0011888C
        private static void ParseFavoritesListNode(XmlTextReader xmlReader, List <DocumentLibrary> libraries, bool isSharepointEnabled, bool isUncEnabled)
        {
            DocumentLibrary documentLibrary = new DocumentLibrary();

            while (xmlReader.MoveToNextAttribute())
            {
                string name;
                if ((name = xmlReader.Name) != null)
                {
                    if (!(name == "uri"))
                    {
                        if (!(name == "dn"))
                        {
                            if (!(name == "hn"))
                            {
                                if (name == "uf")
                                {
                                    documentLibrary.Type = (UriFlags)Convert.ToInt32(xmlReader.Value);
                                }
                            }
                            else
                            {
                                documentLibrary.SiteName = xmlReader.Value;
                            }
                        }
                        else
                        {
                            documentLibrary.DisplayName = xmlReader.Value;
                        }
                    }
                    else
                    {
                        documentLibrary.Uri = xmlReader.Value;
                    }
                }
            }
            bool flag  = (documentLibrary.Type & UriFlags.Sharepoint) == UriFlags.Sharepoint;
            bool flag2 = (documentLibrary.Type & UriFlags.Unc) == UriFlags.Unc;

            if ((flag2 && isUncEnabled) || (flag && isSharepointEnabled))
            {
                libraries.Add(documentLibrary);
            }
        }
コード例 #24
0
        public static void ModifyDocumentLibrary(Guid documentLibraryId, string newTitle)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();

            //Get the library.
            DocumentLibrary library = librariesManager.GetDocumentLibraries().Where(b => b.Id == documentLibraryId).FirstOrDefault();

            if (library != null)
            {
                //Modify the library.
                library.Title        = newTitle;
                library.LastModified = DateTime.UtcNow;
                library.Urls.Clear();
                library.UrlName = FormatUrlName(newTitle);

                //Save the changes.
                librariesManager.SaveChanges();
            }
        }
コード例 #25
0
        public ActionResult New(EditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewEdit(viewModel));
            }
            var documentLibrary = new DocumentLibrary(
                ModelObjectHelpers.NotYetAssignedID, // Should never be null due to View Model validation
                string.Empty,
                null);

            HttpRequestStorage.DatabaseEntities.DocumentLibraryDocumentCategories.Load();
            var documentLibraryDocumentCategories = HttpRequestStorage.DatabaseEntities.AllDocumentLibraryDocumentCategories.Local;

            viewModel.UpdateModel(documentLibrary, documentLibraryDocumentCategories);
            HttpRequestStorage.DatabaseEntities.AllDocumentLibraries.Add(documentLibrary);
            HttpRequestStorage.DatabaseEntities.SaveChanges();
            SetMessageForDisplay($"Document Library '{documentLibrary.DocumentLibraryName}' successfully created.");
            return(new ModalDialogFormJsonResult(documentLibrary.GetDetailUrl()));
        }
コード例 #26
0
        public static void CreateDocumentLibrary(Guid documentLibraryId, string documentLibraryTitle)
        {
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            DocumentLibrary  library          = librariesManager.GetDocumentLibraries().Where(b => b.Id == documentLibraryId).FirstOrDefault();

            if (library == null)
            {
                //Create the library.
                library = librariesManager.CreateDocumentLibrary(documentLibraryId);

                //Set the properties of the library.
                library.Title        = documentLibraryTitle;
                library.DateCreated  = DateTime.UtcNow;
                library.LastModified = DateTime.UtcNow;
                library.UrlName      = FormatUrlName(documentLibraryTitle);

                //Save the changes.
                librariesManager.SaveChanges();
            }
        }
コード例 #27
0
        /// <summary>
        /// GetDocuments
        /// </summary>
        /// <param name="documentLibraryId"></param>
        /// <returns></returns>
        public ServiceResponse <DocumentLibraryDC> GetDocuments(int documentLibraryId)
        {
            ServiceResponse <DocumentLibraryDC> documentsResponse = new ServiceResponse <DocumentLibraryDC>();

            try
            {
                SetContext();
                DocumentLibrary documentLibrary = _contentManager.GetDocuments(documentLibraryId);
                documentsResponse.Result           = Mapper.Map <DocumentLibrary, DocumentLibraryDC>(documentLibrary);
                documentsResponse.Result.Documents = new List <DocumentDC>();
                documentLibrary.Documents.ToList().ForEach(result =>
                {
                    documentsResponse.Result.Documents.Add(Mapper.Map <Document, DocumentDC>(result));
                });
            }
            catch (Exception ex)
            {
                HandleError(ex, documentsResponse);
            }
            return(documentsResponse);
        }
コード例 #28
0
        // Token: 0x06003029 RID: 12329 RVA: 0x00119B08 File Offset: 0x00117D08
        public static bool AddFavorite(DocumentLibrary library, UserContext userContext, out int countOfFavorites)
        {
            if (library == null)
            {
                throw new ArgumentNullException("library");
            }
            if (userContext == null)
            {
                throw new ArgumentNullException("userContext");
            }
            List <DocumentLibrary> favoritesList = DocumentLibraryUtilities.GetFavoritesList(userContext);

            countOfFavorites = favoritesList.Count;
            if (DocumentLibraryUtilities.FavoriteExists(favoritesList, library.Uri))
            {
                return(false);
            }
            favoritesList.Add(library);
            favoritesList.Sort();
            DocumentLibraryUtilities.SaveList(favoritesList, userContext);
            return(true);
        }
コード例 #29
0
        public Document CreateDocumentNativeAPI(CreateDocumentDto createDocumentDto)
        {
            //The document is created as master. The masterDocumentId is assigned to the master version.
            LibrariesManager librariesManager = LibrariesManager.GetManager();
            Guid             documentId       = Guid.NewGuid();
            Document         document         = document = librariesManager.CreateDocument(documentId);

            //Set the parent document library.
            DocumentLibrary documentLibrary = librariesManager.GetDocumentLibraries().SingleOrDefault();

            document.Parent = documentLibrary;

            //Set the properties of the document.
            document.Title            = createDocumentDto.Title;
            document.DateCreated      = DateTime.UtcNow;
            document.PublicationDate  = DateTime.UtcNow;
            document.LastModified     = DateTime.UtcNow;
            document.UrlName          = Regex.Replace($"{createDocumentDto.Title}-{documentId}".ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
            document.MediaFileUrlName = Regex.Replace(createDocumentDto.FileName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");

            //Upload the document file.
            librariesManager.Upload(document, createDocumentDto.Stream, createDocumentDto.FileExtension);

            //Recompiles and validates the url of the document.
            librariesManager.RecompileAndValidateUrls(document);

            //Save the changes.
            librariesManager.SaveChanges();

            //Publish the DocumentLibraries item. The live version acquires new ID.
            var bag = new Dictionary <string, string>();

            bag.Add("ContentType", typeof(Document).FullName);
            WorkflowManager.MessageWorkflow(documentId, typeof(Document), null, "Publish", false, bag);

            return(document);
        }
コード例 #30
0
        public void AddFavoriteLibrary()
        {
            ExTraceGlobals.DocumentsCallTracer.TraceDebug((long)this.GetHashCode(), "DocumentLibraryEventHandler.AddFavoriteLibrary");
            string[] array = (string[])base.GetParameter("uri");
            bool     flag  = false;

            this.Writer.Write("<div id=divAFavLibs>");
            for (int i = 0; i < array.Length; i++)
            {
                ClassifyResult documentLibraryObjectId = DocumentLibraryUtilities.GetDocumentLibraryObjectId(array[i], base.UserContext);
                if (documentLibraryObjectId == null)
                {
                    ExTraceGlobals.DocumentsTracer.TraceDebug(0L, "Could not classify link: " + array[i]);
                }
                else
                {
                    DocumentLibraryObjectId objectId = documentLibraryObjectId.ObjectId;
                    if (objectId != null)
                    {
                        UriFlags        uriFlags        = objectId.UriFlags;
                        DocumentLibrary documentLibrary = new DocumentLibrary();
                        bool            flag2           = DocumentLibraryUtilities.IsNavigationToWSSAllowed(base.UserContext);
                        bool            flag3           = DocumentLibraryUtilities.IsNavigationToUNCAllowed(base.UserContext);
                        UriFlags        uriFlags2       = uriFlags;
                        switch (uriFlags2)
                        {
                        case UriFlags.Sharepoint:
                            {
                                if (!flag2)
                                {
                                    throw new OwaSegmentationException("Access to Sharepoint documents is disabled");
                                }
                                SharepointSession sharepointSession = base.UserContext.LogonIdentity.CreateSharepointSession(objectId);
                                documentLibrary.DisplayName = (string.IsNullOrEmpty(sharepointSession.DisplayName) ? LocalizedStrings.GetNonEncoded(-527057840) : sharepointSession.DisplayName);
                                documentLibrary.SiteName    = sharepointSession.DisplayName;
                                break;
                            }

                        case UriFlags.Unc:
                            {
                                if (!flag3)
                                {
                                    throw new OwaSegmentationException("Access to Unc documents is disabled");
                                }
                                UncSession uncSession = base.UserContext.LogonIdentity.CreateUncSession(objectId);
                                documentLibrary.DisplayName = uncSession.Title;
                                documentLibrary.SiteName    = uncSession.Uri.Host;
                                break;
                            }

                        case UriFlags.Sharepoint | UriFlags.Unc:
                        case UriFlags.DocumentLibrary:
                            goto IL_34F;

                        case UriFlags.SharepointDocumentLibrary:
                        {
                            if (!flag2)
                            {
                                throw new OwaSegmentationException("Access to Sharepoint documents is disabled");
                            }
                            SharepointSession         sharepointSession2        = base.UserContext.LogonIdentity.CreateSharepointSession(objectId);
                            SharepointDocumentLibrary sharepointDocumentLibrary = SharepointDocumentLibrary.Read(sharepointSession2, objectId);
                            documentLibrary.DisplayName = (string.IsNullOrEmpty(sharepointDocumentLibrary.Title) ? LocalizedStrings.GetNonEncoded(477016274) : sharepointDocumentLibrary.Title);
                            documentLibrary.SiteName    = sharepointSession2.DisplayName;
                            break;
                        }

                        case UriFlags.UncDocumentLibrary:
                        {
                            if (!flag3)
                            {
                                throw new OwaSegmentationException("Access to Unc documents is disabled");
                            }
                            UncSession         session            = base.UserContext.LogonIdentity.CreateUncSession(objectId);
                            UncDocumentLibrary uncDocumentLibrary = UncDocumentLibrary.Read(session, objectId);
                            documentLibrary.DisplayName = (string.IsNullOrEmpty(uncDocumentLibrary.Title) ? LocalizedStrings.GetNonEncoded(477016274) : uncDocumentLibrary.Title);
                            documentLibrary.SiteName    = uncDocumentLibrary.Uri.Host;
                            break;
                        }

                        default:
                            switch (uriFlags2)
                            {
                            case UriFlags.SharepointFolder:
                            {
                                if (!flag2)
                                {
                                    throw new OwaSegmentationException("Access to Sharepoint documents is disabled");
                                }
                                SharepointSession sharepointSession3 = base.UserContext.LogonIdentity.CreateSharepointSession(objectId);
                                SharepointDocumentLibraryFolder sharepointDocumentLibraryFolder = SharepointDocumentLibraryFolder.Read(sharepointSession3, objectId);
                                documentLibrary.DisplayName = (string.IsNullOrEmpty(sharepointDocumentLibraryFolder.DisplayName) ? LocalizedStrings.GetNonEncoded(-527057840) : sharepointDocumentLibraryFolder.DisplayName);
                                documentLibrary.SiteName    = sharepointSession3.DisplayName;
                                break;
                            }

                            case UriFlags.UncFolder:
                            {
                                if (!flag3)
                                {
                                    throw new OwaSegmentationException("Access to Unc documents is disabled");
                                }
                                UncSession session2 = base.UserContext.LogonIdentity.CreateUncSession(objectId);
                                UncDocumentLibraryFolder uncDocumentLibraryFolder = UncDocumentLibraryFolder.Read(session2, objectId);
                                documentLibrary.DisplayName = (string.IsNullOrEmpty(uncDocumentLibraryFolder.DisplayName) ? LocalizedStrings.GetNonEncoded(-527057840) : uncDocumentLibraryFolder.DisplayName);
                                documentLibrary.SiteName    = uncDocumentLibraryFolder.Uri.Host;
                                break;
                            }

                            default:
                                goto IL_34F;
                            }
                            break;
                        }
                        documentLibrary.Type = uriFlags;
                        documentLibrary.Uri  = array[i];
                        int num = 0;
                        if (DocumentLibraryUtilities.AddFavorite(documentLibrary, base.UserContext, out num) && num <= 1000)
                        {
                            DocumentLibraryUtilities.RenderLibraryItem(this.Writer, documentLibrary, base.UserContext, true);
                            flag = true;
                            goto IL_3A0;
                        }
                        goto IL_3A0;
                        IL_34F:
                        throw new OwaNotSupportedException("Unhandled document library type");
                    }
                    ExTraceGlobals.DocumentsTracer.TraceDebug(0L, "ObjectId could not be created from URI parameter: " + array[i]);
                }
                IL_3A0 :;
            }
            this.Writer.Write("</div>");
            if (flag)
            {
                this.Writer.Write("<div id=divMsgFav>");
                this.Writer.Write(LocalizedStrings.GetHtmlEncoded(344777715));
                this.Writer.Write("</div><div id=divMsgTtl>");
                this.Writer.Write(LocalizedStrings.GetHtmlEncoded(803639727));
            }
            else
            {
                this.Writer.Write("<div id=divNoLib>");
            }
            this.Writer.Write("</div>");
        }
コード例 #31
0
        // Token: 0x06003030 RID: 12336 RVA: 0x0011A360 File Offset: 0x00118560
        public static void RenderLibraryItem(TextWriter output, DocumentLibrary library, UserContext userContext, bool isFavorite)
        {
            if (output == null)
            {
                throw new ArgumentNullException("output");
            }
            if (library == null)
            {
                throw new ArgumentNullException("library");
            }
            if (userContext == null)
            {
                throw new ArgumentNullException("userContext");
            }
            output.Write("<div class=\"docFavItm\" title=\"");
            Utilities.HtmlEncode(library.DisplayName, output);
            output.Write("\n");
            Utilities.HtmlEncode(library.SiteName, output);
            output.Write("\n");
            Utilities.HtmlEncode(library.Uri, output);
            output.Write("\" ");
            string arg         = Utilities.JavascriptEncode(library.Uri);
            string handlerCode = string.Format("tbA(\"opendl\",new Array(\"{0}\",{1}));", arg, (int)library.Type);

            Utilities.RenderScriptHandler(output, "onclick", handlerCode);
            output.Write(" ");
            Utilities.RenderScriptHandler(output, "oncontextmenu", "shwDocMnu(_this," + (isFavorite ? "1" : "0") + ");");
            output.Write(" uri=\"{0}\" uf={1}><div class=\"docFavNmLine\">", Utilities.HtmlEncode(library.Uri), (int)library.Type);
            UriFlags type = library.Type;

            switch (type)
            {
            case UriFlags.Sharepoint:
            case UriFlags.Unc:
            case UriFlags.SharepointDocumentLibrary:
                goto IL_14E;

            case UriFlags.Sharepoint | UriFlags.Unc:
            case UriFlags.DocumentLibrary:
                goto IL_165;

            case UriFlags.UncDocumentLibrary:
                break;

            default:
                switch (type)
                {
                case UriFlags.SharepointFolder:
                    goto IL_14E;

                case UriFlags.UncFolder:
                    break;

                default:
                    goto IL_165;
                }
                break;
            }
            userContext.RenderThemeImage(output, ThemeFileId.Folder, "docFavItmImg", new object[0]);
            goto IL_165;
IL_14E:
            userContext.RenderThemeImage(output, ThemeFileId.WebFolder, "docFavItmImg", new object[0]);
IL_165:
            output.Write("<span id=\"spnDocFavDN\">");
            Utilities.HtmlEncode(library.DisplayName, output);
            output.Write("</span></div><span class=\"docFavSN\">");
            if (library.Type == UriFlags.UncDocumentLibrary || library.Type == UriFlags.UncFolder || library.Type == UriFlags.Unc)
            {
                output.Write("\\\\");
            }
            Utilities.HtmlEncode(library.SiteName, output);
            output.Write("</span></div>");
        }