private static GymMember FindGymMember(IPrincipal user) { GymContext db = new GymContext(); Tex.Log("Verifying Member",user.Identity.Name); var nameParts = user.Identity.Name.Split('\\'); if (nameParts.Length < 1) { Tex.Log("incorrect number of name parts returned"); return null; } string sName = nameParts[1]; Tex.Log("checking for ", sName); return db.GymMembers.SingleOrDefault(m => m.StaffId == sName); }
public static bool CancelMemberBooking(int classId, int memberId, GymContext db) { GymClass cl = db.GymClass.Find(classId); if (cl == null) { return false; } var booking = db.MemberClassBookings.Where(bk => bk.GymClassId == cl.GymClassId && bk.GymMemberId == memberId).FirstOrDefault(); if (booking == null) { return false; } db.Entry(booking).State = EntityState.Deleted; var nBookings = db.MemberClassBookings.Where(cls => cls.GymClassId == classId && !cls.Waiting).Count(); // Promote the next one from the waiting list GymClassBooking promotedBooking = null; if (!booking.Waiting && nBookings <= cl.MaxCapacity){ promotedBooking = db.MemberClassBookings.Where(bk => bk.GymClassId == cl.GymClassId && bk.Waiting == true).FirstOrDefault(); } if (promotedBooking != null) { promotedBooking.Waiting = false; db.Entry(promotedBooking).State = EntityState.Modified; } db.SaveChanges(); return true; }