示例#1
0
        private void WorkOnCreateEvent(FileSystemEvent fileSystemEvent)
        {
            var fileSystemObject = new FileSystemItem(fileSystemEvent.EventArgs.FullPath);

            if (!fileSystemObject.Exists || fileSystemObject.ShouldBeIgnored)
            {
                return;
            }
            _logger.InfoFormat("New {0} is created on {1}", fileSystemObject.FullPath,
                               fileSystemEvent.OccurredTime.ToString("dd-MM-yyyy hh:mm:ss"));


            if (fileSystemObject.IsFile && !fileSystemObject.IsFileReadyToRead(MaxFileAttempt))
            {
                _logger.ErrorFormat(
                    "It has exceeded the max number of attempts. File {0} is in use and cannot be read",
                    fileSystemObject.FullPath);
                return;
            }

            if (_svnClient.SvnAdd(fileSystemObject.FullPath))
            {
                _svnClient.SvnCommit(fileSystemObject.FullPath);
            }
        }
示例#2
0
        private void WorkOnRenameEvent(FileSystemEvent fileSystemEvent)
        {
            var fileSystemObject    = new FileSystemItem(fileSystemEvent.EventArgs.FullPath);
            var fileSystemObjectOld = new FileSystemItem(((RenamedEventArgs)fileSystemEvent.EventArgs).OldFullPath);


            if (fileSystemObjectOld.ShouldBeIgnored || fileSystemObject.ShouldBeIgnored)
            {
                return;
            }

            _logger.InfoFormat("{0} is renamed to {1} on {2}", fileSystemObjectOld.FullPath,
                               fileSystemObject.FullPath,
                               fileSystemEvent.OccurredTime.ToString("dd-MM-yyyy hh:mm:ss"));
            if (fileSystemObjectOld.Exists)
            {
                return;
            }
            _svnClient.SvnDelete(fileSystemObjectOld.FullPath);
            _svnClient.SvnCommit(fileSystemObjectOld.FullPath);

            if (fileSystemObject.IsFile && !fileSystemObject.IsFileReadyToRead(MaxFileAttempt))
            {
                _logger.ErrorFormat(
                    "It has exceeded the max number of attemptes. File {0} is in use and cannot be read",
                    fileSystemObject.FullPath);
                return;
            }
            if (_svnClient.SvnAdd(fileSystemObject.FullPath))
            {
                _svnClient.SvnCommit(fileSystemObject.FullPath);
            }
        }
示例#3
0
        private void WorkOnDeleteEvent(FileSystemEvent fileSystemEvent)
        {
            var fileSystemObject = new FileSystemItem(fileSystemEvent.EventArgs.FullPath);

            if (fileSystemObject.Exists || fileSystemObject.ShouldBeIgnored)
            {
                return;
            }

            _logger.InfoFormat("{0} is deleted on {1}", fileSystemObject.FullPath,
                               fileSystemEvent.OccurredTime.ToString("dd-MM-yyyy hh:mm:ss"));

            _svnClient.SvnDelete(fileSystemObject.FullPath);
            _svnClient.SvnCommit(fileSystemObject.FullPath);
        }
示例#4
0
        public void Work(FileSystemEvent e)
        {
            switch (e.EventArgs.ChangeType)
            {
            case WatcherChangeTypes.Created:
                WorkOnCreateEvent(e);
                break;

            case WatcherChangeTypes.Changed:
                WorkOnChangeEvent(e);
                break;

            case WatcherChangeTypes.Deleted:
                WorkOnDeleteEvent(e);
                break;

            case WatcherChangeTypes.Renamed:
                WorkOnRenameEvent(e);
                break;
            }
        }