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());
                    }
                }
            }
        }
Exemplo n.º 2
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }