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);
        }
Exemplo n.º 2
0
        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);
        }