Пример #1
0
        public DataEnvelope LoadFileData(int fileID)
        {
            AuthorizedIdent ident = AuthenticateTicket(Ticket);

            CFile file = new FileSystem(ident, true).GetFile(fileID);

            FileSystemProviderFactory.GetInstance(this);
            m_fs.FetchData(file);

            return(new DataEnvelope(file.RawData, file.RawData.Length));
        }
Пример #2
0
        /// <summary>
        /// Load data for a file
        /// </summary>
        public bool LoadFileData(CFile file)
        {
            if (file.IsDirectory())
            {
                return(false);
            }

            //Authorize
            if (!Authorize(file, FileAction.READ))
            {
                throw new FileOperationException("Permission denied for action: READ");
            }

            //Connect to data service
            FileDataWebGateway fds = (FileDataWebGateway)m_fdss[m_ident.Name];

            if (fds != null)
            {
                DataEnvelope data;
                try {
                    data = fds.LoadFileData(file.ID);
                } catch (Exception) {
                    FileServiceInit(m_ident, true);
                    fds = (FileDataWebGateway)m_fdss[m_ident.Name];
                    try {
                        data = fds.LoadFileData(file.ID);
                    } catch (Exception) {
                        throw new FileOperationException("Unable to connect to the file system or file not found");
                    }
                }
                if (data.Size > 0)
                {
                    file.RawData = data.Data;
                }
                else
                {
                    file.RawData = new byte[0];
                }
            }
            else
            {
                m_fs.FetchData(file);
            }

            return(true);
        }