Exemple #1
0
        /// <summary>
        /// Open/Create new file storage and returns linked Stream to write operations.
        /// </summary>
        public LiteFileStream <TFileId> OpenWrite(TFileId id, string filename, BsonDocument metadata = null)
        {
            // get _id as BsonValue
            var fileId = _db.Mapper.Serialize(typeof(TFileId), id);

            // checks if file exists
            var file = this.FindById(id);

            if (file == null)
            {
                file = new LiteFileInfo <TFileId>
                {
                    Id       = id,
                    Filename = Path.GetFileName(filename),
                    MimeType = MimeTypeConverter.GetMimeType(filename),
                    Metadata = metadata ?? new BsonDocument()
                };

                // set files/chunks instances
                file.SetReference(fileId, _files, _chunks);
            }
            else
            {
                // if filename/metada was changed
                file.Filename = Path.GetFileName(filename);
                file.MimeType = MimeTypeConverter.GetMimeType(filename);
                file.Metadata = metadata ?? file.Metadata;
            }

            return(file.OpenWrite());
        }
Exemple #2
0
        public LiteFileInfo(string id, string filename)
        {
            if (!IdPattern.IsMatch(id))
            {
                throw LiteException.InvalidFormat("FileId", id);
            }

            this.Id         = id;
            this.Filename   = Path.GetFileName(filename);
            this.MimeType   = MimeTypeConverter.GetMimeType(this.Filename);
            this.Length     = 0;
            this.UploadDate = DateTime.Now;
            this.Metadata   = new BsonDocument();
        }
Exemple #3
0
        public FileEntry(string id, string filename)
        {
            if (!Regex.IsMatch(id, ID_PATTERN))
            {
                throw new LiteException("Invalid file id format.");
            }

            this.Id         = id;
            this.Filename   = Path.GetFileName(filename);
            this.MimeType   = MimeTypeConverter.GetMimeType(this.Filename);
            this.Length     = 0;
            this.UploadDate = DateTime.Now;
            this.Metadata   = new BsonObject();
        }
        internal LiteFileInfo(LiteEngine engine, string id, string filename)
        {
            if (!IdPattern.IsMatch(id))
            {
                throw LiteException.InvalidFormat(id);
            }

            _engine = engine;

            this.Id         = id;
            this.Filename   = Path.GetFileName(filename);
            this.MimeType   = MimeTypeConverter.GetMimeType(this.Filename);
            this.Length     = 0;
            this.Chunks     = 0;
            this.UploadDate = DateTime.Now;
            this.Metadata   = new BsonDocument();
        }