private void AddInterfaceMembersToClass(ExtractInterfaceModel model, IRewriteSession rewriteSession) { var targetModule = model.TargetDeclaration.QualifiedModuleName; var interfaceName = model.InterfaceName; var membersToImplement = model.SelectedMembers.Select(m => m.Member).ToList(); var addMembersModel = new AddInterfaceImplementationsModel(targetModule, interfaceName, membersToImplement); _addImplementationsRefactoringAction.Refactor(addMembersModel, rewriteSession); }
private void ImplementMissingMembers(ModuleDeclaration targetInterface, ModuleDeclaration targetClass, IRewriteSession rewriteSession) { var implemented = targetClass.Members .Where(decl => decl is ModuleBodyElementDeclaration member && ReferenceEquals(member.InterfaceImplemented, targetInterface)) .Cast <ModuleBodyElementDeclaration>() .Select(member => member.InterfaceMemberImplemented).ToList(); var interfaceMembers = targetInterface.Members.OrderBy(member => member.Selection.StartLine) .ThenBy(member => member.Selection.StartColumn); var nonImplementedMembers = interfaceMembers.Where(member => !implemented.Contains(member)); var addMembersModel = new AddInterfaceImplementationsModel(targetClass.QualifiedModuleName, targetInterface.IdentifierName, nonImplementedMembers.ToList()); _addImplementationsRefactoringAction.Refactor(addMembersModel, rewriteSession); }