private IWorkspace Read(Guid workdspaceID)
{
// force a lock on the file system ;)
lock(WorkspaceLock)
{
var filePath = GetFileName(workdspaceID);
var fileExists = File.Exists(filePath);
using(var stream = File.Open(filePath, FileMode.OpenOrCreate))
{
var formatter = new BinaryFormatter();
if(fileExists)
{
try
{
return (IWorkspace)formatter.Deserialize(stream);
}
// ReSharper disable EmptyGeneralCatchClause
catch(Exception ex)
// ReSharper restore EmptyGeneralCatchClause
{
Dev2Logger.Log.Error(ex);
// Deserialization failed so overwrite with new one.
}
}
var result = new Workspace(workdspaceID);
formatter.Serialize(stream, result);
return result;
}
}
}