示例#1
0
        public override bool IsAvailableCore()
        {
            this.TableName = Helpers.GetTableName(this.Class);

            if (this.TableName == null)
            {
                return(false);
            }

            IProjectFolder migrationsFolder =
                this.DataProvider.Project.GetSubFolders().FirstOrDefault(x => x.Name == "Migrations");

            if (migrationsFolder == null)
            {
                return(false);
            }

            IList <IProjectFile> migrationFiles = migrationsFolder.GetSubFiles();

            foreach (IProjectFile migrationFile in migrationFiles)
            {
                if (int.TryParse(migrationFile.Name.SubstringAfter("M").SubstringBefore("_"), out int migrationNumber))
                {
                    this.MigrationNumber = Math.Max(this.MigrationNumber, migrationNumber + 1);
                }
            }

            return(true);
        }
        private static bool TryEnsureFileExists(
            RelativePath relativeFilePath,
            IProjectFolder projectFolder,
            IProjectFile sourceFile,
            IProjectModelTransactionCookie transaction,
            out IProjectFile file)
        {
            file = projectFolder.GetSubFiles(relativeFilePath.Name).FirstOrDefault();
            if (file != null)
            {
                var message =
                    $"The file '{relativeFilePath.FullPath}' already exists.{Environment.NewLine}" +
                    "Do you want to overwrite it?";

                return(MessageBox.ShowYesNo(message));
            }

            file = ExecutionHelpers.CreateFile(relativeFilePath.Name, projectFolder, sourceFile, transaction);

            return(true);
        }