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