コード例 #1
0
        public List <Album> GetAllTheAlbumsOf(string email)
        {
            AuthQueriesCommands  AuthCQ  = new AuthQueriesCommands();
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            return(AlbumCQ.GetAllAlbumsOf(AuthCQ.GetAccountByEmail(email)));
        }
コード例 #2
0
        public bool IsAccountContainsThisAlbum(string email, Guid albumId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();
            AuthQueriesCommands  AuthCQ  = new AuthQueriesCommands();

            var account = AuthCQ.GetAccountByEmail(email.ToLower());

            if (account == null)
            {
                return(false);
            }

            var albums = AlbumCQ.GetAllAlbumsOf(account);

            if (albums.Count > 0)
            {
                if (albums.Any(rec => rec.Id == albumId))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
        public int EditAlbum(Guid albumId, string albumName, int totalTrack)
        {
            AlbumQueriesCommands albumCQ = new AlbumQueriesCommands();

            Album album = albumCQ.GetAlbumById(albumId);

            if (album != null)
            {
                if (albumCQ.AlbumEmptiness(album) != 1)
                {
                    //Can't edit album as one song alredy registered under the album
                    return(2);
                }
                album.Album_Name  = albumName;
                album.Total_Track = totalTrack;

                var result = albumCQ.EditAlbumDetails(album);

                if (result != 1)
                {
                    //Internal Error occured while changing data for the album
                    return(3);
                }
                else
                {
                    //Album details changed Successfully
                    return(1);
                }
            }
            else
            {
                //No album found with the Id provided
                return(0);
            }
        }
コード例 #4
0
        public int CreateNewAlbum(string email, string albumName, int totalTrack)
        {
            logic = new GeneralLogics();
            PurchaseRecordQueriesCommands purchaseCQ = new PurchaseRecordQueriesCommands();
            AlbumQueriesCommands          AlbumCQ    = new AlbumQueriesCommands();
            AuthQueriesCommands           AuthCQ     = new AuthQueriesCommands();

            Account account = AuthCQ.GetAccountByEmail(email);

            if (account != null)
            {
                var GetListOfUnUsedPurchase = purchaseCQ.GetUnUsedAlbumPurchaseRecordOf(account);
                if (GetListOfUnUsedPurchase.Count > 0)
                {
                    Album album = new Album();

                    album.Id                  = logic.CreateUniqueId();
                    album.Album_Name          = albumName;
                    album.Total_Track         = totalTrack;
                    album.Album_Creation_Date = logic.CurrentIndianTime();
                    album.Submitted_Track     = 0;
                    album.PurchaseTrack_RefNo = GetListOfUnUsedPurchase.First().Id;

                    var resultCreateAlbum = AlbumCQ.CreateAlbum(album);
                    if (resultCreateAlbum == 1)
                    {
                        var purchaseRecord = purchaseCQ.GetPurchaseRecordById(album.PurchaseTrack_RefNo);

                        purchaseRecord.Usage_Date = logic.CurrentIndianTime();
                        int resultPurchaseRecordUpdate = purchaseCQ.UpdatePurchaseRecord(purchaseRecord);

                        if (resultPurchaseRecordUpdate == 1)
                        {
                            //Album created, PurchaseRecord is modified with UsageDate. Operation Completed successfully
                            return(1);
                        }
                        else
                        {
                            //Internal error occured while updating the record in PurchaseRecord table.Operation failed
                            return(4);
                        }
                    }
                    else
                    {
                        //Album creation failed
                        return(3);
                    }
                }
                else
                {
                    //No purchase left to create an music album.
                    return(2);
                }
            }
            else
            {
                //No Account Found
                return(0);
            }
        }
コード例 #5
0
        public List <AlbumTrackMaster> GetAllTracksWithAlbumDetails(Guid albumId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            var result = AlbumCQ.GetAllTracksWithAlbumDetails(albumId);

            //Result could be null or a list consists of Tracks with store submission report and all.
            return(result);
        }
コード例 #6
0
        public List <SingleTrackDetail> GetTrackDetailsOfAlbum(Guid albumId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            var result = AlbumCQ.GetAllTracksOfAlbum(albumId);

            //Result could be null or a list consists of Tracks
            return(result);
        }
コード例 #7
0
        public int UpdateStoreSubmissionStatusForAlbumTrack(Guid albumId, Guid trackId, int statusCode)
        {
            AlbumQueriesCommands albumCQ = new AlbumQueriesCommands();

            if (albumCQ.UpdateStoreSubmissionStatus(albumId, trackId, statusCode) == 1)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }
コード例 #8
0
        public bool IsAlbumFull(Guid albumId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            if (AlbumCQ.AlbumEmptiness(AlbumCQ.GetAlbumById(albumId)) == 3)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #9
0
        public int DeleteAlbum(Guid albumId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            var albumObject = AlbumCQ.GetAlbumById(albumId);

            if (albumObject != null)
            {
                var trackListOftheAlbum = AlbumCQ.GetAllTracksOfAlbum(albumId);
                if (trackListOftheAlbum.Count == 0)
                {
                    var resultOfDeletingAlbum = AlbumCQ.DeleteAlbum(albumObject);
                    if (resultOfDeletingAlbum == 1)
                    {
                        return(1);
                    }
                    else
                    {
                        return(5);
                    }
                }
                else if (trackListOftheAlbum.Count > 0)
                {
                    var resultOfRemovingSolos = AlbumCQ.RemoveSingleTracksFromAlbum(trackListOftheAlbum);
                    if (resultOfRemovingSolos == 1)
                    {
                        var resultOfDeletingAlbum = AlbumCQ.DeleteAlbum(albumObject);
                        if (resultOfDeletingAlbum == 1)
                        {
                            return(1);
                        }
                        else
                        {
                            return(4);
                        }
                    }
                    else
                    {
                        return(3);
                    }
                }
                else
                {
                    return(2);
                }
            }
            else
            {
                return(0);
            }
        }
コード例 #10
0
        public bool IsAlbumExpired(Guid albumId)
        {
            logic = new GeneralLogics();
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            if (AlbumCQ.GetAlbumById(albumId).PurchaseRecord.Usage_Exp_Date < logic.CurrentIndianTime())
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #11
0
        public int CreateNewTrackForAlbum(Guid albumId, string TrackTitle, string ArtistName, bool ArtistAlreadyInSpotify, string ArtistSpotifyUrl, DateTime ReleaseDate, string Genre, string CopyrightClaimerName, string AuthorName, string ComposerName, string ArrangerName, string ProducerName, bool AlreadyHaveAnISRC, string ISRC_Number, int PriceTier, bool ExplicitContent, bool IsTrackInstrumental, string LyricsLanguage, string TrackZipFileLink, string ArtWork_Link)
        {
            AlbumQueriesCommands          AlbumCQ    = new AlbumQueriesCommands();
            PurchaseRecordQueriesCommands PurchaseCQ = new PurchaseRecordQueriesCommands();

            logic = new GeneralLogics();

            var albumObject = AlbumCQ.GetAlbumById(albumId);

            if (albumObject != null)
            {
                if (PurchaseCQ.GetPurchaseRecordById(albumObject.PurchaseTrack_RefNo).Usage_Exp_Date < logic.CurrentIndianTime())
                {
                    //Can't add more track in the album as purchase expired
                    return(7);
                }

                if (albumObject.Total_Track <= albumObject.Submitted_Track)
                {
                    //can't add more track in the album as the album is full
                    return(8);
                }

                byte ArtistSpotifyAppearance   = 1;
                byte PresenceOfISRCnumber      = 1;
                byte PresenceOfExplicitContent = 1;
                byte InstrumentalTrackPresence = 1;

                if (ArtistAlreadyInSpotify == false)
                {
                    ArtistSpotifyAppearance = 0;
                }
                if (AlreadyHaveAnISRC == false)
                {
                    PresenceOfISRCnumber = 0;
                }
                if (IsTrackInstrumental == false)
                {
                    InstrumentalTrackPresence = 0;
                }
                if (ExplicitContent == false)
                {
                    PresenceOfExplicitContent = 0;
                }
                SingleTrackDetail std = new SingleTrackDetail();

                std.Id                     = logic.CreateUniqueId();
                std.TrackTitle             = TrackTitle;
                std.ArtistName             = ArtistName;
                std.ArtistAlreadyInSpotify = ArtistSpotifyAppearance;
                std.ArtistSpotifyUrl       = ArtistSpotifyUrl;
                std.ReleaseDate            = ReleaseDate;
                std.Genre                  = Genre;
                std.CopyrightClaimerName   = CopyrightClaimerName;
                std.AuthorName             = AuthorName;
                std.ComposerName           = ComposerName;
                std.ArrangerName           = ArrangerName;
                std.ProducerName           = ProducerName;
                std.AlreadyHaveAnISRC      = PresenceOfISRCnumber;
                std.ISRC_Number            = ISRC_Number;
                std.PriceTier              = PriceTier;
                std.ExplicitContent        = PresenceOfExplicitContent;
                std.IsTrackInstrumental    = InstrumentalTrackPresence;
                std.LyricsLanguage         = LyricsLanguage;
                std.TrackZipFileLink       = TrackZipFileLink;
                std.ArtworkFileLink        = ArtWork_Link.Trim();

                TrackQueriesCommands TrackCQ = new TrackQueriesCommands();
                //add single track
                var singleTrackSaveResult = TrackCQ.AddTrack(std);

                if (singleTrackSaveResult == 1)
                {
                    //Link track with the album. Work on albumtrackMaster table
                    AlbumTrackMaster atm = new AlbumTrackMaster();

                    atm.Id           = logic.CreateUniqueId();
                    atm.Album_Id     = albumId;
                    atm.Track_Id     = std.Id;
                    atm.Submitted_At = logic.CurrentIndianTime();
                    //Status = pending
                    atm.StoreSubmissionStatus = 2;

                    var atmSaveResult = TrackCQ.AddtoAlbumTrackMaster(atm);

                    if (atmSaveResult == 1)
                    {
                        //increment the number of the submitted track for the album
                        albumObject.Submitted_Track = albumObject.Submitted_Track + 1;

                        var albumEditResult = AlbumCQ.EditAlbumDetails(albumObject);

                        if (albumEditResult == 1)
                        {
                            //if it's the first track of the album then set purchase record usage expire time
                            albumObject = AlbumCQ.GetAlbumById(albumId);
                            if (albumObject != null)
                            {
                                //if (albumObject.Submitted_Track == 1)
                                //{
                                //PurchaseRecord pr = PurchaseCQ.GetPurchaseRecordById(albumObject.PurchaseTrack_RefNo);
                                //if (pr != null)
                                //{
                                //     pr.Usage_Exp_Date = logic.CurrentIndianTime().AddHours(24);
                                //     var purchaseEditResult = PurchaseCQ.UpdatePurchaseRecord(pr);
                                //     if (purchaseEditResult == 1)
                                //     {
                                //          //purchase expire date set
                                //          return 1;
                                //     }
                                //     else
                                //     {
                                //         //Error while setting the expire date
                                //         return 11;
                                //     }
                                //}
                                //else
                                //{
                                //    //error while fetching the purchase record of the album
                                //    return 10;
                                //}
                                //}
                                return(1);
                            }
                            else
                            {
                                //error while fetching the album
                                return(9);
                            }
                        }
                        else
                        {
                            //Error occured while updating album record
                            return(6);
                        }
                    }
                    else
                    {
                        //Error occured while adding albumTrackMaster record
                        return(5);
                    }
                }
                else
                {
                    //Error occured while saving single track to the database
                    return(4);
                }
            }
            else
            {
                //No album found with the provided Album Id
                return(0);
            }
        }
コード例 #12
0
        public List <AlbumTrackMaster> GetAllAlbumsWithTracks()
        {
            AlbumQueriesCommands albumCQ = new AlbumQueriesCommands();

            return(albumCQ.GetAllAlbumsWithTrackDetail());
        }
コード例 #13
0
        public AlbumTrackMaster GetAlbumDetail(Guid albumId, Guid trackId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            return(AlbumCQ.GetAlbumTrackObject(albumId, trackId));
        }
コード例 #14
0
        public Album GetAlbumById(Guid albumId)
        {
            AlbumQueriesCommands AlbumCQ = new AlbumQueriesCommands();

            return(AlbumCQ.GetAlbumById(albumId));
        }