public static UploadResult UpLoadFile(string strFileName, UpLoadFileOption option, MongoDatabase mongoDb)
{
var gfs = mongoDb.GetGridFS(new MongoGridFSSettings());
string remoteName;
if (option.FileNameOpt == EnumGfsFileName.Filename)
{
remoteName = new FileInfo(strFileName).Name;
}
else
{
remoteName = option.DirectorySeparatorChar != Path.DirectorySeparatorChar
? strFileName.Replace(Path.DirectorySeparatorChar, option.DirectorySeparatorChar)
: strFileName;
}
MongoHelper.OnActionDone(new ActionDoneEventArgs(remoteName + " Uploading "));
if (!gfs.Exists(remoteName))
{
gfs.Upload(strFileName, remoteName);
return UploadResult.Complete;
}
switch (option.AlreadyOpt)
{
case EnumGfsAlready.JustAddIt:
gfs.Upload(strFileName, remoteName);
return UploadResult.Complete;
case EnumGfsAlready.RenameIt:
var extendName = new FileInfo(strFileName).Extension;
var mainName = remoteName.Substring(0, remoteName.Length - extendName.Length);
var i = 1;
while (gfs.Exists(mainName + i + extendName))
{
i++;
}
gfs.Upload(strFileName, mainName + i + extendName);
return UploadResult.Complete;
case EnumGfsAlready.SkipIt:
return UploadResult.Skip;
case EnumGfsAlready.OverwriteIt:
gfs.Delete(remoteName);
gfs.Upload(strFileName, remoteName);
return UploadResult.Complete;
case EnumGfsAlready.Stop:
return UploadResult.Skip;
}
return UploadResult.Skip;
}