public Musician InsertMusician(string firstname, string lastName, string nickname, TrackInsertModel track) { // if lastname or firstname are empty return an empty musician to signal a bad request if (firstname == "" || lastName == "" || firstname == null || lastName == null) { return(new Musician()); } using (TransactionScope tranScope = new TransactionScope()) { try { var getNewestId = _context.Musicians.Max(m => m.IdMusician); Musician newMusician = new Musician(); newMusician.FirstName = firstname; newMusician.LastName = lastName; newMusician.IdMusician = getNewestId + 1; if (nickname != null) { newMusician.NickName = nickname; } //if track variables are not null proceed to add musician to track if (track.trackName != null && track.trackName != "" && track.duration != 0) { var CheckIfTrackExists = _context.Tracks.Where(t => (t.TrackName == track.trackName) && (t.Duration == track.duration)).FirstOrDefault(); // if track doesnt exist create a new track if (CheckIfTrackExists == null) { var getHighestTrackId = _context.MusicianTracks.Max(t => t.IdTrack); Track newTrack = new Track(); newTrack.IdTrack = getHighestTrackId + 1; newTrack.TrackName = track.trackName; newTrack.Duration = track.duration; _context.Tracks.Add(newTrack); CheckIfTrackExists = newTrack; } //add track to musiciantrack table var getHighiestMusicianTrackId = _context.MusicianTracks.Max(mt => mt.IdMusicianTrack); getHighiestMusicianTrackId++; MusicianTrack newMuscianTrack = new MusicianTrack(); newMuscianTrack.IdMusicianTrack = getHighiestMusicianTrackId; newMuscianTrack.IdTrack = CheckIfTrackExists.IdTrack; newMuscianTrack.IdMusician = newMusician.IdMusician; _context.MusicianTracks.Add(newMuscianTrack); } //add musciian to database and complete the transaction _context.Musicians.Add(newMusician); tranScope.Complete(); return(newMusician); } catch (Exception ex) { return(null); } } }
public IActionResult InsertMusician(String firstname, string lastName, string nickname, TrackInsertModel track) { Musician musician = _context.InsertMusician(firstname, lastName, nickname, track); if (musician != null) { return(Ok(musician)); } else if (musician.FirstName == null || musician.LastName == null) { return(BadRequest()); } else { return(StatusCode(500)); } }