Пример #1
0
        public async Task DeleteFilesAsync(FilePath[] localPaths, bool force, ProgressMonitor monitor, bool keepLocal = true)
        {
            FileUpdateEventArgs args = new FileUpdateEventArgs();
            var metadata             = new DeleteMetadata(VersionControlSystem)
            {
                PathsCount = localPaths.Length, Force = force, KeepLocal = keepLocal
            };

            using (var tracker = Instrumentation.DeleteCounter.BeginTiming(metadata, monitor.CancellationToken)) {
                try {
                    await OnDeleteFilesAsync(localPaths, force, monitor, keepLocal);

                    foreach (var path in localPaths)
                    {
                        args.Add(new FileUpdateEventInfo(this, path, false));
                    }
                } catch (Exception e) {
                    LoggingService.LogError("Failed to delete file", e);
                    metadata.SetFailure();
                    if (!keepLocal)
                    {
                        foreach (var path in localPaths)
                        {
                            File.Delete(path);
                        }
                    }
                }
            }
            ClearCachedVersionInfo(localPaths);
            if (args.Any())
            {
                VersionControlService.NotifyFileStatusChanged(args);
            }
        }
Пример #2
0
        protected ITransactionOperation CreateTransactionOperation(TransactionType transactionType)
        {
            ITransactionOperation transactionOperation;

            switch (transactionType)
            {
            case TransactionType.CreateNode:
                transactionOperation = new CreateNode(MapObjects.Parameters);
                break;

            case TransactionType.DeleteNode:
                transactionOperation = new DeleteNode(MapObjects.Parameters);
                break;

            case TransactionType.CreateRelationship:
                transactionOperation = new CreateRelationship(MapObjects.Parameters);
                break;

            case TransactionType.DeleteRelationship:
                transactionOperation = new DeleteRelationship(MapObjects.Parameters);
                break;

            case TransactionType.CreateDescriptor:
                transactionOperation = new CreateDescriptor(MapObjects.Parameters);
                break;

            case TransactionType.CreateMetadata:
                transactionOperation = new CreateMetadata(MapObjects.Parameters);
                break;

            case TransactionType.UpdateMetadata:
                transactionOperation = new UpdateMetadata(MapObjects.Parameters);
                break;

            case TransactionType.DeleteMetadata:
                transactionOperation = new DeleteMetadata(MapObjects.Parameters);
                break;

            case TransactionType.UpdateNode:
                transactionOperation = new UpdateNode(MapObjects.Parameters);
                break;

            case TransactionType.UpdateRelationship:
                transactionOperation = new UpdateRelationship(MapObjects.Parameters);
                break;

            case TransactionType.UpdateDescriptor:
                transactionOperation = new UpdateDescriptor(MapObjects.Parameters);
                break;

            default:
                throw new NotSupportedException("The requested transaction type doesn't exist.");
            }

            return(transactionOperation);
        }
Пример #3
0
        public void DeleteDirectories(FilePath[] localPaths, bool force, ProgressMonitor monitor, bool keepLocal = true)
        {
            var metadata = new DeleteMetadata(VersionControlSystem)
            {
                PathsCount = localPaths.Length, Force = force, KeepLocal = keepLocal
            };

            using (var tracker = Instrumentation.DeleteCounter.BeginTiming(metadata, monitor.CancellationToken)) {
                try {
                    OnDeleteDirectories(localPaths, force, monitor, keepLocal);
                } catch (Exception e) {
                    LoggingService.LogError("Failed to delete directory", e);
                    metadata.SetFailure();
                    if (!keepLocal)
                    {
                        foreach (var path in localPaths)
                        {
                            Directory.Delete(path, true);
                        }
                    }
                }
            }
            ClearCachedVersionInfo(localPaths);
        }
Пример #4
0
        protected ITransactionOperation CreateTransactionOperation(TransactionType transactionType)
        {
            ITransactionOperation transactionOperation;

            switch (transactionType)
            {
                case TransactionType.CreateNode:
                    transactionOperation = new CreateNode(GlymaSession.Parameters);
                    break;
                case TransactionType.DeleteNode:
                    transactionOperation = new DeleteNode(GlymaSession.Parameters);
                    break;
                case TransactionType.CreateRelationship:
                    transactionOperation = new CreateRelationship(GlymaSession.Parameters);
                    break;
                case TransactionType.DeleteRelationship:
                    transactionOperation = new DeleteRelationship(GlymaSession.Parameters);
                    break;
                case TransactionType.CreateDescriptor:
                    transactionOperation = new CreateDescriptor(GlymaSession.Parameters);
                    break;
                case TransactionType.CreateMetadata:
                    transactionOperation = new CreateMetadata(GlymaSession.Parameters);
                    break;
                case TransactionType.UpdateMetadata:
                    transactionOperation = new UpdateMetadata(GlymaSession.Parameters);
                    break;
                case TransactionType.DeleteMetadata:
                    transactionOperation = new DeleteMetadata(GlymaSession.Parameters);
                    break;
                case TransactionType.UpdateNode:
                    transactionOperation = new UpdateNode(GlymaSession.Parameters);
                    break;
                case TransactionType.UpdateRelationship:
                    transactionOperation = new UpdateRelationship(GlymaSession.Parameters);
                    break;
                case TransactionType.UpdateDescriptor:
                    transactionOperation = new UpdateDescriptor(GlymaSession.Parameters);
                    break;
                default:
                    throw new NotSupportedException("The requested transaction type doesn't exist.");
            }

            return transactionOperation;
        }