internal async Task Write(CosmosCmsDataItem item, string cmsType, Guid id, string?lang) { Container container = GetContainer(); item.Id = id; item.CmsType = cmsType; //Read main item without language var cmsItem = await this.ReadCmsItem(cmsType, id).ConfigureAwait(false); if (cmsItem == null) { cmsItem = new CosmosCmsItem(); } cmsItem.Id = id; cmsItem.CmsType = cmsType; if (lang == null) { cmsItem.AdditionalProperties = item.AdditionalProperties; } else { cmsItem.Translations[lang] = item; } await container.UpsertItemAsync(cmsItem, new PartitionKey(cmsType)).ConfigureAwait(false); }
internal static CmsItem?ToCmsItem(this CosmosCmsItem item) { string json = JsonConvert.SerializeObject(item); return(System.Text.Json.JsonSerializer.Deserialize <CmsItem>(json)); }