public PersonalView(IPersonalArtefactManager parentContainer, Entity entity) { if (parentContainer == null) { throw new ArgumentNullException("parentContainer", "Artefact must be instantiated with reference to its original manager instance"); } Container = parentContainer; Entity = entity; }
/// <summary> /// Factory method for returning the apropriate manager instance for the specified type /// </summary> /// <param name="typeName"></param> /// <returns></returns> public IPersonalArtefactManager GetManager(string typeName) { IPersonalArtefactManager instance = null; switch (typeName) { case PersonalArtefactType.UserQuery: if (!ManagerInstances.ContainsKey(typeName)) { var viewManager = new PersonalViewManager(_pluginContext); viewManager.PersonalViewsListUpdated += (object sender, EventArgs evt) => { ArtefactListUpdated?.Invoke(this, new ArtefactListUpdatedEventArgs(viewManager.Views)); }; ManagerInstances.Add(typeName, viewManager); } instance = ManagerInstances[typeName]; break; case "userform": if (!ManagerInstances.ContainsKey(typeName)) { var dashboardManager = new PersonalDashboardManager(_pluginContext); dashboardManager.PersonalDashboardsListUpdated += (object sender, EventArgs evt) => { ArtefactListUpdated?.Invoke(this, new ArtefactListUpdatedEventArgs(dashboardManager.Dashboards)); }; ManagerInstances.Add(typeName, dashboardManager); } instance = ManagerInstances[typeName]; break; case "userqueryvisualization": if (!ManagerInstances.ContainsKey(typeName)) { var diagramManager = new PersonalDiagramManager(_pluginContext); diagramManager.PersonalDiagramsListUpdated += (object sender, EventArgs evt) => { ArtefactListUpdated?.Invoke(this, new ArtefactListUpdatedEventArgs(diagramManager.Diagrams)); }; ManagerInstances.Add(typeName, diagramManager); } instance = ManagerInstances[typeName]; break; default: throw new UnknownArtefactTypeError(typeName, $"Unknown artefact type \"{typeName}\""); break; } return(instance); }