public IActionResult BookService(BookingModel booking) { try { var count = db.ServiceBooked.Where(p => p.ChurchDayId == booking.ChurchDayId && p.ServiceNo == booking.ServiceNo).Count(); if (count < 201) { // Validation to prevent Member from booking twice if (db.ServiceBooked.Include(p => p.Member).Where(p => p.ChurchDayId == booking.ChurchDayId && p.ServiceNo == booking.ServiceNo && p.Member.FullName == booking.FullName && p.Member.Age == booking.Age && p.Member.PhoneNumber == booking.PhoneNumber && p.Member.Residence == booking.Residence).Any()) { return(Json("MemberAlreadyBooked")); } Member member = new Member() { FullName = booking.FullName, Age = booking.Age, DateCreated = DateTime.Now.AddHours(-3), Gender = booking.Gender, PhoneNumber = booking.PhoneNumber, Residence = booking.Residence }; member.DateCreated = DateTime.Now; db.Members.Add(member); db.SaveChanges(); ServiceBooked serviceBooked = new ServiceBooked() { ChurchDayId = booking.ChurchDayId, MemberId = member.Id, ServiceNo = booking.ServiceNo, DateCreated = DateTime.Now, SeatNo = GetSeatNo(booking.ChurchDayId, booking.ServiceNo) }; db.ServiceBooked.Add(serviceBooked); db.SaveChanges(); return(Json("success")); } else { return(Json("serviceFullyBooked")); } } catch (Exception ex) { Console.WriteLine(ex); return(Json("error")); } }
public IActionResult AddPermanentMember(PermanentMember member) { try { if (ModelState.IsValid) { member.FullName = member.Title + " " + member.FullName; member.DateCreated = DateTime.Now; db.PermanentMember.Add(member); db.SaveChanges(); var actualMember = new Member() { Age = member.Age, DateCreated = DateTime.Now, FullName = member.FullName, Gender = member.Gender, PhoneNumber = member.PhoneNumber, Residence = member.Residence }; db.Members.Add(actualMember); db.SaveChanges(); var churchDay = db.ChurchDay.OrderByDescending(p => p.Id).FirstOrDefault(); if (churchDay.NoOfServices > 0) { for (int i = 1; i <= churchDay.NoOfServices; i++) { int seatNo = 0; if (member.SeatNo > 0) { seatNo = member.SeatNo; } ServiceBooked serviceBooked = new ServiceBooked() { ChurchDayId = churchDay.Id, MemberId = actualMember.Id, ServiceNo = i, DateCreated = DateTime.Now, SeatNo = seatNo }; db.ServiceBooked.Add(serviceBooked); } } db.SaveChanges(); return(Json("success")); } return(Json("InvalidModel")); } catch (Exception ex) { return(Json("error")); } }
public IActionResult SaveService(ChurchDay churchDay) { try { churchDay.DateCreated = DateTime.Now; churchDay.RegistrationDeadline = churchDay.RegistrationDeadline.Value.AddHours(churchDay.RegistrationDeadlineTime.Value.Hour); churchDay.RegistrationDeadline = churchDay.RegistrationDeadline.Value.AddMinutes(churchDay.RegistrationDeadlineTime.Value.Minute); //here we are subtracting 3 hours because of the time difference in the server //churchDay.RegistrationDeadline = churchDay.RegistrationDeadline.Value.AddHours(-3); db.ChurchDay.Add(churchDay); db.SaveChanges(); //here we get all permanent members and add them to this added service var permementMembers = db.PermanentMember.ToList(); if (churchDay.NoOfServices > 0) { foreach (var member in permementMembers) { for (int i = 1; i <= churchDay.NoOfServices; i++) { var actualMember = new Member() { Age = member.Age, DateCreated = DateTime.Now, FullName = member.FullName, Gender = member.Gender, PhoneNumber = member.PhoneNumber, Residence = member.Residence }; db.Members.Add(actualMember); db.SaveChanges(); ServiceBooked serviceBooked = new ServiceBooked() { ChurchDayId = churchDay.Id, MemberId = actualMember.Id, ServiceNo = i, DateCreated = DateTime.Now, SeatNo = member.SeatNo }; db.ServiceBooked.Add(serviceBooked); } } } db.SaveChanges(); return(Json("success")); } catch (Exception ex) { Console.WriteLine(ex); return(Json("error")); } }