public TrackDto AddTrackToProjectById(int projectId, TrackDto track, string userName)
        {
            var projectTrack = new project_track()
            {
                projectid      = projectId,
                trackname      = track.TrackName,
                isworkingtitle = false,
                updatedby      = userName,
                updatedon      = DateTime.Now,
                createdby      = userName,
                createdon      = DateTime.Now,
                isrc           = track.Isrc,
                duration       = track.Duration,
                donotpublish   = false,
                trackorder     = track.TrackOrder,
                recordingid    = track.RecordingId
            };

            _projectTrackRepository.Add(projectTrack);

            _unitOfWork.Commit();

            track.Id = projectTrack.id;

            return(track);
        }
        public void CreateProject(ProjectCreationViewModel project, string userName)
        {
            var projectToCreate = new project_master
            {
                projectname      = project.BasicInfo.ProjectName ?? "",
                mainmanagerid    = null,
                projectstartdate = DateTime.Now,
                isworkingtitle   = project.BasicInfo.IsWorkingTitle,
                updatedby        = userName,
                updatedon        = DateTime.Now,
                createdby        = userName,
                createdon        = DateTime.Now,
                statuscode       = project.BasicInfo.ProjectStatus,
                removed          = false,
                organizationid   = project.PublisherId,
                mainartist       = project.BasicInfo.MainArtist,
                mainartistid     = project.BasicInfo.MainArtistId
            };

            _projectMasterRepository.Add(projectToCreate);
            _unitOfWork.Commit();
            var projectId = projectToCreate.id;

            foreach (var song in project.Songs)
            {
                var songToCreate = new project_track
                {
                    projectid      = projectId,
                    trackname      = song.Name,
                    isworkingtitle = false,
                    updatedby      = userName,
                    updatedon      = DateTime.Now,
                    createdby      = userName,
                    createdon      = DateTime.Now,
                    isrc           = song.Isrc,
                    duration       = song.Length,
                    donotpublish   = false,
                    trackorder     = song.Number,
                    recordingid    = song.Id
                };
                _projectTrackRepository.Add(songToCreate);
                _unitOfWork.Commit();
                var songId = songToCreate.id;

                song.Performers.ForEach(p => _projectTrackArtistRepository.Add(new project_track_artist
                {
                    projecttrackid = songId,
                    partyrealid    = p.Id,
                    rolecode       = p.Role.RoleCode,
                    instrumentcode = string.IsNullOrEmpty(p.Instrument.IdCode) ? null : p.Instrument.IdCode,
                    updatedby      = userName,
                    updatedon      = DateTime.Now,
                    createdby      = userName,
                    createdon      = DateTime.Now
                }));
            }
            _unitOfWork.Commit();
        }