private void CreateSolutionTemplate(Solution solution) { string fullPath = solution.FullName; string dir = Path.GetDirectoryName(fullPath); string name = Path.GetFileNameWithoutExtension(fullPath); InfoCollectorDialog win = new InfoCollectorDialog(name); win.CenterInVs(); if (win.ShowDialog().GetValueOrDefault()) { const string solutionTemplate = @"{ ""author"": """", ""classifications"": """", ""displayName"": """", ""name"": """", ""defaultName"": """", ""groupIdentity"": """", ""tags"": { }, ""shortName"": """", ""sourceName"": """", ""guids"": [ ] }"; JObject o = JObject.Parse(solutionTemplate); o["author"] = win.AuthorTextBox.Text; o["displayName"] = win.FriendlyNameTextBox.Text; o["name"] = win.FriendlyNameTextBox.Text; o["defaultName"] = win.DefaultNameTextBox.Text; o["sourceName"] = Path.GetFileNameWithoutExtension(solution.FullName); o["shortName"] = win.ShortNameTextBox.Text; JArray guids = (JArray)o["guids"]; Regex rx = new Regex(@"\{?[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}?", RegexOptions.IgnoreCase); string contents = File.ReadAllText(solution.FullName); HashSet <Guid> distinctGuids = new HashSet <Guid>(); foreach (Match match in rx.Matches(contents)) { distinctGuids.Add(Guid.Parse(match.Value)); } rx = new Regex(@"(?<=\("")\{?[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}?(?=""\))", RegexOptions.IgnoreCase); foreach (Match match in rx.Matches(contents)) { distinctGuids.Remove(Guid.Parse(match.Value)); } foreach (Guid g in distinctGuids) { guids.Add(g); } File.WriteAllText(Path.Combine(dir, ".netnew.json"), o.ToString()); } }
private void CreateProjectTemplate(Project proj) { string fullPath = proj.FullName; string dir = Path.GetDirectoryName(fullPath); string name = Path.GetFileNameWithoutExtension(fullPath); InfoCollectorDialog win = new InfoCollectorDialog(name); win.CenterInVs(); if (win.ShowDialog().GetValueOrDefault()) { const string solutionTemplate = @"{ ""author"": """", ""classifications"": """", ""displayName"": """", ""name"": """", ""defaultName"": """", ""groupIdentity"": """", ""tags"": { }, ""shortName"": """", ""sourceName"": """", ""guids"": [ ] }"; JObject o = JObject.Parse(solutionTemplate); o["author"] = win.AuthorTextBox.Text; o["displayName"] = win.FriendlyNameTextBox.Text; o["name"] = win.FriendlyNameTextBox.Text; o["defaultName"] = win.DefaultNameTextBox.Text; o["sourceName"] = Path.GetFileNameWithoutExtension(proj.FullName); o["shortName"] = win.ShortNameTextBox.Text; JArray guids = (JArray)o["guids"]; guids.Add(ExtractProjectGuid(fullPath)); File.WriteAllText(Path.Combine(dir, ".netnew.json"), o.ToString()); } }