/* Entry point for sharing file with a user*/
        public void shareFileWithUser(string clientId, string filename, string sharedWithUser)
        {
            Logger.Debug("Sharing file " + filename + " owned by user " + clientId + " with user " + sharedWithUser);
            UserFileSystem fs          = getUserFSFromMapSynchronized(clientId);
            bool           filepresent = fs.isFilePresentSynchronized(filename);

            if (!filepresent)
            {
                throw new FileNotFoundException("File not present in memory for client : " + filename + " for client : " + clientId);
            }
            fs.addSharedUserToFileSynchronized(filename, sharedWithUser);

            UserFileSystem sharedFS = getUserFSFromMapSynchronized(sharedWithUser);
            bool           added    = sharedFS.addSharedFileSynchronized(new SharedFile(clientId, filename));

            if (!added)
            {
                Logger.Debug("Shared file was already present, skipping");
            }
        }