Beispiel #1
0
 /// <summary>
 /// Returns a list of consolidated actions from two different action lists.
 /// </summary>
 /// <param name="actions">The first set of actions.</param>
 /// <param name="actions2">The second set of actions.</param>
 /// <param name="defaultEmptyCategory">The default empty category.</param>
 /// <param name="actionsDisplayFilter">The actions display filter.</param>
 /// <param name="flagFirstSecondaryActionAsNewGroup">Defines whether the first secondary action is to be flagged as a new group.</param>
 /// <param name="actions2DisplayFilter">Display filter for the secondary set of actions</param>
 /// <param name="viewModel">Optional view model object</param>
 /// <returns>ObservableCollection&lt;IViewAction&gt;.</returns>
 public virtual ObservableCollection <IViewAction> GetConsolidatedActions(IHaveActions actions, IHaveActions actions2 = null, string defaultEmptyCategory = "", ViewActionDisplayMode actionsDisplayFilter = ViewActionDisplayMode.All, bool flagFirstSecondaryActionAsNewGroup = false, ViewActionDisplayMode actions2DisplayFilter = ViewActionDisplayMode.All, object viewModel = null) => ViewActionHelper.GetConsolidatedActions(actions, actions2, defaultEmptyCategory, actionsDisplayFilter, flagFirstSecondaryActionAsNewGroup, actions2DisplayFilter);
        /// <summary>
        /// Inspects up to 2 IHaveActions interfaces and returns a consolidated list of actions for both interfaces
        /// </summary>
        /// <param name="actions">The first interface containing actions</param>
        /// <param name="actions2">The second interface containing actions</param>
        /// <param name="defaultEmptyCategory">The default empty category.</param>
        /// <param name="actionsDisplayFilter">Indicates which actions out of the first actions collection shall be included.</param>
        /// <param name="flagFirstSecondaryActionAsNewGroup">Indicates whether the first action from the second actions collection should be flagged as a new group</param>
        /// <param name="actions2DisplayFilter">Indicates which actions out of the second actions collection shall be included.</param>
        /// <returns>ObservableCollection{IViewAction}.</returns>
        public static ObservableCollection<IViewAction> GetConsolidatedActions(IHaveActions actions, IHaveActions actions2 = null, string defaultEmptyCategory = "", ViewActionDisplayMode actionsDisplayFilter = ViewActionDisplayMode.All, bool flagFirstSecondaryActionAsNewGroup = false, ViewActionDisplayMode actions2DisplayFilter = ViewActionDisplayMode.All)
        {
            var actionList = new ObservableCollection<IViewAction>();

            if (actions == null || actions.Actions == null) return actionList;

            if (actionsDisplayFilter != ViewActionDisplayMode.None)
            {
                var list = actions.Actions.OrderBy(a => a.FirstCategoryId).ToList();
                switch (actionsDisplayFilter)
                {
                    case ViewActionDisplayMode.BelowNormalSignificanceAndHigher:
                        list = list.Where(a => a.Significance == ViewActionSignificance.BelowNormal || a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                    case ViewActionDisplayMode.NormalSignificanceAndHigher:
                        list = list.Where(a => a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                    case ViewActionDisplayMode.AboveNormalSignificanceAndHigher:
                        list = list.Where(a => a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                    case ViewActionDisplayMode.HighestSignificance:
                        list = list.Where(a => a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                }
                foreach (var action in list) actionList.Add(action);
            }

            if (actions2 != null && actions2.Actions.Count > 0 && actions2DisplayFilter != ViewActionDisplayMode.None)
            {
                var actionsCount = 0;
                var list = actions2.Actions.ToList();
                switch (actions2DisplayFilter)
                {
                    case ViewActionDisplayMode.BelowNormalSignificanceAndHigher:
                        list = list.Where(a => a.Significance == ViewActionSignificance.BelowNormal || a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                    case ViewActionDisplayMode.NormalSignificanceAndHigher:
                        list = list.Where(a => a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                    case ViewActionDisplayMode.AboveNormalSignificanceAndHigher:
                        list = list.Where(a => a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                    case ViewActionDisplayMode.HighestSignificance:
                        list = list.Where(a => a.Significance == ViewActionSignificance.Highest).ToList();
                        break;
                }
                foreach (var action in list)
                {
                    if (actionsCount == 0 && flagFirstSecondaryActionAsNewGroup) action.BeginGroup = true;
                    if (action.Categories.Count == 1 && string.IsNullOrEmpty(action.Categories[0].Caption))
                        action.Categories[0].Caption = defaultEmptyCategory;
                    if (action.Categories.Count == 1 && string.IsNullOrEmpty(action.Categories[0].Id))
                        action.Categories[0].Id = defaultEmptyCategory.Replace(" ", "");
                    if (action.Categories.Count == 0)
                        action.Categories.Add(new ViewActionCategory(defaultEmptyCategory.Replace(" ", ""), defaultEmptyCategory));
                    var viewAction = action as ViewAction;
                    if (viewAction != null)
                        viewAction.IsLocalAction = true;
                    actionList.Add(action);
                    actionsCount++;
                }
            }

            return actionList;
        }
Beispiel #3
0
        /// <summary>
        /// Inspects up to 2 IHaveActions interfaces and returns a consolidated list of actions for both interfaces
        /// </summary>
        /// <param name="actions">The first interface containing actions</param>
        /// <param name="actions2">The second interface containing actions</param>
        /// <param name="defaultEmptyCategory">The default empty category.</param>
        /// <param name="actionsDisplayFilter">Indicates which actions out of the first actions collection shall be included.</param>
        /// <param name="flagFirstSecondaryActionAsNewGroup">Indicates whether the first action from the second actions collection should be flagged as a new group</param>
        /// <param name="actions2DisplayFilter">Indicates which actions out of the second actions collection shall be included.</param>
        /// <returns>ObservableCollection{IViewAction}.</returns>
        public static ObservableCollection <IViewAction> GetConsolidatedActions(IHaveActions actions, IHaveActions actions2 = null, string defaultEmptyCategory = "", ViewActionDisplayMode actionsDisplayFilter = ViewActionDisplayMode.All, bool flagFirstSecondaryActionAsNewGroup = false, ViewActionDisplayMode actions2DisplayFilter = ViewActionDisplayMode.All)
        {
            var actionList = new ObservableCollection <IViewAction>();

            if (actions == null || actions.Actions == null)
            {
                return(actionList);
            }

            if (actionsDisplayFilter != ViewActionDisplayMode.None)
            {
                var list = actions.Actions.OrderBy(a => a.FirstCategoryId).ToList();
                switch (actionsDisplayFilter)
                {
                case ViewActionDisplayMode.BelowNormalSignificanceAndHigher:
                    list = list.Where(a => a.Significance == ViewActionSignificance.BelowNormal || a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                    break;

                case ViewActionDisplayMode.NormalSignificanceAndHigher:
                    list = list.Where(a => a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                    break;

                case ViewActionDisplayMode.AboveNormalSignificanceAndHigher:
                    list = list.Where(a => a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                    break;

                case ViewActionDisplayMode.HighestSignificance:
                    list = list.Where(a => a.Significance == ViewActionSignificance.Highest).ToList();
                    break;
                }
                foreach (var action in list)
                {
                    actionList.Add(action);
                }
            }

            if (actions2 != null && actions2.Actions.Count > 0 && actions2DisplayFilter != ViewActionDisplayMode.None)
            {
                var actionsCount = 0;
                var list         = actions2.Actions.ToList();
                switch (actions2DisplayFilter)
                {
                case ViewActionDisplayMode.BelowNormalSignificanceAndHigher:
                    list = list.Where(a => a.Significance == ViewActionSignificance.BelowNormal || a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                    break;

                case ViewActionDisplayMode.NormalSignificanceAndHigher:
                    list = list.Where(a => a.Significance == ViewActionSignificance.Normal || a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                    break;

                case ViewActionDisplayMode.AboveNormalSignificanceAndHigher:
                    list = list.Where(a => a.Significance == ViewActionSignificance.AboveNormal || a.Significance == ViewActionSignificance.Highest).ToList();
                    break;

                case ViewActionDisplayMode.HighestSignificance:
                    list = list.Where(a => a.Significance == ViewActionSignificance.Highest).ToList();
                    break;
                }
                foreach (var action in list)
                {
                    if (actionsCount == 0 && flagFirstSecondaryActionAsNewGroup)
                    {
                        action.BeginGroup = true;
                    }
                    if (action.Categories.Count == 1 && string.IsNullOrEmpty(action.Categories[0].Caption))
                    {
                        action.Categories[0].Caption = defaultEmptyCategory;
                    }
                    if (action.Categories.Count == 1 && string.IsNullOrEmpty(action.Categories[0].Id))
                    {
                        action.Categories[0].Id = defaultEmptyCategory.Replace(" ", "");
                    }
                    if (action.Categories.Count == 0)
                    {
                        action.Categories.Add(new ViewActionCategory(defaultEmptyCategory.Replace(" ", ""), defaultEmptyCategory));
                    }
                    var viewAction = action as ViewAction;
                    if (viewAction != null)
                    {
                        viewAction.IsLocalAction = true;
                    }
                    actionList.Add(action);
                    actionsCount++;
                }
            }

            return(actionList);
        }