public static void Update(this Page pageModel, Database dc) { if (pageModel.Blocks != null) { pageModel.Blocks.ForEach(block => { var existedBlock = dc.Table <Block>().Find(block.Id); var pageBlock = dc.Table <BlockInPage>().FirstOrDefault(x => x.PageId == pageModel.Id && x.BlockId == block.Id); if (existedBlock == null) { var dmBlock = block.ToObject <Block>(); dc.Table <Block>().Add(dmBlock); } if (pageBlock == null) { var dm = new BlockInPage { BlockId = block.Id, PageId = pageModel.Id }; dm.Position = block.Position; dc.Table <BlockInPage>().Add(dm); } else { pageBlock.Position = block.Position; } }); } }
public static bool Add(this Page pageModel, Database dc) { if (dc.Table <Page>().Any(x => x.Id == pageModel.Id)) { return(false); } dc.Table <Page>().Add(pageModel); if (pageModel.Blocks != null) { pageModel.Blocks.ForEach(block => { /*if(!String.IsNullOrEmpty(block.Name)) * { * var dmBlock = new DomainModel<BlockEntity>(pageModel.Dc, block); * dmBlock.AddEntity(); * }*/ var dm = new BlockInPage { BlockId = block.Id, PageId = pageModel.Id }; dm.Position = block.Position; dc.Table <BlockInPage>().Add(dm); }); } return(true); }