public IActionResult AddMusician(AddMusicianRequest request)
 {
     try
     {
         _service.AddMusician(request);
         return(Ok());
     }
     catch (MusicianDoesNotAddedException exc)
     {
         return(BadRequest(exc.Message));
     }
 }
        public void AddMusician(AddMusicianRequest request)
        {
            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    if (request.Track != null)
                    {
                        var track = GetTrackByName(request.Track.TrackName);

                        if (track == null)
                        {
                            _context.Add(request.Track);
                            _context.SaveChanges();
                        }
                    }

                    var trackId = GetTrackByName(request.Track.TrackName).IdTrack;

                    var Musician = new Musician
                    {
                        FirstName = request.FirstName,
                        LastName  = request.LastName,
                        Nickname  = request.Nickname
                    };

                    _context.Musicians.Add(Musician);

                    var MusicianTrack = new MusicianTrack
                    {
                        IdTrack    = trackId,
                        IdMusician = _context.Musicians
                                     .Where(p => p.FirstName == Musician.FirstName && p.LastName == Musician.LastName)
                                     .FirstOrDefault().IdMusician
                    };

                    _context.MusicianTracks.Add(MusicianTrack);
                    _context.SaveChanges();

                    transaction.Commit();
                } catch (Exception exc)
                {
                    transaction.Rollback();
                    throw new MusicianDoesNotAddedException("Uncorrect requst!");
                }
            }
        }