public override void Invoke() { var stickProcessor = new ControllerDomain(_codeModel.Parent.ContainingProject); var stincks = stickProcessor.FindStinck(new[] { _controller }); var stinck = stincks.FirstOrDefault(); var form = new SelectElementsForm(); form.SetWindowData(stinck, _actionName == null ? RefactorTarget.ServiceActions : RefactorTarget.ServiceAction, _actionName); if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { stickProcessor.FindControllerRelativeClasses(stinck.Name); var result = stickProcessor.GenerateRefactoringCode(form.GetData()); stickProcessor.AddToProject(result); } }
private void btnCreateViewModel_Click(object sender, EventArgs e) { if (lvStinck.SelectedItems.Count == 0) { return; } _lastResult = null; ControllerStinck stinck = (ControllerStinck)lvStinck.SelectedItems[0].Tag; try { //foreach (CodeImport import in stinck.ProjectItem.FileCodeModel.CodeElements.OfType<CodeImport>()) //{ // Debug.WriteLine(import.Name + " " + import.Namespace + " - "); //} //foreach (CodeNamespace ns in stinck.ProjectItem.FileCodeModel.CodeElements.OfType<CodeNamespace>()) //{ // foreach (CodeImport import in ns.Members.OfType<CodeImport>()) // Debug.WriteLine("ns: " + import.Name + " " + import.Namespace + " - "); //} //return; var result = _controllerDomain.GenerateRefactoringCode(stinck); foreach (var editor in _codeEditors.Values) { editor.Tag = result.KnownTypes; } _codeEditors["ViewModelClass"].Text = result.ViewModelClass; _codeEditors["ViewModelInterface"].Text = result.ViewModelInterface; _codeEditors["ServiceClass"].Text = result.ServiceClass; _codeEditors["ServiceInterface"].Text = result.ServiceInterface; //_codeEditors["DomainService"].Text = result.DomainServiceClass; _codeEditors["Controller"].Text = result.Controller; tabCode.SelectTab("tabController"); _lastResult = result; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void SetWindowData(ControllerStinck controller, RefactorTarget target, string targetName = null) { _stinck = controller.Clone(); clbViewModel.Items.Clear(); clbService.Items.Clear(); foreach (var vmAction in controller.ViewModelMethods.Union(controller.BadPublicMethods)) { var check = (target == RefactorTarget.ViewModelAction && targetName == vmAction.Name) || (target == RefactorTarget.BaseViewModel && (vmAction.Name == "Get" || vmAction.Name == "List")) || (target == RefactorTarget.ViewModelActions || target == RefactorTarget.Controller); clbViewModel.Items.Add(vmAction.Name, check); } foreach (var svcAction in controller.ServiceMethods) { var check = (target == RefactorTarget.ServiceAction && targetName == svcAction.Name) || (target == RefactorTarget.ServiceActions || target == RefactorTarget.Controller); clbService.Items.Add(svcAction.Name, check); } _funcs = _stinck.ViewModelMethods.Union(_stinck.BadPublicMethods).Union(_stinck.ServiceMethods); var stickProcessor = new ControllerDomain(controller.ProjectItem.ContainingProject); stickProcessor.FindControllerRelativeClasses(controller.Name); var result = stickProcessor.GenerateRefactoringCode(_stinck); try { _convertedCode = result.Modification.ConvertedMethods; } catch (Exception e) { MessageBox.Show(e.Message + " " + e.StackTrace); } }