static ParsedClass GetParsedClassFrom(string fileName) { ParsedFile parsedFile = new ParsedFile(fileName, false, false); if (parsedFile.Namespaces.Count != 0) { ParsedNamespace parsedNamespace = parsedFile.Namespaces[0]; if (parsedNamespace.Classes.Count != 0) { return(parsedNamespace.Classes[0]); } } return(null); }
public static ParsedMethod GetParsedMethodFromAssociatedFile(string fullFileName, EventResponseSave instance) { if (File.Exists(fullFileName)) { ParsedFile file = new ParsedFile(fullFileName, false, false); if (file.Namespaces.Count != 0) { ParsedNamespace parsedNamespace = file.Namespaces[0]; if (parsedNamespace.Classes.Count != 0) { ParsedClass parsedClass = parsedNamespace.Classes[0]; return(parsedClass.GetMethod("On" + instance.EventName)); } } } return(null); }
internal static void InsertMethodCallInElementIfNecessary(IElement iElement, string methodName) { string currentFileName = FileManager.RelativeDirectory + iElement.Name + ".Events.cs"; string className = FileManager.RemovePath(iElement.Name); string fullFileContents = null; if (!FileManager.FileExists(currentFileName)) { string startingTemplate = Resources.Resource1.EventTemplate; startingTemplate = startingTemplate.Replace("CLASS___NAME", className); string namespaceName = ProjectManager.ProjectNamespace + '.' + FileManager.GetDirectoryKeepRelative(iElement.Name).Replace("\\", "."); // remove the ending slash: namespaceName = namespaceName.Substring(0, namespaceName.Length - 1); startingTemplate = startingTemplate.Replace("NAMESPACE___NAME", namespaceName); FileManager.SaveText(startingTemplate, currentFileName); ProjectManager.CodeProjectHelper.CreateAndAddPartialCodeFile(currentFileName, false); fullFileContents = startingTemplate; } else { fullFileContents = FileManager.FromFileText(currentFileName); } #region Find the parsedClassToUse ParsedNamespace parsedNamespace = new ParsedNamespace(fullFileContents); ParsedClass parsedClassToUse = null; foreach (ParsedClass parsedClass in parsedNamespace.Classes) { if (parsedClass.Name == className) { parsedClassToUse = parsedClass; break; } } #endregion if (parsedClassToUse != null) { // See if there is already a method here if (parsedClassToUse.GetMethod(methodName) == null) { DialogResult result = MessageBox.Show("The method\n\n" + methodName + "\n\ndoes not exist. Create this " + "method in your .Event.cs code file?", "Create method?", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { string newMethodCode = "\r\n\t\tvoid " + methodName + "(object sender, EventArgs e)\r\n" + "\t\t{\r\n" + "\t\t\t\r\n" + "\t\t}\r\n"; int indexToInsertAt = EventManager.GetLastLocationInClass(fullFileContents, startOfLine: true); fullFileContents = fullFileContents.Insert(indexToInsertAt, newMethodCode); FileManager.SaveText(fullFileContents, currentFileName); } } } }