C# 使用ContentService更新嵌套内容中的嵌套内容

C# 使用ContentService更新嵌套内容中的嵌套内容,c#,arrays,json,json.net,umbraco,C#,Arrays,Json,Json.net,Umbraco,我在嵌套内容列表(meetingDatesAvailable)中有一个嵌套内容列表(meetingItemDayTimes) 我想在每个时间项上将复选框设置为true。但我一辈子都不能让它工作 结构如下: var mainpage=contentService.GetById(1057); var dateItems=Umbraco.Content(parentNode.Value(“meetingDatesAvailable”); var ncItems=new JArray(); var

我在嵌套内容列表(meetingDatesAvailable)中有一个嵌套内容列表(meetingItemDayTimes)

我想在每个时间项上将复选框设置为true。但我一辈子都不能让它工作

结构如下:

var mainpage=contentService.GetById(1057);
var dateItems=Umbraco.Content(parentNode.Value(“meetingDatesAvailable”);
var ncItems=new JArray();
var ncDateItems=new JArray();
var ncTimeItems=new JArray();
if(dateItems!=null&&dateItems.Any())
{
foreach(dateItems中的var dateItem)
{
var ncDateItem=new JObject();
ncDateItem.Add(“key”,dateItem.key.ToString());
添加(“ncContentTypeAlias”,dateItem.ContentType.Alias);
ncDateItem.Add(“meetingItemDay”,dateItem.Value(“meetingItemDay”,fallback:fallback.ToDefaultValue,defaultValue:null));
var times=dateItem.Value(“meetingItemDayTimes”);
foreach(以时间为单位的var时间)
{
var ncTimeItem=new JObject();
if(time.Key.ToString()==itemKey)
{
ncTimeItem.Add(“meetingdateTimeItemUnavailable”,true);
}
其他的
{
ncTimeItem.Add(“meetingdateTimeItemUnavailable”,time.Value(“meetingdateTimeItemUnavailable”,fallback:fallback.ToDefaultValue,defaultValue:false));
}
ncTimeItem.Add(“key”,Guid.NewGuid().ToString());
添加(“ncContentTypeAlias”,time.ContentType.Alias);
ncTimeItem.Add(“meetingdateTimeItem”,time.Value(“meetingdateTimeItem”,fallback:fallback.ToDefaultValue,defaultValue:null));
ncTimeItems.Add(ncTimeItem);
}
ncDateItems.Add(ncDateItem);
}
ncItems.Add(ncDateItems);
var ncItemString=Newtonsoft.Json.JsonConvert.SerializeObject(ncItems);
mainpage.SetValue(“meetingDatesAvailable”,ncItemString);
contentService.SaveAndPublish(主页);
返回新的{saved=ncItemString};
}
我真的不知道如何正确地构建列表

var mainpage = contentService.GetById(1057);
var dateItems = Umbraco.Content(parentNode).Value<IEnumerable<IPublishedElement>>("meetingDatesAvailable");
var ncItems = new JArray();
var ncDateItems = new JArray();
var ncTimeItems = new JArray();

if (dateItems != null && dateItems.Any())
{
   foreach (var dateItem in dateItems)
   {
       var ncDateItem = new JObject();
       ncDateItem.Add("key", dateItem.Key.ToString());
       ncDateItem.Add("ncContentTypeAlias", dateItem.ContentType.Alias);
       ncDateItem.Add("meetingItemDay", dateItem.Value<string>("meetingItemDay", fallback: Fallback.ToDefaultValue, defaultValue: null));

       var times = dateItem.Value<IEnumerable<IPublishedElement>>("meetingItemDayTimes");

       foreach (var time in times)
       {
           var ncTimeItem = new JObject();

                        if (time.Key.ToString() == itemKey)
                        {
                            ncTimeItem.Add("meetingdateTimeItemUnavailable", true);
                        }
                        else
                        {
                            ncTimeItem.Add("meetingdateTimeItemUnavailable", time.Value<bool>("meetingdateTimeItemUnavailable", fallback: Fallback.ToDefaultValue, defaultValue: false));
                        }

                        ncTimeItem.Add("key", Guid.NewGuid().ToString());
                        ncTimeItem.Add("ncContentTypeAlias", time.ContentType.Alias);
                        ncTimeItem.Add("meetingdateTimeItem", time.Value<string>("meetingdateTimeItem", fallback: Fallback.ToDefaultValue, defaultValue: null));
                        ncTimeItems.Add(ncTimeItem);
                    }

                    ncDateItems.Add(ncDateItem);
                }

                ncItems.Add(ncDateItems);

                var ncItemString = Newtonsoft.Json.JsonConvert.SerializeObject(ncItems);
                mainpage.SetValue("meetingDatesAvailable", ncItemString);
                contentService.SaveAndPublish(mainpage);
                return new { saved = ncItemString };
            }