private void CreateMessageRequestHandlerInRequestClass(CodeClass requestCodeClass, CreateMessage model)
        {
            var handlerCodeClass = requestCodeClass.AddClass(
                Name: model.MessageHandlerName.Name,
                Position: -1,
                Access: vsCMAccess.vsCMAccessPublic
                );

            AdjustRequestHandler(handlerCodeClass, model);
        }
Exemplo n.º 2
0
        public bool CreateSynchClass()
        {
            CodeClass synchClass = _cc.AddClass("Synch" + _cc.Name, -1, 0,
                                                0, EnvDTE.vsCMAccess.vsCMAccessPrivate);

            synchClass.AddBase(_cc, -1);

            //member variables
            synchClass.AddVariable("_root", "System.Object", -1, EnvDTE.vsCMAccess.vsCMAccessPrivate, null);
            synchClass.AddVariable("_parent", _cc.FullName, -1, EnvDTE.vsCMAccess.vsCMAccessPrivate, null);

            //constructor - add function can't handle this at the moment
            EditPoint classEndPt = synchClass.EndPoint.CreateEditPoint();

            classEndPt.StartOfLine();
            classEndPt.Insert("\n");

            EditPoint editPt = synchClass.StartPoint.CreateEditPoint();

            editPt.LineDown(3);
            editPt.EndOfLine();
            editPt.Insert("\ninternal " + synchClass.Name + "(" + _cc.Name +
                          " parent){\n_parent = parent;\n_root = parent.SyncRoot;\n}\n");
            editPt.MoveToPoint(synchClass.StartPoint);
            editPt.SmartFormat(synchClass.EndPoint);

            //functions, properties and indexers
            for (CodeType ct = (CodeType)_cc; ct != null;)
            {
                if (!AddMemberElementsFromType(ct, synchClass))
                {
                    return(false);
                }
                if (ct.Bases.Count != 0)
                {
                    ct = (CodeType)(ct.Bases.Item(1));
                    if (ct.Name == "Object")
                    {
                        break;
                    }
                }
            }

            synchClass.StartPoint.CreateEditPoint().SmartFormat(synchClass.EndPoint);

            return(true);
        }