Dev2.Workspaces.WorkspaceRepository.Read C# (CSharp) Method

Read() private method

private Read ( System.Guid workdspaceID ) : IWorkspace
workdspaceID System.Guid
return IWorkspace
        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;
                }
            }
        }