コード例 #1
0
        public void InitializeContext()
        {
            View.PlayerFileUniqueID = View.PlayerFileUniqueID;

            int idCommunity = View.PreloadedIdCommunity;

            if (idCommunity <= 0)
            {
                idCommunity = UserContext.CurrentCommunityID;
                BaseCommunityFile item = Service.GetItem(View.PlayerIdFile);
                if (item != null && item.CommunityOwner != null)
                {
                    idCommunity = item.CommunityOwner.Id;
                }
            }
            View.PlayerIdCommunity      = idCommunity;
            View.PlayerIdFile           = View.PreloadedIdFile;
            View.PlayerIdLink           = View.PreloadedIdLink;
            View.PlayerIdModule         = View.PreloadedIdModule;
            View.PlayerItemTypeID       = View.PreloadedItemTypeID;
            View.PlayerSavingStatistics = View.PreloadedSavingStatistics;
            int    idModule   = View.PreloadedIdModule;
            String moduleCode = CurrentManager.GetModuleCode(idModule);

            if (String.IsNullOrEmpty(moduleCode) || idModule == 0)
            {
                idModule   = ModuleID; //CurrentManager.GetModuleID(CoreModuleRepository.UniqueID);
                moduleCode = CoreModuleRepository.UniqueID;
            }
            View.PlayerIdModule   = idModule;
            View.PlayerModuleCode = moduleCode;
        }
コード例 #2
0
        private Boolean HasPermissionForRepository(BaseCommunityFile item, int IdUser, int IdCommunity, int idModule)
        {
            Boolean result = false;

            CoreModuleRepository permissions = new CoreModuleRepository(CurrentManager.GetModulePermission(IdUser, IdCommunity, idModule));

            result = Service.HasPermissionToSeeRepositoryItem(item.Id, permissions.Administration, permissions.Administration, IdUser);
            return(result);
        }
コード例 #3
0
        //public void InitView(dtoDisplayItemRepository item)
        //{
        //    if (item == null)
        //        View.DisplayNoAction();
        //    else
        //        AnalyzeAction(item);
        //}

        private void AnalyzeAction(ModuleLink pLink)
        {
            int ActionID           = pLink.Action;
            BaseCommunityFile item = null;

            if ((pLink.DestinationItem != null))
            {
                item = Service.GetItem(pLink.DestinationItem.ObjectLongID);
                if ((item == null) || (pLink.DestinationItem.ObjectLongID == 0 && (ActionID == (int)CoreModuleRepository.ActionType.CreateFolder || ActionID == (int)CoreModuleRepository.ActionType.UploadFile)))
                {
                    View.DisplayRemovedObject();
                }
                else
                {
                    int IdCommunity = 0;
                    if (item.CommunityOwner != null)
                    {
                        IdCommunity = item.CommunityOwner.Id;
                    }
                    if (typeof(CommunityFile) == item.GetType())
                    {
                        View.ServiceCode = pLink.DestinationItem.ServiceCode;
                        View.ServiceID   = pLink.DestinationItem.ServiceID;
                    }
                    else
                    {
                        View.ServiceCode = pLink.SourceItem.ServiceCode;
                        View.ServiceID   = pLink.SourceItem.ServiceID;
                    }

                    if (item is ModuleInternalFile)
                    {
                        ModuleInternalFile oInternal = (ModuleInternalFile)item;
                        View.DisplayLinkForModule(pLink.Id, IdCommunity, item, oInternal.ServiceActionAjax);
                    }
                    else
                    {
                        View.DisplayLink(pLink.Id, IdCommunity, item);
                    }
                }
            }
            else
            {
                View.DisplayNoAction();
            }
        }
コード例 #4
0
        public void InitView(long idFolder, Int32 idCommunity)
        {
            if (idFolder != 0)
            {
                BaseCommunityFile folder = Service.GetItem(idFolder);
                if (folder == null || folder.isFile)
                {
                    idFolder = 0;
                }
                else if (folder.CommunityOwner != null && folder.CommunityOwner.Id != idCommunity)
                {
                    idCommunity = folder.CommunityOwner.Id;
                }
            }
            Community comm = CurrentManager.GetCommunity(idCommunity);

            if (idCommunity > 0 && comm == null)
            {
                idCommunity = UserContext.CurrentCommunityID;
            }
            View.IdCommunityRepository = idCommunity;
            View.CommunityName         = (idCommunity == 0 || comm == null) ? View.Portalname : comm.Name;

            View.AllowFolderChange = Service.CommunityHasFolders(idCommunity);
            View.IdFolder          = idFolder;
            String path = View.BaseFolder;

            if (idFolder > 0)
            {
                BaseCommunityFile folder = Service.GetItem(idFolder);
                if (folder != null)
                {
                    path = Service.GetFolderPathName(folder.Id);
                }
            }
            View.FilePath = path;
            View.DownlodableByCommunity = true;
            View.VisibleToDonwloaders   = true;
            View.LoadFolderSelector(idFolder, idCommunity, false, false);
        }
コード例 #5
0
        private StatFileTreeLeaf CreateStatFileTreeLeaf(BaseCommunityFile item, Boolean viewPersonal, Boolean viewAdvanced)
        {
            StatFileTreeLeaf leaf = new StatFileTreeLeaf()
            {
                Id            = item.Id,
                Extension     = item.Extension,
                isVisible     = item.isVisible,
                LinkId        = 0,
                Name          = item.DisplayName,
                ToolTip       = "",
                isScorm       = item.isSCORM,
                UniqueID      = item.UniqueID,
                DownloadCount = item.Downloads,
                Type          = (viewPersonal) ? StatTreeLeafType.Personal : StatTreeLeafType.None
            };

            if ((viewAdvanced))
            {
                leaf.Type = (leaf.Type == StatTreeLeafType.None) ? StatTreeLeafType.Advanced : leaf.Type | StatTreeLeafType.Advanced;
            }
            return(leaf);
        }
コード例 #6
0
        public void InitView()
        {
            int  IdCommunity       = UserContext.CurrentCommunityID;
            long idFile            = View.PreloadedFileId;
            BaseCommunityFile file = Service.GetItem(idFile);

            if (file != null && file.CommunityOwner != null)
            {
                IdCommunity = file.CommunityOwner.Id;
            }

            if (UserContext.isAnonymous)
            {
                View.SendToSessionExpiredPage(IdCommunity, UserContext.Language.Code);
            }
            else
            {
                View.BackUrl = View.PreloadedBackUrl;

                long moduleLinkId = View.PreloadedLinkId;
                View.ModuleLinkId = moduleLinkId;
                View.FileId       = idFile;
                if (idFile == 0 && moduleLinkId == 0)
                {
                    View.ShowUnkownFile(IdCommunity, ModuleID, CoreModuleRepository.UniqueID);
                }
                else
                {
                    Person     person = CurrentManager.GetPerson(UserContext.CurrentUserID);
                    ModuleLink link   = CurrentManager.Get <ModuleLink>(moduleLinkId);
                    ScormMetadataPermission permission = ScormMetadataPermission.none;
                    if (link == null && file == null)
                    {
                        View.ShowUnkownFile(IdCommunity, ModuleID, CoreModuleRepository.UniqueID);
                    }
                    else if (!file.isSCORM)
                    {
                        View.ShowNoScormFile(file.DisplayName);
                    }
                    else if ((link == null && file != null) || file.GetType() == typeof(CommunityFile))
                    {
                        IdCommunity = (file.CommunityOwner == null ? 0 : file.CommunityOwner.Id);
                        CoreModuleRepository module = Service.ServicePermission(UserContext.CurrentUserID, IdCommunity);
                        if (Service.HasPermissionToSeeRepositoryItem(idFile, module.Administration, module.Administration, UserContext.CurrentUserID))
                        {
                            permission = (module.Administration || (module.Edit && file.Owner == person)) ? ScormMetadataPermission.edit : ScormMetadataPermission.view;
                            View.InitializeMetadataControl(file.UniqueID, file.DisplayName, permission);
                        }
                        else
                        {
                            View.ShowNoPermissionToEditMetadata(IdCommunity, ModuleID, CoreModuleRepository.UniqueID, file.DisplayName);
                        }
                    }
                    else
                    {
                        IdCommunity = link.SourceItem.CommunityID;

                        ModuleObject linkedObject = ModuleObject.CreateLongObject(file.Id, file, (int)CoreModuleRepository.ObjectType.ScormPackage, IdCommunity, CoreModuleRepository.UniqueID);
                        permission = View.GetModuleLinkPermission(link.SourceItem.CommunityID, moduleLinkId, link.SourceItem, linkedObject, UserContext.CurrentUserID);
                        if (permission == ScormMetadataPermission.none)
                        {
                            View.ShowNoPermissionToEditMetadata(IdCommunity, link.SourceItem.ServiceID, link.SourceItem.ServiceCode, file.DisplayName);
                        }
                        else
                        {
                            View.InitializeMetadataControl(file.UniqueID, file.DisplayName, permission);
                        }
                    }
                }
            }
        }
コード例 #7
0
        public dtoFileDetail GetDetailFile(IList <Int32> UsersId, Int64 FileId, IDictionary <String, String> translateServiceCode)
        {
            dtoFileDetail FileInfo = new dtoFileDetail();

            // 1. Col_Manager -> ColBaseCommunityFile (per le info sul file).
            //      La proprietà IsInternal mi dice se appartiene ad un servizio o alla comunità.
            BaseCommunityFile File = Manager.Get <BaseCommunityFile>(FileId);


            FileInfo.FileName = File.Name;

            if (File.IsInternal)
            {
                FileInfo.ComService = "Service";
                FileInfo.Path       = "";
            }
            else
            {
                FileInfo.ComService = File.CommunityOwner.Name;
                FileInfo.Path       = File.FilePath;
            }

            FileInfo.Size      = File.Size;
            FileInfo.LoadedBy  = File.Owner.SurnameAndName;
            FileInfo.LoadedOn  = File.CreatedOn;
            FileInfo.Downloads = File.Downloads;

            FileInfo.isInternal = File.IsInternal;


            // 2. da filelink recupero le info sui download (riferiti ad un singolo file)
            //

            //var x = (from f in Manager.GetAll<FileDownloadInfo>(f => (FilesIds.Contains(f.File.Id) && UsersIds.Contains(f.Downloader.Id)))
            //         select new { Key = f.Downloader.Id.ToString() + "-" + f.File.Id.ToString() });

            IList <Person> Users = Manager.GetAll <Person>(p => (UsersId.Contains(p.Id))).ToList();

            FileInfo.DownDetails = new List <dtoUserDownInfo>();

            Users.ForEach(delegate(Person prsn)
            {
                dtoUserDownInfo UDI = new dtoUserDownInfo();
                UDI.downBy          = prsn.SurnameAndName;
                UDI.downOnList      = GetdtoDownInfos(prsn.Id, FileId, translateServiceCode);
                if (UDI.downOnList == null)
                {
                    UDI.downOnList = new List <dtoDownInfo>();
                }
                UDI.TotalDownload = UDI.downOnList.Count(); //Eventualmente metterlo "fuori" o toglierlo del tutto...
                FileInfo.DownDetails.Add(UDI);
            });



            // 3. Prendere dalla View un iDictionary(String, String) -> Dictionary(Service.Code, ServiceTranslateName)
            //      per tradurre i nomi dei servizi.
            //

            return(FileInfo);
        }
コード例 #8
0
 public void InitViewFromModule(BaseCommunityFile item)
 {
     View.InsideOtherModule = true;
 }
コード例 #9
0
 public void InitView(BaseCommunityFile item)
 {
     View.InsideOtherModule = false;
 }
コード例 #10
0
        //Public Sub InitView(ByVal oItem As dtoCommunityItemRepository)
        //    Me.View.FileDisplayName = ""
        //    If oItem Is Nothing Then
        //        Me.View.DisplayNoAction()
        //    Else : AnalyzeAction(oItem)
        //    End If
        //End Sub

        public void AnalyzeAction(ModuleLink link, iCoreFilePermission permission)
        {
            Int32             idAction = link.Action;
            BaseCommunityFile item     = null;

            if (link.DestinationItem != null)
            {
                item = Service.GetItem(link.DestinationItem.ObjectLongID);
                if (item == null || (link.DestinationItem.ObjectLongID == 0 && (idAction == (Int32)CoreModuleRepository.ActionType.CreateFolder || idAction == (Int32)CoreModuleRepository.ActionType.UploadFile)))
                {
                    View.DisplayRemovedObject();
                }
                else
                {
                    Int32 idCommunity = 0;
                    switch (idAction)
                    {
                    case (Int32)CoreModuleRepository.ActionType.DownloadFile:
                        if (typeof(CommunityFile) == item.GetType())
                        {
                            View.ModuleCode = link.DestinationItem.ServiceCode;
                            View.IdModule   = link.DestinationItem.ServiceID;
                        }
                        else
                        {
                            View.ModuleCode = link.SourceItem.ServiceCode;
                            View.IdModule   = link.SourceItem.ServiceID;
                        }
                        if (item.CommunityOwner != null)
                        {
                            idCommunity = item.CommunityOwner.Id;
                        }

                        View.FileDisplayName = item.DisplayName;
                        View.DisplayLinkDownload(link.Id, idCommunity, item, permission);
                        break;

                    case (Int32)CoreModuleRepository.ActionType.PlayFile:

                        if (typeof(CommunityFile) == item.GetType())
                        {
                            View.ModuleCode = link.DestinationItem.ServiceCode;
                            View.IdModule   = link.DestinationItem.ServiceID;
                        }
                        else
                        {
                            View.ModuleCode = link.SourceItem.ServiceCode;
                            View.IdModule   = link.SourceItem.ServiceID;
                        }
                        if (item.CommunityOwner != null)
                        {
                            idCommunity = item.CommunityOwner.Id;
                        }
                        View.FileDisplayName = item.DisplayName;

                        if (typeof(ModuleInternalFile) == item.GetType())
                        {
                            ModuleInternalFile intItem = (ModuleInternalFile)item;
                            View.DisplayLinkForPlayInternal(link.Id, idCommunity, item, permission, intItem.ServiceActionAjax);
                        }
                        else
                        {
                            View.DisplayLinkForPlay(link.Id, idCommunity, item, permission);
                        }
                        break;

                    default:
                        View.DisplayNoAction();
                        break;
                    }
                }
            }
            else
            {
                View.DisplayNoAction();
            }
        }
コード例 #11
0
        public void InitView()
        {
            int  IdUser      = UserContext.CurrentUserID;
            int  idCommunity = UserContext.CurrentCommunityID;
            long IdLink      = View.PreloadedIdLink;
            long IdFile      = View.PreloadedIdFile;

            View.BackUrl = View.PreloadedBackUrl;
            View.IdFile  = IdFile;
            View.IdLink  = IdLink;
            View.AllowSetDefaultDocument = false;
            BaseCommunityFile item = Service.GetItem(IdFile);

            if (item != null && item.CommunityOwner != null)
            {
                idCommunity = item.CommunityOwner.Id;
            }
            if (UserContext.isAnonymous)
            {
                View.SendToSessionExpiredPage(idCommunity, UserContext.Language.Code);
            }
            else if (item == null)
            {
                View.LoadFileNotExist();
            }
            else if (item.RepositoryItemType == RepositoryItemType.Multimedia)
            {
                RepositoryItemPermission permissions = new RepositoryItemPermission();
                if (IdLink == 0 || item.GetType() == typeof(CommunityFile))
                {
                    CoreModuleRepository module = null;
                    if (item.CommunityOwner == null)
                    {
                        module = CoreModuleRepository.CreatePortalmodule(UserContext.UserTypeID);
                    }
                    else if (!item.IsInternal)
                    {
                        module = new CoreModuleRepository(CurrentManager.GetModulePermission(IdUser, item.CommunityOwner.Id, ModuleID));
                    }
                    else
                    {
                        module = new CoreModuleRepository();
                    }
                    if (Service.HasPermissionToSeeRepositoryItem(item.Id, module.Administration, module.Administration, IdUser))
                    {
                        permissions = new dtoDisplayItemRepository(item, module, IdUser, module.Administration).Permission;
                    }
                }
                else
                {
                    ModuleLink link = Service.GetModuleLink(IdLink);
                    permissions = View.GetModuleLinkPermission(link.SourceItem.CommunityID, IdUser, link);
                }
                if (permissions.EditSettings)
                {
                    MultimediaFileTransfer multimedia = Service.GetMultimediaFileTransfer(item);
                    if (multimedia == null)
                    {
                        View.LoadFileNotExist();
                    }
                    else if (multimedia.MultimediaIndexes.Count == 0)
                    {
                        View.LoadFileWithoutIndex(item);
                    }
                    else
                    {
                        View.AllowSetDefaultDocument = permissions.EditSettings;
                        View.LoadTree(item, (from m in multimedia.MultimediaIndexes select m.Fullname.Replace(item.UniqueID.ToString() + "\\", "")).ToList(), (multimedia.DefaultDocument == null) ? "" : multimedia.DefaultDocument.Fullname.Replace(item.UniqueID.ToString() + "\\", ""));
                    }
                }
                else
                {
                    View.LoadFileNoPermission();
                }
            }
            else
            {
                View.LoadInvalidFileType(item);
            }
        }
コード例 #12
0
        public void InitView(String plattformId)
        {
            long idLink = View.PlayerIdLink;
            int  IdUser = UserContext.CurrentUserID;

            if (UserContext.isAnonymous)
            {
                View.SendToSessionExpiredPage(View.PlayerIdCommunity, View.PreloadedLanguage);
            }
            else
            {
                Guid playUniqueSessionId = Guid.NewGuid();
                View.PlayUniqueSessionId = playUniqueSessionId;
                String playSessionId = plattformId + "_" + playUniqueSessionId.ToString();
                View.PlaySessionId = playSessionId;

                Boolean           allowPlay = false;
                BaseCommunityFile item      = Service.GetItem(View.PlayerIdFile);
                if (item == null)
                {
                    View.LoadFileNotExist();
                }
                else
                {
                    if (idLink == 0 && View.PlayerIdModule == ModuleID)
                    {
                        int idCommunity = View.PlayerIdCommunity;
                        if (item.CommunityOwner != null && idCommunity == 0)
                        {
                            idCommunity            = item.CommunityOwner.Id;
                            View.PlayerIdCommunity = idCommunity;
                        }
                        allowPlay = HasPermissionForRepository(item, IdUser, idCommunity, View.PlayerIdModule);
                    }
                    else if (idLink > 0)
                    {
                        allowPlay = lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((long)CoreModuleRepository.Base2Permission.DownloadFile, View.GetPermissionToLink(IdUser, idLink, item, View.PlayerIdCommunity));
                    }

                    if (!allowPlay)
                    {
                        View.LoadFileNoPermission();
                    }
                    else if (item.RepositoryItemType == DomainModel.Repository.RepositoryItemType.FileStandard && item.RepositoryItemType == DomainModel.Repository.RepositoryItemType.Folder)
                    {
                        View.InvalidFileTypeToPlay(item.RepositoryItemType);
                    }
                    else if (Service.GetItemTransferStatus(item.UniqueID) == DomainModel.Repository.TransferStatus.Completed)
                    {
                        //if (item.RepositoryItemType== DomainModel.Repository.RepositoryItemType.ScormPackage)
                        Boolean autoEvaluate = (from l in CurrentManager.GetIQ <ModuleLink>() where l.Id == idLink && l.AutoEvaluable select l.Id).Any() && View.PlayerSavingStatistics;

                        if (View.PlayerSavingStatistics)
                        {
                            Service.SaveUserAccessToFile(playSessionId, IdUser, item, idLink);
                        }
                        switch (item.RepositoryItemType)
                        {
                        case DomainModel.Repository.RepositoryItemType.ScormPackage:
                            View.LoadFileIntoPlayer(playSessionId, View.PlayerWorkingSessionID, item.UniqueID, IdUser, idLink, item.Id, item.RepositoryItemType);
                            break;

                        case DomainModel.Repository.RepositoryItemType.Multimedia:
                            MultimediaFileTransfer fileTransfer = Service.GetMultimediaFileTransfer(item);
                            if (fileTransfer == null || fileTransfer.DefaultDocument == null)
                            {
                                View.InvalidFileTypeToPlay(item.RepositoryItemType);
                            }
                            else
                            {
                                View.LoadMultimediaFileIntoPlayer(playSessionId, View.PlayerWorkingSessionID, item.UniqueID, IdUser, idLink, item.Id, fileTransfer.DefaultDocumentPath.Replace("\\", "/"));
                                if (autoEvaluate)
                                {
                                    View.SaveLinkEvaluation(idLink, IdUser);
                                }
                            }
                            break;
                        }
                    }
                    else
                    {
                        View.LoadFileNoReadyToPlay(item.RepositoryItemType, Service.GetItemTransferStatus(item.UniqueID));
                    }
                }
            }
        }
コード例 #13
0
        public iCoreFilePermission GetCoreFilePermission(iCoreItemPermission itemPermissions, iCoreItemFileLink <long> itemFileLink, Person person)
        {
            CoreModuleRepository repository = null;
            CoreFilePermission   permission = new CoreFilePermission();

            if (itemPermissions != null && itemFileLink.File != null && itemFileLink.File.Id > 0)
            {
                Boolean isMultimedia = (itemFileLink.File.isFile && itemFileLink.File.RepositoryItemType != DomainModel.Repository.RepositoryItemType.FileStandard && itemFileLink.File.RepositoryItemType != DomainModel.Repository.RepositoryItemType.Folder && itemFileLink.File.RepositoryItemType != DomainModel.Repository.RepositoryItemType.None);
                permission.Download = itemFileLink.File.IsDownloadable && itemPermissions.AllowViewFiles;
                permission.Play     = isMultimedia && itemPermissions.AllowViewFiles;
                //  permission.EditRepositoryVisibility = false;
                permission.EditStatus     = itemPermissions.AllowEdit;
                permission.EditVisibility = itemPermissions.AllowEdit;


                permission.Publish = itemPermissions.AllowFilePublish && itemFileLink.File.IsInternal && itemFileLink.Deleted == BaseStatusDeleted.None;
                permission.Unlink  = itemPermissions.AllowEdit && !itemFileLink.File.IsInternal;



                permission.ViewPersonalStatistics = itemFileLink.File.isSCORM && itemPermissions.AllowViewFiles;
                permission.ViewStatistics         = itemFileLink.File.isSCORM && itemPermissions.AllowViewStatistics;
                permission.Delete        = itemFileLink.File.IsInternal && itemPermissions.AllowDelete && (itemFileLink.Deleted != BaseStatusDeleted.None);
                permission.UnDelete      = itemFileLink.File.IsInternal && (itemFileLink.Deleted != BaseStatusDeleted.None) && itemPermissions.AllowUnDelete;
                permission.VirtualDelete = itemFileLink.File.IsInternal && (itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowUnDelete;
                permission.EditMetadata  = isMultimedia && ((itemFileLink.File.IsInternal && (itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowEdit));

                BaseCommunityFile file = itemFileLink.File;
                if (!file.IsInternal)
                {
                    if (file.CommunityOwner == null)
                    {
                        repository = CoreModuleRepository.CreatePortalmodule(UC.UserTypeID);
                    }
                    else
                    {
                        repository = new CoreModuleRepository(Manager.GetModulePermission(person.Id, file.CommunityOwner.Id, Manager.GetModuleID(CoreModuleRepository.UniqueID)));
                    }
                    if (HasPermissionToSeeRepositoryItem(file.Id, repository.Administration, repository.Administration, UC.CurrentUserID))
                    {
                        Boolean itemOwner = (person == file.Owner);

                        // ATTENZIONE: !! DOVREBBE ANDARE QUESTO MA CREA PROBLEMI AL WCF SERVICES
                        //if (permission.Download==false && itemPermissions.AllowViewFiles ==true){
                        //   permission.Download = (repository.Administration || (file.IsDownloadable && repository.DownLoad));
                        //}

                        permission.EditRepositoryVisibility = repository.Administration || repository.Edit || (repository.UploadFile && itemOwner);
                        permission.EditRepositoryPermission = repository.Administration || repository.Edit || (repository.UploadFile && itemOwner);
                        permission.EditMetadata             = isMultimedia && ((itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowEdit && permission.EditRepositoryPermission);

                        permission.ViewPermission = repository.Administration || repository.Edit || (repository.UploadFile && itemOwner);
                        //   _Permission.Delete = oPermission.Administration OrElse oPermission.Edit OrElse (oPermission.DeleteMyFile AndAlso ItemOwner)
                        //  _Permission.UnDelete = False
                        //_Permission.VirtualDelete = False
                        // _Permission.Edit = oPermission.Administration OrElse oPermission.Edit OrElse (oPermission.UploadFile AndAlso ItemOwner)
                        // _Permission.EditPermission = oPermission.Administration OrElse oPermission.Edit OrElse (oPermission.UploadFile AndAlso ItemOwner)
                        permission.EditRepositoryPermission = false;
                    }
                }

                permission.Link = false;
            }
            else if (itemPermissions != null && itemFileLink.File == null || itemFileLink.File.Id == 0)
            {
                permission.Delete         = itemPermissions.AllowDelete && (itemFileLink.Deleted != BaseStatusDeleted.None);
                permission.VirtualDelete  = (itemFileLink.Deleted == BaseStatusDeleted.None) && itemPermissions.AllowUnDelete;
                permission.EditVisibility = itemPermissions.AllowEdit;
            }
            return((iCoreFilePermission)permission);
        }