Ejemplo n.º 1
0
        public AlbumForUserForApiContract(
            AlbumForUser albumForUser,
            ContentLanguagePreference languagePreference,
            IEntryThumbPersister thumbPersister,
            bool ssl,
            AlbumOptionalFields fields,
            bool shouldShowCollectionStatus)
        {
            Album  = new AlbumForApiContract(albumForUser.Album, null, languagePreference, thumbPersister, ssl, fields, SongOptionalFields.None);
            Rating = albumForUser.Rating;

            if (shouldShowCollectionStatus)
            {
                MediaType      = albumForUser.MediaType;
                PurchaseStatus = albumForUser.PurchaseStatus;
            }
        }
        public AlbumForUserForApiContract(
            AlbumForUser albumForUser,
            ContentLanguagePreference languagePreference,
            IAggregatedEntryImageUrlFactory thumbPersister,
            AlbumOptionalFields fields,
            bool shouldShowCollectionStatus,
            bool includeUser = false)
        {
            Album  = new AlbumForApiContract(albumForUser.Album, null, languagePreference, thumbPersister, fields, SongOptionalFields.None);
            Rating = albumForUser.Rating;

            if (shouldShowCollectionStatus)
            {
                MediaType      = albumForUser.MediaType;
                PurchaseStatus = albumForUser.PurchaseStatus;
            }

            if (includeUser)
            {
                User = new UserForApiContract(albumForUser.User);
            }
        }
Ejemplo n.º 3
0
        public ArtistDetailsContract(Artist artist, ContentLanguagePreference languagePreference, IUserPermissionContext userContext, IEntryImagePersister imageStore)
            : base(artist, languagePreference)
        {
            AllNames           = string.Join(", ", artist.AllNames.Where(n => n != Name));
            BaseVoicebank      = artist.BaseVoicebank != null ? new ArtistContract(artist.BaseVoicebank, languagePreference) : null;
            CanRemoveTagUsages = EntryPermissionManager.CanRemoveTagUsages(userContext, artist);
            CreateDate         = artist.CreateDate;
            Description        = artist.Description;
            Draft          = artist.Status == EntryStatus.Draft;
            TranslatedName = new TranslatedStringContract(artist.TranslatedName);
            LatestAlbums   = new AlbumForApiContract[] {};
            LatestSongs    = new SongForApiContract[] {};
            OwnerUsers     = artist.OwnerUsers.Select(u => new UserContract(u.User)).ToArray();
            Pictures       = artist.Pictures.Select(p => new EntryPictureFileContract(p, imageStore)).ToArray();
            TopAlbums      = new AlbumForApiContract[] {};
            TopSongs       = new SongForApiContract[] {};
            WebLinks       = artist.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();

            CharacterDesigner = artist.ArtistLinksOfType(ArtistLinkType.CharacterDesigner, LinkDirection.ManyToOne, allowInheritance: true)
                                .Select(g => new ArtistContract(g, languagePreference)).FirstOrDefault();

            CharacterDesignerOf = artist.ArtistLinksOfType(ArtistLinkType.CharacterDesigner, LinkDirection.OneToMany)
                                  .Select(g => new ArtistContract(g, languagePreference)).OrderBy(a => a.Name).ToArray();

            if (artist.CanHaveChildVoicebanks)
            {
                var children = artist.ChildVoicebanks
                               .Where(c => !c.Deleted)
                               .Select(c => new ArtistContract(c, languagePreference))
                               .ToArray();

                // Show child voicebanks with release date first
                ChildVoicebanks = children
                                  .Where(c => c.ReleaseDate.HasValue)
                                  .OrderBy(c => c.ReleaseDate)
                                  .Concat(children.Where(c => !c.ReleaseDate.HasValue))
                                  .ToArray();
            }
            else
            {
                ChildVoicebanks = new ArtistContract[0];
            }

            Groups = artist.ArtistLinksOfType(ArtistLinkType.Group, LinkDirection.ManyToOne)
                     .Select(g => new ArtistContract(g, languagePreference)).OrderBy(g => g.Name).ToArray();

            Illustrators = artist.ArtistLinksOfType(ArtistLinkType.Illustrator, LinkDirection.ManyToOne, allowInheritance: true)
                           .Select(g => new ArtistContract(g, languagePreference)).ToArray();

            IllustratorOf = artist.ArtistLinksOfType(ArtistLinkType.Illustrator, LinkDirection.OneToMany)
                            .Select(g => new ArtistContract(g, languagePreference)).OrderBy(a => a.Name).ToArray();

            Manager = artist.ArtistLinksOfType(ArtistLinkType.Manager, LinkDirection.ManyToOne, allowInheritance: true)
                      .Select(g => new ArtistContract(g, languagePreference)).FirstOrDefault();

            Members = artist.ArtistLinksOfType(ArtistLinkType.Group, LinkDirection.OneToMany)
                      .Select(g => new ArtistContract(g, languagePreference)).OrderBy(g => g.Name).ToArray();

            Tags = artist.Tags.ActiveUsages
                   .Select(u => new TagUsageForApiContract(u, languagePreference))
                   .OrderByDescending(t => t.Count).ToArray();

            VoiceProviders = artist.ArtistLinksOfType(ArtistLinkType.VoiceProvider, LinkDirection.ManyToOne, allowInheritance: true)
                             .Select(g => new ArtistContract(g, languagePreference)).OrderBy(a => a.Name).ToArray();

            Voicebanks = artist.ArtistLinksOfType(ArtistLinkType.VoiceProvider, LinkDirection.OneToMany)
                         .Select(g => new ArtistContract(g, languagePreference)).OrderBy(a => a.Name).ToArray();
        }
Ejemplo n.º 4
0
        private void InsertAlbum(AlbumForApiContract album)
        {
            logger.Info("Found new album: " + album.Name);
            if (insertAlbumCommand == null)
            {
                insertAlbumCommand             = connection.CreateCommand();
                insertAlbumCommand.CommandText =
                    "INSERT INTO dump_vocadb.albums " +
                    "(id, name, artiststring, createdate, defaultnamelanguage, disctype, ratingaverage, ratingcount, releasedate, status, version, defaultname, catalognumber) " +
                    "VALUES " +
                    "(@id, @name, @as, @cd, @dnl, @dt, @ra, @rc, @rd, @status, @version,@defaultname,@cn)";
                insertAlbumCommand.Parameters.Add("@id", NpgsqlDbType.Integer);
                insertAlbumCommand.Parameters.Add("@name", NpgsqlDbType.Varchar);
                insertAlbumCommand.Parameters.Add("@as", NpgsqlDbType.Varchar);
                insertAlbumCommand.Parameters.Add("@cd", NpgsqlDbType.Timestamp);
                insertAlbumCommand.Parameters.Add("@dnl", NpgsqlDbType.Varchar);
                insertAlbumCommand.Parameters.Add("@dt", NpgsqlDbType.Varchar);
                insertAlbumCommand.Parameters.Add("@ra", NpgsqlDbType.Double);
                insertAlbumCommand.Parameters.Add("@rc", NpgsqlDbType.Integer);
                insertAlbumCommand.Parameters.Add("@rd", NpgsqlDbType.Date);
                insertAlbumCommand.Parameters.Add("@status", NpgsqlDbType.Varchar);
                insertAlbumCommand.Parameters.Add("@version", NpgsqlDbType.Integer);
                insertAlbumCommand.Parameters.Add("@defaultname", NpgsqlDbType.Varchar);
                insertAlbumCommand.Parameters.Add("@cn", NpgsqlDbType.Varchar);
            }

            insertAlbumCommand.Parameters["@id"].Value   = album.Id;
            insertAlbumCommand.Parameters["@name"].Value = album.Name;
            insertAlbumCommand.Parameters["@as"].Value   = album.ArtistString;
            insertAlbumCommand.Parameters["@cd"].Value   = album.CreateDate;
            insertAlbumCommand.Parameters["@dnl"].Value  = album.DefaultNameLanguage;
            insertAlbumCommand.Parameters["@dt"].Value   = album.DiscType;
            insertAlbumCommand.Parameters["@ra"].Value   = album.RatingAverage;
            insertAlbumCommand.Parameters["@rc"].Value   = album.RatingCount;
            if (album.ReleaseDate.IsEmpty.Value)
            {
                insertAlbumCommand.Parameters["@rd"].Value = DBNull.Value;
            }
            else
            if (album.ReleaseDate.Day.HasValue && album.ReleaseDate.Month.HasValue)
            {
                insertAlbumCommand.Parameters["@rd"].Value = new DateTime(album.ReleaseDate.Year.Value, album.ReleaseDate.Month.Value, album.ReleaseDate.Day.Value);
            }
            else
            {
                insertAlbumCommand.Parameters["@rd"].Value = DBNull.Value;
            }
            insertAlbumCommand.Parameters["@status"].Value  = album.Status;
            insertAlbumCommand.Parameters["@version"].Value = album.Version.Value;
            if (album.DefaultName != null)
            {
                insertAlbumCommand.Parameters["@defaultname"].Value = album.DefaultName;
            }
            else
            {
                insertAlbumCommand.Parameters["@defaultname"].Value = DBNull.Value;
            }

            if (album.CatalogNumber != null)
            {
                insertAlbumCommand.Parameters["@cn"].Value = album.CatalogNumber;
            }
            else
            {
                insertAlbumCommand.Parameters["@cn"].Value = DBNull.Value;
            }

            insertAlbumCommand.ExecuteNonQuery();

            if (album.MainPicture != null)
            {
                SetAlbumCover(album.MainPicture, album.Id.Value);
            }
        }