private async Task ProcessGetSessionCmd() { var response = new ServerResponseWithData <Guid>(); try { var session = SessionStorage.Instance.GetNewSession(); session.BaseDir = _rootFolder; session.SyncDbDir = Path.Combine(session.BaseDir, ".sync"); if (!Directory.Exists(session.SyncDbDir)) { var dirInfo = Directory.CreateDirectory(session.SyncDbDir); dirInfo.Attributes = dirInfo.Attributes | FileAttributes.Hidden; } session.RemovedDir = Path.Combine(session.SyncDbDir, "rem"); PathHelpers.EnsureDirExists(session.RemovedDir); session.NewDir = Path.Combine(session.SyncDbDir, "new"); PathHelpers.EnsureDirExists(session.NewDir); var helper = new SessionFileHelper(session.NewDir, session.RemovedDir, session.BaseDir, new System.Text.StringBuilder()); session.FileHelper = helper; response.Data = session.Id; } catch (Exception e) { response.ErrorMsg = e.ToString(); } await CommandHelper.WriteCommandResponse(_networkStream, Commands.GetSessionCmd, response); }
public TwoWaySyncClientImpl(string serverAddress, int serverPort, string baseDir, string syncDbDir) { _serverAddress = serverAddress; _serverPort = serverPort; _baseDir = baseDir; _syncDbDir = syncDbDir; _toRemoveDir = Path.Combine(syncDbDir, "ToRemove"); _newDir = Path.Combine(syncDbDir, "New"); _sessionFileHelper = new SessionFileHelper(_newDir, _toRemoveDir, _baseDir, _log); }
private async Task ProcessGetSessionCmd(CommandHeader header) { var response = new ServerResponseWithData <Guid>(); try { var req = await NetworkHelper.Read <GetSessionRequest>(_networkStream, header.PayloadLength); var client = _config.Clients.Single(x => x.Id == req.ClientId); var folder = client.FolderEndpoints.Single(x => x.Id == req.EndpointId); var session = SessionStorage.Instance.GetNewSession(); session.BaseDir = folder.LocalPath; session.SyncDbDir = Path.Combine(folder.LocalPath, ".sync"); if (!Directory.Exists(session.SyncDbDir)) { var dirInfo = Directory.CreateDirectory(session.SyncDbDir); dirInfo.Attributes = dirInfo.Attributes | FileAttributes.Hidden; } session.RemovedDir = Path.Combine(session.SyncDbDir, "rem"); PathHelpers.EnsureDirExists(session.RemovedDir); session.NewDir = Path.Combine(session.SyncDbDir, "new"); PathHelpers.EnsureDirExists(session.NewDir); var helper = new SessionFileHelper(session.NewDir, session.RemovedDir, session.BaseDir, new StringBuilder()); session.FileHelper = helper; response.Data = session.Id; } catch (Exception e) { response.ErrorMsg = e.ToString(); } await CommandHelper.WriteCommandResponse(_networkStream, Commands.GetSessionCmd, response); }