private static IActionDefinition[] GetActions(FormItem form)
        {
            var list = new List <IActionDefinition>();
            var actionDefinitions = new[]
            {
                ListDefinition.Parse(form.SaveActions),
                ListDefinition.Parse(form.CheckActions)
            };

            foreach (var actionDefinition in actionDefinitions)
            {
                if (actionDefinition.Groups.Any() && actionDefinition.Groups.First().ListItems.Any())
                {
                    foreach (var groupDefinition in actionDefinition.Groups)
                    {
                        list.AddRange(
                            groupDefinition.ListItems.Select(li => new ActionDefinition(li.ItemID, li.Parameters)
                        {
                            UniqueKey = li.Unicid
                        }));
                    }
                }
            }

            return(list.ToArray());
        }
예제 #2
0
        /// <summary>
        /// Inits the previous action list.
        /// </summary>
        private void InitPreviousActionList()
        {
            var actionDefinition = this.CurrentForm.SaveActions;
            var handle           = UrlHandle.Get();

            if (handle != null && !string.IsNullOrEmpty(handle["actiondefinition"]))
            {
                actionDefinition = handle["actiondefinition"];
            }

            var list = ListDefinition.Parse(actionDefinition);

            IEnumerable <string> ids = new List <string>();

            if (list.Groups.Any())
            {
                ids = list.Groups.First().ListItems.TakeWhile(i => i.Unicid != this.UniqID).Select(i => i.Unicid);
            }

            this.PreviousActionList.Items.LoadItemsFromActions(actionDefinition, (i, uniqId) => i.InnerItem.TemplateID == FieldsIds.CrmActionTemplateID && ids.FirstOrDefault(id => id == uniqId) != null);
        }