private void SaveOptions(Project project, string optionsPath, ReverseEngineerOptions options, Tuple <List <Schema>, string> renamingOptions) { ThreadHelper.ThrowIfNotOnUIThread(); if (File.Exists(optionsPath) && File.GetAttributes(optionsPath).HasFlag(FileAttributes.ReadOnly)) { EnvDteHelper.ShowError($"Unable to save options, the file is readonly: {optionsPath}"); return; } if (!File.Exists(optionsPath + ".ignore")) { File.WriteAllText(optionsPath, options.Write(), Encoding.UTF8); project.ProjectItems.AddFromFile(optionsPath); } if (renamingOptions.Item1 != null && !File.Exists(renamingOptions.Item2 + ".ignore") && renamingOptions.Item1.Count() > 0) { if (File.Exists(renamingOptions.Item2) && File.GetAttributes(renamingOptions.Item2).HasFlag(FileAttributes.ReadOnly)) { EnvDteHelper.ShowError($"Unable to save renaming options, the file is readonly: {renamingOptions.Item2}"); return; } File.WriteAllText(renamingOptions.Item2, CustomNameOptionsExtensions.Write(renamingOptions.Item1), Encoding.UTF8); project.ProjectItems.AddFromFile(renamingOptions.Item2); } }
private async System.Threading.Tasks.Task SaveOptionsAsync(Project project, string optionsPath, ReverseEngineerOptions options, Tuple <List <Schema>, string> renamingOptions) { if (File.Exists(optionsPath) && File.GetAttributes(optionsPath).HasFlag(FileAttributes.ReadOnly)) { //TODO Localize VSHelper.ShowError($"Unable to save options, the file is readonly: {optionsPath}"); return; } if (!File.Exists(optionsPath + ".ignore")) { File.WriteAllText(optionsPath, options.Write(Path.GetDirectoryName(project.FullPath)), Encoding.UTF8); await project.AddExistingFilesAsync(new List <string> { optionsPath }.ToArray()); } if (renamingOptions.Item1 != null && !File.Exists(renamingOptions.Item2 + ".ignore") && renamingOptions.Item1.Count() > 0) { if (File.Exists(renamingOptions.Item2) && File.GetAttributes(renamingOptions.Item2).HasFlag(FileAttributes.ReadOnly)) { //TODO Localize VSHelper.ShowError($"Unable to save renaming options, the file is readonly: {renamingOptions.Item2}"); return; } File.WriteAllText(renamingOptions.Item2, CustomNameOptionsExtensions.Write(renamingOptions.Item1), Encoding.UTF8); await project.AddExistingFilesAsync(new List <string> { renamingOptions.Item2 }.ToArray()); } }
private void SaveOptions(Project project, string optionsPath, ReverseEngineerOptions options, Tuple <List <Schema>, string> renamingOptions) { if (!File.Exists(optionsPath + ".ignore")) { File.WriteAllText(optionsPath, options.Write(), Encoding.UTF8); project.ProjectItems.AddFromFile(optionsPath); } if (renamingOptions.Item1 != null && !File.Exists(renamingOptions.Item2 + ".ignore")) { File.WriteAllText(renamingOptions.Item2, CustomNameOptionsExtensions.Write(renamingOptions.Item1), Encoding.UTF8); project.ProjectItems.AddFromFile(renamingOptions.Item2); } }
private async System.Threading.Tasks.Task SaveOptionsAsync(Project project, string optionsPath, ReverseEngineerOptions options, Tuple <List <Schema>, string> renamingOptions) { if (File.Exists(optionsPath) && File.GetAttributes(optionsPath).HasFlag(FileAttributes.ReadOnly)) { VSHelper.ShowError($"Unable to save options, the file is readonly: {optionsPath}"); return; } if (!File.Exists(optionsPath + ".ignore")) { if (!AdvancedOptions.Instance.IncludeUiHintInConfig) { options.UiHint = null; } foreach (var table in options.Tables) { if (legacyDiscoveryObjects.Contains(table.Name)) { table.UseLegacyResultSetDiscovery = true; } if (mappedTypes.ContainsKey(table.Name)) { table.MappedType = mappedTypes[table.Name]; } } File.WriteAllText(optionsPath, options.Write(Path.GetDirectoryName(project.FullPath)), Encoding.UTF8); await project.AddExistingFilesAsync(new List <string> { optionsPath }.ToArray()); } if (renamingOptions.Item1 != null && !File.Exists(renamingOptions.Item2 + ".ignore") && renamingOptions.Item1.Count > 0) { if (File.Exists(renamingOptions.Item2) && File.GetAttributes(renamingOptions.Item2).HasFlag(FileAttributes.ReadOnly)) { VSHelper.ShowError($"Unable to save renaming options, the file is readonly: {renamingOptions.Item2}"); return; } File.WriteAllText(renamingOptions.Item2, CustomNameOptionsExtensions.Write(renamingOptions.Item1), Encoding.UTF8); await project.AddExistingFilesAsync(new List <string> { renamingOptions.Item2 }.ToArray()); } }