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);
        }