public void DumpList(DumperServiceContext context) { var fields = context.Content .ContentItem .Parts .SelectMany(pa => pa.Fields) .Where(fi => fi is FieldExternal) .Select(fi => fi as FieldExternal) .Where(fi => fi.Setting.GenerateL); if (fields != null && fields.Any()) { var Myobject = new Dictionary <string, object> { { "Content", context.Content.ContentItem } }; foreach (var externalField in fields) { var settings = externalField.PartFieldDefinition .Settings.GetModel <FieldExternalSetting>(); if (!settings.NoFollow) { var mainSb = new StringBuilder(); mainSb.Append("{"); try { if (string.IsNullOrEmpty(settings.ExternalURL)) { externalField.ContentObject = _fieldExternalService .GetContentfromField(Myobject, externalField.ExternalUrl, externalField.Name, settings, context.Content.ContentItem.ContentType, externalField.HttpVerb, externalField.HttpDataType, externalField.AdditionalHeadersText, externalField.BodyRequest); } else { externalField.ContentObject = _fieldExternalService .GetContentfromField(Myobject, settings.ExternalURL, externalField.Name, settings, context.Content.ContentItem.ContentType, settings.HttpVerb, settings.HttpDataType, settings.AdditionalHeadersText, settings.BodyRequest); } } catch (ExternalFieldRemoteException ex) { externalField.ContentObject = ex; } if (externalField.ContentObject != null) { var dump = context.GetDumper() .Dump(cleanobj(externalField.ContentObject), externalField.Name, "List<generic>"); context.ConvertToJson(dump, mainSb); } mainSb.Append("}"); // Add the serialization to the results context.ContentLists.Add(mainSb.ToString()); } } } }
protected override void BuildDisplayShape(BuildDisplayContext context) { // _cacheManager.Get( // "Vandelay.Favicon.Url", // ctx => { // ctx.Monitor(_signals.When("Vandelay.Favicon.Changed")); // var faviconSettings = ...; // return faviconSettings.FaviconUrl; // }); //_signals.Trigger("Vandelay.Favicon.Changed"); base.BuildDisplayShape(context); if (context.DisplayType == "Detail" || context.DisplayType == "Summary") { var fields = context.ContentItem.Parts.SelectMany(x => x.Fields.Where(f => f.FieldDefinition.Name == typeof(FieldExternal).Name)).Cast <FieldExternal>(); if (fields.Count() > 0) { var Myobject = new Dictionary <string, object> { { "Content", context.ContentItem } }; foreach (var field in fields) { // Logger.Error("Field get inizio:"+DateTime.Now.ToString()); if (field.GetType().Name == "FieldExternal") { var settings = field.PartFieldDefinition.Settings.GetModel <FieldExternalSetting>(); if (settings.NoFollow) { field.ContentUrl = _fieldExternalService.GetUrl(Myobject, settings.ExternalURL); } else if (context.DisplayType == "Detail") { try { if (string.IsNullOrEmpty(settings.ExternalURL)) { field.ContentObject = _fieldExternalService.GetContentfromField(Myobject, field.ExternalUrl, field.Name, settings, context.ContentItem.ContentType, field.HttpVerb, field.HttpDataType, field.AdditionalHeadersText, field.BodyRequest); } else { field.ContentObject = _fieldExternalService.GetContentfromField(Myobject, settings.ExternalURL, field.Name, settings, context.ContentItem.ContentType, settings.HttpVerb, settings.HttpDataType, settings.AdditionalHeadersText, settings.BodyRequest); } // Logger.Error("Field get fine:" + DateTime.Now.ToString()); } catch (ExternalFieldRemoteException ex) { field.ContentObject = ex; } } } } } } }