/// <summary> /// Saves all of the regions from the source model into the destination. /// </summary> /// <param name="src">The source</param> /// <param name="dest">The destination</param> private void SaveRegions(PostEditModel src, Piranha.Models.DynamicPost dest) { var modelRegions = (IDictionary <string, object>)dest.Regions; foreach (var region in src.Regions) { if (region is PageEditRegion) { if (!modelRegions.ContainsKey(region.Id)) { modelRegions[region.Id] = Piranha.Models.DynamicPost.CreateRegion(api, dest.TypeId, region.Id); } var reg = (PageEditRegion)region; if (reg.FieldSet.Count == 1) { modelRegions[region.Id] = reg.FieldSet[0].Value; } else { var modelFields = (IDictionary <string, object>)modelRegions[region.Id]; foreach (var field in reg.FieldSet) { modelFields[field.Id] = field.Value; } } } else { if (modelRegions.ContainsKey(region.Id)) { var list = (Piranha.Models.IRegionList)modelRegions[region.Id]; var reg = (PageEditRegionCollection)region; // At this point we clear the values and rebuild them list.Clear(); foreach (var set in reg.FieldSets) { if (set.Count == 1) { list.Add(set[0].Value); } else { var modelFields = (IDictionary <string, object>)Piranha.Models.DynamicPost.CreateRegion(api, dest.TypeId, region.Id); foreach (var field in set) { modelFields[field.Id] = field.Value; } list.Add(modelFields); } } } } } }
private void SaveBlocks(PostEditModel src, Piranha.Models.DynamicPost dest) { // Clear the block list dest.Blocks.Clear(); // And rebuild it foreach (var srcBlock in src.Blocks) { dest.Blocks.Add(srcBlock.Value); } }
/// <summary> /// Loads the available blocks from the source model into the destination. /// </summary> /// <param name="src">The source</param> /// <param name="dest">The destination</param> private void LoadBlocks(Piranha.Models.DynamicPost src, PostEditModel dest) { foreach (var srcBlock in src.Blocks) { dest.Blocks.Add(new ContentEditBlock() { Id = srcBlock.Id, CLRType = srcBlock.GetType().FullName, Value = srcBlock }); } }
/// <summary> /// Loads the available blocks from the source model into the destination. /// </summary> /// <param name="src">The source</param> /// <param name="dest">The destination</param> private void LoadBlocks(Piranha.Models.DynamicPost src, PostEditModel dest) { foreach (var srcBlock in src.Blocks) { dest.Blocks.Add(new ContentEditBlock { Id = srcBlock.Id, CLRType = srcBlock.GetType().FullName, IsGroup = typeof(Extend.BlockGroup).IsAssignableFrom(srcBlock.GetType()), Value = srcBlock }); } }
/// <summary> /// Loads all of the regions from the source model into the destination. /// </summary> /// <param name="src">The source</param> /// <param name="dest">The destination</param> private void LoadRegions(Piranha.Models.DynamicPost src, PostEditModel dest) { if (dest.PostType != null) { foreach (var region in dest.PostType.Regions) { var regions = (IDictionary <string, object>)src.Regions; if (regions.ContainsKey(region.Id)) { var editRegion = CreateRegion(region, regions[region.Id]); dest.Regions.Add(editRegion); } } } }