コード例 #1
0
        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);
        }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }