Sie sind auf Seite 1von 6

File Manager

Contents
1) Basic configuration in web.config: ...................................................................................................... 3
2) Model .................................................................................................................................................. 3
3) Methods .............................................................................................................................................. 3
a) Get ................................................................................................................................................... 3
b) CREATE ............................................................................................................................................ 4
c) DELETE ............................................................................................................................................. 4
4) Returned Statuses ............................................................................................................................... 5
5) Exceptions ........................................................................................................................................... 5
6) Examples ............................................................................................................................................. 5
a) Get ................................................................................................................................................... 5
b) Create ............................................................................................................................................. 5
c) Delete .............................................................................................................................................. 5
1) Basic configuration in web.config:
<configuration>
<configSections>
<section name="FileManager" type="FileManager.Config.Section"/>
</configSections>
<FileManager>
<DbConfig connectionString="CONNECTION STRING TO DATABASE"/>
<DirectoryConfig path="~/BASE DIRECTORY"/>
<CustomConfig maxFileSize="MAX FILE SIZE IN KB"/> -- optional
</FileManager>
</configuration>

2) Model
Type Name Description
long Id
Guid PublicId
DateTime DateCreatedUtc
string CreatedBy
string Name
string ContentType
int ContentLength
string Directory
FileStream FileStream

3) Methods
a) Get
Returned type Name Parameters Description
StorageFile Get long id, withDependencies:
bool withDependencies = false - frue: return record from
database with file from
disk
- false: return only record
from database
StorageFile Get Guid publicId, withDependencies:
bool withDependencies = false - true: return record from
database with file from
disk
- false: return only record
from database

b) Get List
Returned type Name Parameters Description
List<StorageFile> GetList List<long> ids, withDependencies:
bool withDependencies = - true: return records
false from database with files
from disk
- false: return only
records from database
List<StorageFile> GetList List<Guid> publicIds, withDependencies:
bool withDependencies = - true: return records
false from database with files
from disk
- false: return only
records from database

c) Get Name
Returned type Name Parameters Description
string GetName long id
string GetName Guid publicId
List<string> GetNames List<long> ids
List<string> GetNames List<Guid> publicIds

d) Get Size
Returned type Name Parameters Description
int? GetSize long id

e) CREATE
Returned type Name Parameters Description
StorageFile.Status Create HttpPostedFileBase file, Returned:
string directory, StorageFile.Status.Exists
string createdBy or
StorageFile.Status.Ok
StorageFile.Status Create HttpPostedFileBase[] files, Returned: List<FileMessage>
string directory,
string createdBy

f) DELETE
Returned type Name Parameters Description
StorageFile.Status Delete Guid publicId
StorageFile.Status Delete long id
StorageFile.Status Delete List<long> ids
StorageFile.Status Delete List<Guid> publicIds
StorageFile.Status Delete List<StorageFile> files
4) Returned Statuses
enum Status
{
NotExists = 0,
Exists = 1,
SizeIsToBig = 2,
Ok = 9
}

class FileMessage
{
public HttpPostedFileBase File { get; set; }
public StorageFile.Status Status { get; set; }
}

5) Exceptions
Name Description
FileManagerException If any exception occurs in methods

6) Examples
a) Get
var file = FilesRepository.Get(2, withDependencies: true); //possible null
var file = FilesRepository.Get(publicId); //possible null

b) Create

public ActionResult Test(HttpPostedFileBase file)


{
try
{
var result = FilesRepository.Create(file, "FolderTemp/Test",
"UserLogin/Email");

switch (result)
{
case StorageFile.Status.Exists:
break;
case StorageFile.Status.SizeIsToBig:
break;
case StorageFile.Status.Ok:
break;
default:
throw new ArgumentOutOfRangeException();
}}
catch (FileManagerException ex)
{
Console.WriteLine(ex);
}

c) Delete
public ActionResult Test()
{
try
{
if (FilesRepository.Delete(id or publicId) ==
StorageFile.Status.NotExists)
{
//file not exists
}
}
catch (FileManagerException ex)
{
Console.WriteLine(ex);
}

Das könnte Ihnen auch gefallen