/// <summary> /// Construct content within propertyName dashboard gadget. It is assumed that view consists of propertyName /// constructor that takes viewmodel instance and view model class consists od propertyName cons- /// tructor that takes IEventAggregator, IDBInteractivity and ILoggerFacade instance. /// </summary> /// <param name="gadgetViewClassName">Gadget view Type</param> /// <param name="gadgetViewModelClassName">Gadget View Model Type</param> /// <returns></returns> private object GetDashboardTileContent(string displayName, string gadgetViewClassName, string gadgetViewModelClassName, object viewModelObject = null) { object content = null; try { Assembly assembly = TypeResolution.GetAssembly(gadgetViewClassName); Type viewType = TypeResolution.GetAssemblyType(gadgetViewClassName); Type viewModelType = viewModelObject == null?TypeResolution.GetAssemblyType(gadgetViewModelClassName) : viewModelObject.GetType(); if (viewType.IsClass && viewModelType.IsClass) { Type[] argumentTypes = new Type[] { typeof(DashboardGadgetParam) }; object[] argumentValues = new object[] { GetDashboardGadgetParam(displayName) }; if (viewModelObject == null) { viewModelObject = TypeResolution.GetNewTypeObject(viewModelType, argumentTypes, argumentValues); } content = TypeResolution.GetNewTypeObject(viewType, new Type[] { viewModelType }, new object[] { viewModelObject }); ViewBaseUserControl control = (ViewBaseUserControl)(content); if (control != null) { control.IsActive = true; } } } catch (Exception ex) { logger.Log("User : "******"\nMessage: " + ex.Message + "\nStackTrace: " + ex.StackTrace, Category.Exception, Priority.Medium); Prompt.ShowDialog("Message: " + ex.Message + "\nStackTrace: " + ex.StackTrace, "Exception", MessageBoxButton.OK); } return(content); }
/// <summary> /// Construct content within propertyName dashboard gadget. It is assumed that view consists of propertyName /// constructor that takes viewmodel instance and view model class consists od propertyName cons- /// tructor that takes DashboardGadgetParam instance. /// </summary> /// <param name="gadgetViewClassName">Gadget view Type</param> /// <param name="gadgetViewModelClassName">Gadget View Model Type</param> /// <returns></returns> public static object GetContent(string gadgetViewClassName , string gadgetViewModelClassName, DashboardGadgetParam param) { if (gadgetViewClassName == null || gadgetViewModelClassName == null || param == null) { throw new ArgumentNullException(); } object content = null; try { Assembly assembly = TypeResolution.GetAssembly(gadgetViewClassName); Type viewType = TypeResolution.GetAssemblyType(gadgetViewClassName); Type viewModelType = TypeResolution.GetAssemblyType(gadgetViewModelClassName); if (viewType.IsClass && viewModelType.IsClass) { Type[] argumentTypes = new Type[] { typeof(DashboardGadgetParam) }; object[] argumentValues = new object[] { param }; object viewModelObject = TypeResolution.GetNewTypeObject(viewModelType, argumentTypes, argumentValues); content = TypeResolution.GetNewTypeObject(viewType, new Type[] { viewModelType }, new object[] { viewModelObject }); } } catch (Exception ex) { param.LoggerFacade.Log("User : "******"\nMessage: " + ex.Message + "\nStackTrace: " + ex.StackTrace, Category.Exception, Priority.Medium); Prompt.ShowDialog("Message: " + ex.Message + "\nStackTrace: " + ex.StackTrace, "Exception", MessageBoxButton.OK); } return(content); }
/// <summary> /// Handles Dashboard Gadget Load event - reconstructs gadgets based on preference got from database. /// </summary> /// <param name="param"></param> public void HandleDashboardGadgetLoad(DashboardGadgetPayload payLoad) { try { if (SessionManager.SESSION != null) { this.busyIndicator.IsBusy = true; if (dashboardGadgetPayLoad != null) { this.busyIndicator.IsBusy = false; return; } dashboardGadgetPayLoad = payLoad; manageDashboard.GetDashboardPreferenceByUserName(SessionManager.SESSION.UserName, (dashboardPreference) => { this.busyIndicator.IsBusy = false; ObservableCollection <tblDashboardPreference> preference = new ObservableCollection <tblDashboardPreference>(dashboardPreference.OrderBy(t => t.GadgetPosition)); if (preference.Count > 0 && rtvDashboard.Items.Count.Equals(0)) { foreach (tblDashboardPreference item in preference) { switch (item.GadgetName) { case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_ASSUMPTIONS: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_TERMINAL_VALUE_CALCULATIONS: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_SUMMARY: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_SENSIVITY: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_FORWARD_EPS: case GadgetNames.HOLDINGS_DISCOUNTED_CASH_FLOW_FORWARD_BVPS: { if (dcfViewModelObject == null) { Type[] argumentTypes = new Type[] { typeof(DashboardGadgetParam) }; object[] argumentValues = new object[] { GetDashboardGadgetParam() }; dcfViewModelObject = TypeResolution.GetNewTypeObject(typeof(ViewModelDCF), argumentTypes, argumentValues); } InsertGadget(item.GadgetName, item.GadgetViewClassName, item.GadgetViewModelClassName, item.GadgetPosition, dcfViewModelObject, preference.Count == 1 ? "Maximized" : item.GadgetState); } break; default: { InsertGadget(item.GadgetName, item.GadgetViewClassName, item.GadgetViewModelClassName, item.GadgetPosition, null, preference.Count == 1 ? "Maximized" : item.GadgetState); } break; } } } }); } } catch (Exception ex) { logger.Log("User : "******"\nMessage: " + ex.Message + "\nStackTrace: " + ex.StackTrace, Category.Exception, Priority.Medium); Prompt.ShowDialog("Message: " + ex.Message + "\nStackTrace: " + ex.StackTrace, "Exception", MessageBoxButton.OK); } }