Beispiel #1
0
        /// <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);
        }