protected override DriverResult Editor(HighlightsGroupPart part, dynamic shapeHelper) { var HighlightsItems = _HighlightsService.GetHighlightsItemsByGroupId(part.Id); // populating the list of queries and layouts var layouts = _projectionManager.DescribeLayouts().SelectMany(x => x.Descriptors).ToList(); var queryRecordEntries = _orchardServices.ContentManager.Query <QueryPart>().Join <TitlePartRecord>().OrderBy(x => x.Title).List() .Select(x => new QueryRecordEntry { Id = x.Id, Name = x.Name, }); var group = new HighlightsGroup { Id = part.Id, ContentId = (part.ContentItem != null) ? part.ContentItem.Id : 0, DisplayPlugin = part.DisplayPlugin, DisplayTemplate = part.DisplayTemplate, HighlightsItems = HighlightsItems.ToList(), HighlightsItemsOrder = String.Join(",", HighlightsItems.Select(s => s.Id).ToArray()), ItemsSourceType = part.ItemsSourceType, Query_Id = part.Query_Id, QueryRecordEntries = queryRecordEntries, }; return(ContentShape( "Parts_HighlightsGroup_Edit", () => shapeHelper.EditorTemplate( TemplateName: "Parts/HighlightsGroup_Edit", Model: group, Prefix: Prefix))); }
protected override DriverResult Editor(HighlightsGroupPart part, IUpdateModel updater, dynamic shapeHelper) { var group = new HighlightsGroup(); var httpContext = _httpContextAccessor.Current(); var HighlightsItems = _HighlightsService.GetHighlightsItemsByGroupId(part.Id); var form = httpContext.Request.Form; int[] Ordinati = new int[form.Count]; string Suffisso; int Riga = 0; foreach (string key in form.Keys) { if (key.StartsWith("HighlightsItems")) { Suffisso = key.Substring(key.IndexOf("].") + 2); switch (Suffisso) { case "Position": //Lista[Riga, 0] = Convert.ToInt32(form[key]); break; case "ItemId": Ordinati[Riga++] = Convert.ToInt32(form[key]); break; default: break; } } } String Messaggio; Messaggio = ""; if (Messaggio != "") { updater.AddModelError(this.Prefix, T(Messaggio)); } Array.Resize <int>(ref Ordinati, Riga); if (updater.TryUpdateModel(group, Prefix, null, null)) { if (group.DisplayPlugin.StartsWith(group.DisplayTemplate.ToString() + " - ")) { part.DisplayPlugin = group.DisplayPlugin; } else { part.DisplayPlugin = ""; } part.DisplayTemplate = group.DisplayTemplate; part.ItemsSourceType = group.ItemsSourceType; if (group.ItemsSourceType == Enums.ItemsSourceTypes.ByHand) { if (group.HighlightsItemsOrder != null) { for (var i = 0; i < Ordinati.Length; i++) { _HighlightsService.UpdateOrder(Convert.ToInt32(Ordinati[i]), i); } } } else { part.Query_Id = group.Query_Id; } } else { _transactions.Cancel(); } return(Editor(part, shapeHelper)); }