//public IFileReader FileReader { get; } //public IFileWriter FileWriter { get; } //public string InterFaceImplementationName { get; } //private int TargetIndex { get; set; } //private List<string> file; //public List<string> File { // get { // if (file == null) // file = FileReader.GetFile(); // return file; // } //} //public InterFaceGenerator(string InterFaceImplementationName, IFileReader FileReader, IFileWriter fileWriter) //{ // if (string.IsNullOrWhiteSpace(InterFaceImplementationName)) // throw new InvalidOperationException("Invalid argument InterFaceImplementationName, cannot be Empty, Null Or WhiteSpace!"); // this.InterFaceImplementationName = InterFaceImplementationName; // this.FileReader = FileReader; // FileWriter = fileWriter; //} //public void SetClassIndex() //{ // for (int i = 0; i < File.Count; i++) // { // if (File[i].Contains("Class")) // { // foreach (var word in File[i].Split(' ')) // { // if (word.Equals("Class")) // TargetIndex = i; // } // } // } // //TargetIndex = File.IndexOf(ClassLine); // if (File[TargetIndex + 1].Contains("Inherits")) // TargetIndex += 2; // else // TargetIndex += 1; //} //private string GetImplementationName() //{ // string implementationName = string.Empty; // if (File[TargetIndex].Contains("Implements")) // { // implementationName = "," + InterFaceImplementationName; // File[TargetIndex] += implementationName; // } // else // implementationName = $"Implements {InterFaceImplementationName}"; // return implementationName; //} //private void WriteImplementsDeclarationToFile(string textToWrite) //{ // if (!File[TargetIndex].Contains(InterFaceImplementationName)) // { // if (!File[TargetIndex].Contains("Implements")) // File.Insert(TargetIndex, textToWrite); // FileWriter.WriteFile(File); // } //} //private void WriteInterfaceImplementationToFile() //{ // if (!DoesInterFaceImplementationExists()) // { // File.InsertRange(GetFunctionIndexToImplement(), GetFunctionList()); // FileWriter.WriteFile(File); // } //} //private bool DoesInterFaceImplementationExists() //{ // bool Exists = false; // foreach (var line in File) // { // if (line.Contains(GetFunctionList()[0].ToString())) // { // Exists = true; // } // } // return Exists; //} //public List<string> GetFunctionList() //{ // List<string> FunctionDeclaration = new List<string>(); // string FunctionIdentity = "Public Function GetCompanyID() As Integer? Implements ICompanyIDLoggable.GetCompanyID"; // string FunctionBehaviour = "throw new NotImplementedException();"; // string FunctionEnd = "End Function"; // FunctionDeclaration.Add(FunctionIdentity); // FunctionDeclaration.Add(" " + FunctionBehaviour); // FunctionDeclaration.Add(FunctionEnd); // return FunctionDeclaration; //} //public int GetFunctionIndexToImplement() //{ // string EndClassLine = File.First(l => l.Equals("End Class")); // int NeededIndex = File.IndexOf(EndClassLine); // return NeededIndex - 2; //} //public void Generate() //{ // //string InterFaceImplementation = $"Implements {InterFaceImplementationName}"; // SetClassIndex(); // WriteImplementsDeclarationToFile(GetImplementationName()); // WriteInterfaceImplementationToFile(); //} public void Generate() { Declaration.Generate(); Generator.Generate(); Implementation.Generate(); }