public IHttpActionResult Get()
        {
            var booksUrl      = BookLinkCreator.CreateBooksLink(Url);
            var charactersUrl = CharacterLinkCreator.CreateCharactersLink(Url);
            var housesUrl     = HouseLinkCreator.CreateHousesLink(Url);

            return(Ok(new Endpoints
            {
                Books = booksUrl,
                Characters = charactersUrl,
                Houses = housesUrl
            }));
        }
Esempio n. 2
0
        public Book Map(IBook input, UrlHelper urlHelper)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }
            if (urlHelper == null)
            {
                throw new ArgumentNullException(nameof(urlHelper));
            }

            var bookUrl          = BookLinkCreator.CreateBookLink(input, urlHelper);
            var characterUrls    = input.Characters?.Select(c => CharacterLinkCreator.CreateCharacterLink(c, urlHelper));
            var povCharacterUrls = input.POVCharacters?.Select(c => CharacterLinkCreator.CreateCharacterLink(c, urlHelper));
            var mediaType        = _mediaTypeMapper.Map(input.MediaType, urlHelper);

            return(new Book(bookUrl, input.Name, input.ISBN, input.Authors, input.NumberOfPages, input.Publisher,
                            input.Country, mediaType, input.Released, characterUrls, povCharacterUrls));
        }
        public Character Map(ICharacter input, UrlHelper urlHelper)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }
            if (urlHelper == null)
            {
                throw new ArgumentNullException(nameof(urlHelper));
            }

            var url          = CharacterLinkCreator.CreateCharacterLink(input, urlHelper);
            var fatherUrl    = CharacterLinkCreator.CreateCharacterLink(input.Father, urlHelper);
            var motherUrl    = CharacterLinkCreator.CreateCharacterLink(input.Mother, urlHelper);
            var spouseUrl    = CharacterLinkCreator.CreateCharacterLink(input.Spouse, urlHelper);
            var booksUrls    = input.Books?.Select(b => BookLinkCreator.CreateBookLink(b, urlHelper));
            var povBooksUrls = input.PovBooks?.Select(b => BookLinkCreator.CreateBookLink(b, urlHelper));
            var allegiances  = input.Allegiances?.Select(h => HouseLinkCreator.CreateHouseLink(h, urlHelper));

            return(new Character(url)
            {
                Name = input.Name ?? string.Empty,
                Gender = _genderMapper.Map(input.Gender, urlHelper),
                Culture = input.Culture ?? string.Empty,
                Born = input.Born ?? string.Empty,
                Died = input.Died ?? string.Empty,
                Father = fatherUrl,
                Mother = motherUrl,
                Spouse = spouseUrl,
                Books = booksUrls ?? Enumerable.Empty <string>(),
                PovBooks = povBooksUrls ?? Enumerable.Empty <string>(),
                Aliases = input.Aliases ?? Enumerable.Empty <string>(),
                Titles = input.Titles ?? Enumerable.Empty <string>(),
                PlayedBy = input.PlayedBy ?? Enumerable.Empty <string>(),
                TvSeries = input.TvSeries ?? Enumerable.Empty <string>(),
                Allegiances = allegiances ?? Enumerable.Empty <string>()
            });
        }