/// <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); }