public override void Run() { Guard.ObjectIsInstanceOfType(Owner, typeof(ISelection), "Owner"); Guard.ObjectIsInstanceOfType(Owner, typeof(IObjectAware), "Owner"); var selection = (ISelection)Owner; var objectAware = (IObjectAware)Owner; ObjectController objectController = (ObjectController)this.Owner; Guid selectedId = Guid.Empty; var parameters = new ActionParameters(objectAware.ObjectName, selectedId, ViewShowType.Show) { { "WorkingMode", _workMode } }; var controllerName = objectAware.ObjectName; BaseController filterController = objectController.Context.ControllerFinder.FindController <BaseController>("BaseControllerList"); if (filterController != null) { Guid?projectId = filterController.GetSelectedFilterProjectId(); Guid?memberId = filterController.GetSelectedMemberId(); Guid?iterationId = filterController.GetSelectedIterationId(); parameters.Add("ProjectId", projectId); parameters.Add("MemberId", memberId); parameters.Add("IterationId", iterationId); } App.Instance.Invoke(controllerName, "Detail", parameters); }
private void LoadMainView(string dockPath, ActionParameters parameters) { var viewDescriptors = AddInTree.BuildItems <object>(dockPath, this, false).OfType <ViewDescriptor>().ToList(); if (!viewDescriptors.Any()) { throw new Exception(string.Format("{0} doesn't contains any view, please check it", dockPath)); } if (viewDescriptors.Count > 1 && !viewDescriptors.Any(c => c.Codon.Properties.Contains("MainView"))) { throw new Exception(string.Format("One screen only supprt one view, {0} contains more then one view, please check it", dockPath)); } var mainViewDescriptor = viewDescriptors[0]; if (viewDescriptors.Any(c => c.Codon.Properties.Contains("MainView"))) { mainViewDescriptor = viewDescriptors.Where(c => c.Codon.Properties.Contains("MainView")).First(); } if (!mainViewDescriptor.Codon.Properties.Contains("controller")) { throw new Exception(string.Format("{0}/{1} doesn't contains controller property, please check it", dockPath, mainViewDescriptor.Id)); } _mainController = ControllerFactory.CreateController(mainViewDescriptor.Codon.Properties["controller"]); _mainController.WorkSpaceID = this.ID; _mainController.Context = this._workspaceContext; this.LoadCommands(); var ribbonPath = BasePath + "/Ribbon"; if (AddInTree.ExistsTreeNode(ribbonPath)) { RibbonManager.AddItemsToMenu(ribbon, _mainController, ribbonPath, this._commandManager); } parameters.Add("ribbonControl", this.ribbon); ActionResult = new ActionInvoker().Invoke(_mainController, null, parameters) as IActionResult; var result = ActionResult as IPartialViewResult; if (result == null) { return; } result.View.ViewName = mainViewDescriptor.Codon.Id; var mainControl = (Control)result.View; if (viewDescriptors.Count > 1) { LoadSubViews(viewDescriptors.Where(c => !c.Codon.Properties.Contains("MainView")).ToList(), dockPath, parameters, mainControl); } mainControl.Dock = DockStyle.Fill; AddView(result.View); this.Controls.Add(mainControl); ActiveView = result.View; }
public override void Run() { if (!(Owner is ObjectController)) { return; } ObjectController objectController = (ObjectController)Owner; string objectName = objectController.ObjectName; Guid selectedId = Guid.Empty; IObjectSpace objectSpace = new ODataObjectSpace(); selectedId = objectSpace.GetObjectId(objectName, objectController.SelectedObject); var parameters = new ActionParameters(objectName, selectedId, ViewShowType.Show); if (Owner is NoteController) { parameters.Add("ParentObjectName", ((NoteController)Owner).ParentObjectName); } App.Instance.Invoke("NoteDetail", "NoteAction", parameters); }