public async Task <PitchBookingResult> MakeBookingAsync(DateTime startDateTime, DateTime endDateTime, int pitchId, Member member) { var pitchBooking = new PitchBooking { PitchId = pitchId, Member = member, StartDateTime = startDateTime, EndDateTime = endDateTime }; var(passedRules, errors) = await _bookingRuleProcessor.PassesAllRulesAsync(pitchBooking); if (!passedRules) { return(PitchBookingResult.Failure(errors)); } await _bookingService.CreatePitchBooking(pitchBooking); await _messagingService.SendAsync("Thank you. Your booking is confirmed", member.User.Id); return(PitchBookingResult.Success(pitchBooking)); }
public async Task <CourtBookingResult> MakeBookingAsync(DateTime startDateTime, DateTime endDateTime, int courtId, Member member) { var courtBooking = new CourtBooking { CourtId = courtId, Member = member, StartDateTime = startDateTime, EndDateTime = endDateTime }; var(passedRules, errors) = await _bookingRuleProcessor.PassesAllRulesAsync(courtBooking); if (!passedRules) { return(CourtBookingResult.Failure(errors)); } await _bookingService.CreateCourtBooking(courtBooking); await _notificationService.SendAsync("Thank you. Your booking is confirmed", member.User.Id); return(CourtBookingResult.Success(courtBooking)); }