Beispiel #1
0
        public Chapter Convert(DbTranslatedChapter input)
        {
            input.Validate();

            var native = input.Languages !.Native !;
            var target = input.Languages !.Target !;

            var targets = input.Pages.Select(page => Convert(page.Target !, target));

            object Assembly(DbTranslatedPage page)
            {
                var assembly = _argumentAssemblies.GetAssembly(page.PageType);

                return(assembly.Assemble(targets !, page.Native !.ExpressionId));
            }

            var name        = Convert(input.Name !, native);
            var description = Convert(input.Description !, native);
            var pictureId   = input.PictureId;
            var pages       = input.Pages.Select(page => new Page(page.PageType, Convert(page.Native !, native), Assembly(page))).ToArray();

            return(new Chapter(input.Id, input.Level, name, description, pages, pictureId));
        }