/// <summary> /// A musician calls this to confirm that they will /// play the given instrument at the given booking /// </summary> /// <param name="Booking"></param> /// <param name="Musician"></param> /// <param name="Instrument"></param> public static void AddMusicianAndInstrumentToBooking(Booking Booking, Musician Musician, Instrument Instrument) { Booking dbBooking; using (var context = new BandBookerContext()) { dbBooking = (from x in context.Booking where x.BookingId == Booking.BookingId select x).FirstOrDefault(); var currentBmi = (from x in context.BookingMusicianInstrument where x.BookingId == Booking.BookingId && x.MusicianId == Musician.MusicianId select x).FirstOrDefault(); if (currentBmi != null) { currentBmi.InstrumentId = Instrument.InstrumentId; currentBmi.Response = true; currentBmi.ResponseReason = ""; currentBmi.ResponseDate = DateTime.Now; } else { var dbMusician = (from x in context.Musician where x.MusicianId == Musician.MusicianId select x).FirstOrDefault(); var dbInstrument = (from x in context.Instrument where x.InstrumentId == Instrument.InstrumentId select x).FirstOrDefault(); var bmi = new BookingMusicianInstrument() { Booking = dbBooking, Musician = dbMusician, Instrument = dbInstrument, Response = true, ResponseReason = "", ResponseDate = DateTime.Now }; dbBooking.BookingMusicianInstrument.Add(bmi); } context.SaveChanges(); } }
/// <summary> /// A musician calls this to decline a booking /// that they have been invited to /// </summary> /// <param name="Booking"></param> /// <param name="Musician"></param> /// <param name="Reason"></param> public static void MusicianCannotPlayGig(Booking Booking, Musician Musician, string Reason) { using (var context = new BandBookerContext()) { var dbBmi = (from x in context.BookingMusicianInstrument where x.BookingId == Booking.BookingId && x.MusicianId == Musician.MusicianId select x).FirstOrDefault(); if (dbBmi != null) { dbBmi.Response = false; dbBmi.ResponseDate = DateTime.Now; dbBmi.ResponseReason = Reason; } else { var dbBooking = (from x in context.Booking where x.BookingId == Booking.BookingId select x).FirstOrDefault(); var bmi = new BookingMusicianInstrument() { BookingId = Booking.BookingId, MusicianId = Musician.MusicianId, Response = false, ResponseDate = DateTime.Now, ResponseReason = Reason }; dbBooking.BookingMusicianInstrument.Add(bmi); } context.SaveChanges(); } }