-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
GridFSFileInfoCompat.cs
169 lines (156 loc) · 4.67 KB
/
GridFSFileInfoCompat.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/* Copyright 2015-present MongoDB Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using MongoDB.Bson;
using MongoDB.Bson.Serialization;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Serializers;
using MongoDB.Driver.Core.Misc;
namespace MongoDB.Driver.GridFS
{
/// <summary>
/// Represents information about a stored GridFS file (backed by a files collection document).
/// </summary>
[BsonSerializer(typeof(GridFSFileInfoSerializer))]
public sealed class GridFSFileInfo : BsonDocumentBackedClass
{
// constructors
/// <summary>
/// Initializes a new instance of the <see cref="GridFSFileInfo"/> class.
/// </summary>
/// <param name="backingDocument">The backing document.</param>
public GridFSFileInfo(BsonDocument backingDocument)
: base(backingDocument, GridFSFileInfoSerializer.Instance)
{
}
// public properties
/// <summary>
/// Gets the aliases.
/// </summary>
/// <value>
/// The aliases.
/// </value>
[Obsolete("Place aliases inside metadata instead.")]
public IEnumerable<string> Aliases
{
get { return GetValue<string[]>("Aliases", null); }
}
/// <summary>
/// Gets the backing document.
/// </summary>
/// <value>
/// The backing document.
/// </value>
new public BsonDocument BackingDocument
{
get { return base.BackingDocument; }
}
/// <summary>
/// Gets the size of a chunk.
/// </summary>
/// <value>
/// The size of a chunk.
/// </value>
public int ChunkSizeBytes
{
get { return GetValue<int>("ChunkSizeBytes"); }
}
/// <summary>
/// Gets the type of the content.
/// </summary>
/// <value>
/// The type of the content.
/// </value>
[Obsolete("Place contentType inside metadata instead.")]
public string ContentType
{
get { return GetValue<string>("ContentType", null); }
}
/// <summary>
/// Gets the filename.
/// </summary>
/// <value>
/// The filename.
/// </value>
public string Filename
{
get { return GetValue<string>("Filename"); }
}
/// <summary>
/// Gets the identifier.
/// </summary>
/// <value>
/// The identifier.
/// </value>
public ObjectId Id
{
get { return GetValue<BsonValue>("IdAsBsonValue").AsObjectId; }
}
/// <summary>
/// Gets the identifier as a BsonValue.
/// </summary>
/// <value>
/// The identifier as a BsonValue.
/// </value>
[Obsolete("All new GridFS files should use an ObjectId as the Id.")]
public BsonValue IdAsBsonValue
{
get { return GetValue<BsonValue>("IdAsBsonValue"); }
}
/// <summary>
/// Gets the length.
/// </summary>
/// <value>
/// The length.
/// </value>
public long Length
{
get { return GetValue<long>("Length"); }
}
/// <summary>
/// Gets the MD5 checksum.
/// </summary>
/// <value>
/// The MD5 checksum.
/// </value>
[Obsolete("MD5 support will be removed soon.")]
public string MD5
{
get { return GetValue<string>("MD5", null); }
}
/// <summary>
/// Gets the metadata.
/// </summary>
/// <value>
/// The metadata.
/// </value>
public BsonDocument Metadata
{
get { return GetValue<BsonDocument>("Metadata", null); }
}
/// <summary>
/// Gets the upload date time.
/// </summary>
/// <value>
/// The upload date time.
/// </value>
public DateTime UploadDateTime
{
get { return GetValue<DateTime>("UploadDateTime"); }
}
}
}