Exemple #1
0
        public ActionResult DetailsById(int id = invalidId, string slug = null)
        {
            if (id == invalidId)
            {
                return(NoId());
            }

            // TODO: write test for null slug
            slug = slug ?? string.Empty;

            var tagName = queries.LoadTag(id, t => t.UrlSlug ?? string.Empty);

            if (slug != tagName)
            {
                return(RedirectToActionPermanent("DetailsById", new { id, slug = tagName }));
            }

            var contract = queries.GetDetails(id);

            var prop = PageProperties;

            var thumbUrl = Url.EntryImageOld(contract.Thumb, ImageSize.Original);

            if (!string.IsNullOrEmpty(thumbUrl))
            {
                PageProperties.OpenGraph.Image = thumbUrl;
            }

            prop.Description = markdownParser.GetPlainText(contract.Description.EnglishOrOriginal);

            return(RenderDetails(contract));
        }
Exemple #2
0
        private TagForApiContract Merge(int sourceId, int targetId)
        {
            var permissionContext = new FakePermissionContext(new UserWithPermissionsContract(Db.UserWithEditPermissions, ContentLanguagePreference.Default));

            return(context.RunTest(repository => {
                var queries = new TagQueries(repository, permissionContext, new FakeEntryLinkFactory(), new InMemoryImagePersister(), new InMemoryImagePersister(),
                                             new FakeUserIconFactory(), new EnumTranslations());

                queries.Merge(sourceId, targetId);

                var result = queries.LoadTag(targetId, t => new TagForApiContract(t, ContentLanguagePreference.English, TagOptionalFields.None));

                return result;
            }));
        }
Exemple #3
0
        public async Task <ActionResult> EntryToolTip(string url, string callback)
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                return(HttpStatusCodeResult(HttpStatusCode.BadRequest, "URL must be specified"));
            }

            var entryId = _entryUrlParser.Parse(url, allowRelative: true);

            if (entryId.IsEmpty)
            {
                return(HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid URL"));
            }

            var data = string.Empty;
            var id   = entryId.Id;

            switch (entryId.EntryType)
            {
            case EntryType.Album:
                data = await RenderPartialViewToStringAsync("AlbumWithCoverPopupContent", _albumService.GetAlbum(id));

                break;

            case EntryType.Artist:
                data = await RenderPartialViewToStringAsync("ArtistPopupContent", _artistService.GetArtist(id));

                break;

            case EntryType.ReleaseEvent:
                data = await RenderPartialViewToStringAsync("_EventPopupContent", _eventQueries.GetOne(id, ContentLanguagePreference.Default, ReleaseEventOptionalFields.AdditionalNames | ReleaseEventOptionalFields.MainPicture | ReleaseEventOptionalFields.Series));

                break;

            case EntryType.Song:
                data = await RenderPartialViewToStringAsync("SongPopupContent", _songService.GetSong(id));

                break;

            case EntryType.Tag:
                data = await RenderPartialViewToStringAsync("_TagPopupContent", _tagQueries.LoadTag(id, t =>
                                                                                                    new TagForApiContract(t, _entryThumbPersister, ContentLanguagePreference.Default, TagOptionalFields.AdditionalNames | TagOptionalFields.MainPicture)));

                break;
            }

            return(Json(data, callback));
        }
Exemple #4
0
 public TagForApiContract GetById(int id, TagOptionalFields fields = TagOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default)
 => _queries.LoadTag(id, t => new TagForApiContract(t, _thumbPersister, lang, fields));
Exemple #5
0
        public TagForApiContract GetById(int id, TagOptionalFields fields = TagOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default)
        {
            var tag = queries.LoadTag(id, t => new TagForApiContract(t, thumbPersister, WebHelper.IsSSL(Request), lang, fields));

            return(tag);
        }
Exemple #6
0
        public ActionResult Merge(int id)
        {
            var tag = _queries.LoadTag(id, t => new TagBaseContract(t, PermissionContext.LanguagePreference));

            return(View(tag));
        }