示例#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);
        }
示例#3
0
        /// <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);
            }
        }