using Newtonsoft.Json.Linq;
using System.Collections.Generic;
public class BasketItemPatch
public int itemId { get; set; }
public int? pfid { get; set; }
public int? quantity { get; set; }
public double? periodCount { get; set; }
public string domainPrivacy { get; set; }
public MetaData metadata { get; set; }
public string catalogInstanceKey { get; set; }
public string catalogInstanceConfig { get; set; }
public string groupKey { get; set; }
public int? subscriptionId { get; set; }
public string productPackageId { get; set; }
public bool renewAuto { get; set; }
public string transitionType { get; set; }
public int? transitionedPfid { get; set; }
public List<Domain> domains { get; set; }
public ProductAttributes productAttributes { get; set; }
public string privacyUserId { get; set; }
public bool? inheritContacts { get; set; }
public string domain { get; set; }
public List<string> nameServers { get; set; }
public bool renewAuto { get; set; }
public bool includePrivacy { get; set; }
public bool transferInternal { get; set; }
public string expirationDate { get; set; }
public string dateAdded { get; set; }
public string periodMax { get; set; }
public string regAppToken { get; set; }
public string profileId { get; set; }
public string domainEligibilityId { get; set; }
public string zoneMessage { get; set; }
public string tld { get; set; }
public class ProductAttributes
public CustomData custom_data { get; set; }
public bool freeaccount { get; set; }
public string itc { get; set; }
public string domainName { get; set; }
public string telephone_number { get; set; }
public string display_number { get; set; }
public static void Main()
'label': '.COM Domain Registration',
'quantityUnitLabelKey': 'domain(s)',
'itemTrackingCode': 'dpp_absol1',
'pathway': '8723b55e-0a21-437e-80ac-187e49474b20'
'domain': 'asdas-testdasdasdd.com',
'profileId': 'anuadas34234'
'clientIp': '10.39.82.68',
'itemTrackingCode': 'cart_inline_dop'
'dateAdded': '11/12/2021 9:47:29 AM'
'label': '.CA Domain Registration',
'quantityUnitLabelKey': 'domain(s)',
'itemTrackingCode': 'dpp_absol1',
'pathway': '6aded052-38ad-4579-803a-2509b8186f96'
'profileId': '19d56dcf-3f69-4d75-a14c-81e90d31ab0a',
'domain': 'dfdsfdsfsdffff.ca'
'dateAdded': '11/23/2021 7:30:02 AM'
'label': 'Websites + Marketing Free',
'periodUnit': 'FREEMIUM',
'quantityUnitLabelKey': 'Month(s)',
'itemTrackingCode': 'dpp_config1',
'pathway': '6aded052-38ad-4579-803a-2509b8186f96'
'label': 'GoDaddy.com, LLC'
'packageId': 'wam-freemium',
'dateAdded': '11/23/2021 7:30:24 AM'
var basketJsonWithTrustee = @"{
'label': '.IT Domain Registration',
'quantityUnitLabelKey': 'domain(s)',
'profileId': 'cf396b46-f66f-422a-b446-323ffe319d51',
'domain': 'asdsar45werwrewer.it'
'dateAdded': '11/29/2021 8:30:35 AM'
'label': '.IT Domain Trustee',
'itemTrackingCode': 'dpp_absol2',
'pathway': 'gce.dpp.trustee.undefined.submit'
'domain': 'asdsar45werwrewer.it'
'packageId': 'domain-trustee-it',
'dateAdded': '11/29/2021 8:31:17 AM'
JObject basket = JObject.Parse(basketJsonWithTrustee);
from p in basket["items"]
where string.Equals((string)p["packageId"], "domain", StringComparison.OrdinalIgnoreCase)
from item in basket["items"]
where item["productTypeId"] != null &&
string.Equals((string)item["productTypeId"], "365", StringComparison.OrdinalIgnoreCase)
var domainsList = new JArray();
foreach(var item in domainItems)
var modifiedObj = JObject.FromObject(item);
foreach (var domain in modifiedObj["metadata"]["domains"]){
if(domain["profileId"] != null){
((JObject)domain).Property("profileId").Remove();
domainsList.Add(modifiedObj);
foreach (var item in trusteeProducts)
var obj = JObject.FromObject(item);
foreach (var basketItem in basket["items"])
if (basketItem["itemId"] == null) continue;
if (basketItem["itemId"] == obj?["itemId"])
var domainName = obj?["metadata"]?["domains"][0]["domain"];
domainsList.Add(basketItem);
var metaDataObj = new JObject();
metaDataObj.Add("items",domainsList);
var result1 = metaDataObj.ToString();
var basketFinal = new List<BasketItemPatch>();
foreach(var item in metaDataObj["items"]){
var result2 = item.ToString();
var result = Newtonsoft.Json.JsonConvert.DeserializeObject<BasketItemPatch>(item.ToString());
Console.WriteLine("Result === " + result.itemId);
Console.WriteLine(basketFinal.FirstOrDefault().itemId);