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); } }
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(); }
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); } }