Beispiel #1
0
        public void UpdateAllReleaseEventNames(string old, string newName)
        {
            ParamIs.NotNullOrWhiteSpace(() => old);
            ParamIs.NotNullOrWhiteSpace(() => newName);

            old     = old.Trim();
            newName = newName.Trim();

            if (old.Equals(newName))
            {
                return;
            }

            VerifyManageDatabase();

            HandleTransaction(session => {
                AuditLog("replacing release event name '" + old + "' with '" + newName + "'", session);

                var albums = session.Query <Album>().Where(a => a.OriginalRelease.EventName == old).ToArray();

                foreach (var a in albums)
                {
                    a.OriginalRelease.EventName = newName;
                    session.Update(a);
                }
            });
        }
Beispiel #2
0
        private void UpdateAllReleaseEventNames(IRepositoryContext <ReleaseEvent> ctx, string old, string newName)
        {
            ParamIs.NotNullOrWhiteSpace(() => old);
            ParamIs.NotNullOrWhiteSpace(() => newName);

            old     = old.Trim();
            newName = newName.Trim();

            if (old.Equals(newName))
            {
                return;
            }

            ctx.AuditLogger.AuditLog(string.Format("replacing release event name '{0}' with '{1}'", old, newName));

            var albums = ctx.OfType <Album>()
                         .Query()
                         .Where(a => a.OriginalRelease.EventName == old)
                         .ToArray();

            foreach (var a in albums)
            {
                NHibernateUtil.Initialize(a.CoverPictureData);
                a.OriginalRelease.EventName = newName;
                ctx.Update(a);
            }
        }
Beispiel #3
0
        public async Task <TagBaseContract> Create(string name)
        {
            ParamIs.NotNullOrWhiteSpace(() => name);

            PermissionContext.VerifyManageDatabase();

            return(await _repository.HandleTransactionAsync(async ctx =>
            {
                var duplicateName = await ctx.Query <TagName>()
                                    .Select(t => t.Value)
                                    .Where(t => t == name)
                                    .VdbFirstOrDefaultAsync();

                if (duplicateName != null)
                {
                    throw new DuplicateTagNameException(duplicateName);
                }

                var factory = new TagFactoryRepository(ctx, ctx.CreateAgentLoginData(PermissionContext));
                var tag = await factory.CreateTagAsync(name);

                await ctx.AuditLogger.AuditLogAsync($"created tag {_entryLinkFactory.CreateEntryLink(tag)}");

                return new TagBaseContract(tag, PermissionContext.LanguagePreference);
            }));
        }
Beispiel #4
0
        public PartialViewResult AddNewAlbum(int artistId, string newAlbumName)
        {
            ParamIs.NotNullOrWhiteSpace(() => newAlbumName);

            var link = new AlbumForArtistEditContract(newAlbumName);

            return(PartialView("ArtistForAlbumRow", link));
        }
Beispiel #5
0
        public WebLink(string description, string url, WebLinkCategory category)
        {
            ParamIs.NotNull(() => description);
            ParamIs.NotNullOrWhiteSpace(() => url);

            Description = description;
            Url         = url;
            Category    = category;
        }
Beispiel #6
0
        public PartialViewResult AddNewAlbum(int artistId, string newAlbumName)
        {
            ParamIs.NotNullOrWhiteSpace(() => newAlbumName);

            var link = new AlbumForArtistEditContract(newAlbumName);

            //var link = MvcApplication.Services.Albums.CreateForArtist(artistId, newAlbumName);

            return(PartialView("ArtistForAlbumRow", link));
        }
Beispiel #7
0
        public virtual ArtistWebLink CreateWebLink(string description, string url, WebLinkCategory category)
        {
            ParamIs.NotNull(() => description);
            ParamIs.NotNullOrWhiteSpace(() => url);

            var link = new ArtistWebLink(this, description, url, category);

            WebLinks.Add(link);

            return(link);
        }
Beispiel #8
0
        /// <summary>
        /// Creates a new tag.
        /// </summary>
        /// <param name="name">Tag English name. Cannot be null or empty. Must be unique.</param>
        /// <returns>The created tag. Cannot be null.</returns>
        /// <exception cref="DuplicateTagNameException">If a tag with the specified name already exists.</exception>
        public TagBaseContract Create(string name)
        {
            ParamIs.NotNullOrWhiteSpace(() => name);

            PermissionContext.VerifyManageDatabase();

            return(repository.HandleTransaction(ctx => {
                var duplicateName = ctx.Query <TagName>()
                                    .Select(t => t.Value)
                                    .FirstOrDefault(t => t == name);

                if (duplicateName != null)
                {
                    throw new DuplicateTagNameException(duplicateName);
                }

                var factory = new TagFactoryRepository(ctx, ctx.CreateAgentLoginData(PermissionContext));
                var tag = factory.CreateTag(name);

                ctx.AuditLogger.AuditLog(string.Format("created tag {0}", entryLinkFactory.CreateEntryLink(tag)));

                return new TagBaseContract(tag, PermissionContext.LanguagePreference);
            }));
        }
Beispiel #9
0
        public SongInAlbumEditContract(string songName)
        {
            ParamIs.NotNullOrWhiteSpace(() => songName);

            SongName = songName;
        }