示例#1
0
        /// <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();
            }
        }
示例#2
0
        /// <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();
            }
        }