Пример #1
0
        public RelationshipView Render(RelationshipModel source, int dictionaryId)
        {
            var result = source.Map <RelationshipModel, RelationshipView>();

            result.RelationType = _enumRenderer.Render(source.RelationType);

            var links = new List <LinkView>
            {
                LinkRenderer.Render("GetRelationById", RelTypes.Self, new { id = dictionaryId, relationshipId = source.Id }),
                LinkRenderer.Render("GetWordById", RelTypes.SourceWord, new { id = dictionaryId, wordId = source.SourceWordId }),
                LinkRenderer.Render("GetWordById", RelTypes.RelatedWord, new { id = dictionaryId, wordId = source.RelatedWordId })
            };

            var link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Update));

            if (link != null)
            {
                links.Add(link);
            }
            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Delete));
            if (link != null)
            {
                links.Add(link);
            }

            result.Links = links;
            return(result);
        }
Пример #2
0
        public PageView <WordView> Render(PageRendererArgs <WordModel> source)
        {
            var page = new PageView <WordView>(source.Page.PageCount, source.RouteArguments.PageSize, source.RouteArguments.PageNumber)
            {
                Data = source.Page.Data.Select(x => _wordIndexRenderer.Render(x))
            };

            var links = new List <LinkView>
            {
                LinkRenderer.Render(source.RouteName, RelTypes.Self, CreateRouteParameters(source, page.CurrentPageIndex, page.PageSize))
            };

            if (page.CurrentPageIndex < page.PageCount)
            {
                links.Add(LinkRenderer.Render(source.RouteName, RelTypes.Next, CreateRouteParameters(source, page.CurrentPageIndex + 1, page.PageSize)));
            }

            if (page.CurrentPageIndex > 1)
            {
                links.Add(LinkRenderer.Render(source.RouteName, RelTypes.Previous, CreateRouteParameters(source, page.CurrentPageIndex - 1, page.PageSize)));
            }

            page.Links = links;

            return(page);
        }
Пример #3
0
        public EntryView Render(EntryModel model)
        {
            if (model == null)
            {
                var links = new List <LinkView>
                {
                    LinkRenderer.Render("Entry", RelTypes.Self),
                    LinkRenderer.Render("GetDictionaries", RelTypes.Dictionaries),
                    LinkRenderer.Render("GetLanguages", RelTypes.Languages),
                    LinkRenderer.Render("GetAttributes", RelTypes.Attributes),
                    LinkRenderer.Render("GetRelationTypes", RelTypes.RelationshipTypes),
                    LinkRenderer.Render("GetWordAlternatives", RelTypes.Thesaurus, new { word = "word" })
                };
                return(new EntryView {
                    Links = links
                });
            }

            return(new EntryView
            {
                Links = new List <LinkView>
                {
                    LinkRenderer.RenderOrReRoute(model.Links, "Entry", RelTypes.Self),
                    LinkRenderer.RenderOrReRoute(model.Links, "GetDictionaries", RelTypes.Dictionaries),
                    LinkRenderer.RenderOrReRoute(model.Links, "GetLanguages", RelTypes.Languages),
                    LinkRenderer.RenderOrReRoute(model.Links, "GetAttributes", RelTypes.Attributes),
                    LinkRenderer.RenderOrReRoute(model.Links, "GetRelationTypes", RelTypes.RelationshipTypes),
                    LinkRenderer.RenderOrReRoute(model.Links, "GetWordAlternatives", RelTypes.Thesaurus, new { word = "word" })
                }
            });
        }
Пример #4
0
        public TranslationView Render(TranslationModel source, int dictionaryId)
        {
            if (source == null)
            {
                return(null);
            }

            var result = source.Map <TranslationModel, TranslationView>();

            result.Language = _enumRenderer.Render((LanguageType)source.LanguageId);

            var links = new List <LinkView>
            {
                LinkRenderer.Render("GetTranslationById", RelTypes.Self, new { id = dictionaryId, translationId = source.Id }),
                LinkRenderer.Render("GetWordById", RelTypes.Word, new { id = dictionaryId, wordId = source.WordId })
            };

            var link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Update));

            if (link != null)
            {
                links.Add(link);
            }
            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Delete));
            if (link != null)
            {
                links.Add(link);
            }

            result.Links = links;
            return(result);
        }
Пример #5
0
        public DictionaryView Render(DictionaryModel source)
        {
            var links = new List <LinkView>
            {
                LinkRenderer.RenderOrReRoute(source.Links, "GetDictionaryById", RelTypes.Self, new { id = source.Id }),
                LinkRenderer.RenderOrReRoute(source.Links, "GetWords", RelTypes.Index, new { id = source.Id }),
                LinkRenderer.RenderOrReRoute(source.Links, "SearchDictionary", RelTypes.Search, new { id = source.Id }),
            };

            if (source.Links != null)
            {
                links.AddRange(source.Links
                               .Where(l => l.Rel == RelTypes.Download)
                               .Select(downloadLink => LinkRenderer.RenderOrReRoute(source.Links, "DownloadDictionary", RelTypes.Download, new { id = source.Id, format = downloadLink.Type })));
            }

            var indexes = new List <LinkView>(_indexes.Select(i => LinkRenderer.RenderOrReRoute(source.Indexes, "GetWordsListStartWith", i,
                                                                                                new { id = source.Id, startingWith = i })));

            var result = source.Map <DictionaryModel, DictionaryView>();

            result.Links   = links;
            result.Indexes = indexes;
            return(result);
        }
Пример #6
0
        public MeaningView Render(MeaningModel source, int dictionaryId)
        {
            var result = source.Map <MeaningModel, MeaningView>();

            var links = new List <LinkView>
            {
                LinkRenderer.Render("GetMeaningById", RelTypes.Self, new { id = dictionaryId, meaningId = source.Id }),
                LinkRenderer.Render("GetWordById", RelTypes.Word, new { id = dictionaryId, wordId = source.WordId })
            };

            var link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Update));

            if (link != null)
            {
                links.Add(link);
            }
            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Delete));
            if (link != null)
            {
                links.Add(link);
            }

            result.Links = links;
            return(result);
        }
        public DictionariesView Render(DictionariesModel source)
        {
            var links = new List <LinkView>
            {
                LinkRenderer.RenderOrReRoute(source.Links, "GetDictionaries", RelTypes.Self)
            };


            var view = source.Map <DictionariesModel, DictionariesView>();

            view.Links = links;
            view.Items = source.Items.Select(d => _dictionaryRenderer.Render(d));
            return(view);
        }
Пример #8
0
        public WordView Render(WordModel source)
        {
            var result = source.Map <WordModel, WordView>();

            var links = new List <LinkView>
            {
                LinkRenderer.RenderOrReRoute(source.Links, "GetWordById", RelTypes.Self, new { id = source.DictionaryId, wordId = result.Id }),
                LinkRenderer.RenderOrReRoute(source.Links, "GetWordMeaningByWordId", RelTypes.Meanings, new { id = source.DictionaryId, wordId = result.Id }),
                LinkRenderer.RenderOrReRoute(source.Links, "GetWordTranslationsById", RelTypes.Translations, new { id = source.DictionaryId, wordId = result.Id }),
                LinkRenderer.RenderOrReRoute(source.Links, "GetWordRelationsById", RelTypes.Relationships, new { id = source.DictionaryId, wordId = result.Id }),
                LinkRenderer.RenderOrReRoute(source.Links, "GetDictionaryById", RelTypes.Dictionary, new { id = source.DictionaryId })
            };

            var link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Update));

            if (link != null)
            {
                links.Add(link);
            }
            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.Delete));
            if (link != null)
            {
                links.Add(link);
            }

            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.AddMeaning));
            if (link != null)
            {
                links.Add(link);
            }

            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.AddTranslation));
            if (link != null)
            {
                links.Add(link);
            }

            link = LinkRenderer.ReRoute(source.Links.WithRel(RelTypes.AddRelation));
            if (link != null)
            {
                links.Add(link);
            }

            result.Links = links;
            return(result);
        }