From fd3a687cd1ed5cdbe523926bdf33e69a8c8d2dfb Mon Sep 17 00:00:00 2001 From: malechus Date: Mon, 22 Sep 2025 22:32:27 -0400 Subject: [PATCH 1/2] Adds method to handle writing ticket info to db for comps --- Controllers/CureController.cs | 1 + Helpers/CureRegistrationHelpers.cs | 49 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/Controllers/CureController.cs b/Controllers/CureController.cs index 9b60beb..e8c4050 100644 --- a/Controllers/CureController.cs +++ b/Controllers/CureController.cs @@ -381,6 +381,7 @@ public async Task RegistrationPayment() { var attendees = _paymentService.HandleNonPaymentCURETicketOrder(registrations); var orderId = CureRegistrationHelpers.FinalizeTicketOrder(_inventoryService, _paymentService, registrations, attendees); + CureRegistrationHelpers.WriteNonPaymentTickets(_kdbContext, registrations, orderId); return RedirectToAction("NoPay"); } diff --git a/Helpers/CureRegistrationHelpers.cs b/Helpers/CureRegistrationHelpers.cs index 8acd198..1923364 100644 --- a/Helpers/CureRegistrationHelpers.cs +++ b/Helpers/CureRegistrationHelpers.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Hangfire; using KiCData.Models; using KiCData.Models.WebModels; using KiCData.Services; @@ -63,4 +64,52 @@ public static void UpdateOrderID(KiCdbContext ctx, List attendees, str ctx.SaveChanges(); } + + public static void WriteNonPaymentTickets(KiCdbContext ctx, List registrationViewModels, string orderId) + { + foreach(RegistrationViewModel rvm in registrationViewModels) + { + TicketComp tc = ctx.TicketComp + .Where(t => t.Id == rvm.TicketComp.Id) + .First(); + + Ticket ticket = ctx.Ticket + .Where(t => t.Id == tc.TicketId) + .First(); + + Attendee attendee = ctx.Attendees + .Where(a => a.TicketId == ticket.Id) + .First(); + + Member member = ctx.Members + .Where(m => m.Id == attendee.MemberId) + .First(); + + attendee.BadgeName = rvm.BadgeName; + attendee.isRegistered = true; + attendee.OrderID = orderId; + attendee.Pronouns = rvm.Pronouns; + attendee.RoomPreference = rvm.RoomType; + + ticket.DatePurchased = DateOnly.FromDateTime(DateTime.Today); + ticket.Type = rvm.TicketType; + + member.City = rvm.City; + member.DateOfBirth = rvm.DateOfBirth; + member.Email = rvm.Email; + member.FetName = rvm.FetName; + member.ClubId = rvm.ClubId; + member.LastName = rvm.LastName; + member.PhoneNumber = rvm.PhoneNumber; + member.SexOnID = rvm.SexOnID; + member.State = rvm.State; + member.FirstName = rvm.FirstName; + + ctx.Update(ticket); + ctx.Update(attendee); + ctx.Update(member); + } + + ctx.SaveChanges(); + } } \ No newline at end of file From 0fb50283f22c78ea9e723c07ceff99143468f499 Mon Sep 17 00:00:00 2001 From: malechus Date: Tue, 23 Sep 2025 01:48:39 -0400 Subject: [PATCH 2/2] Fixes addon tracking and pricing --- Helpers/CureRegistrationHelpers.cs | 1 + KiCWeb.csproj | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Helpers/CureRegistrationHelpers.cs b/Helpers/CureRegistrationHelpers.cs index 1923364..707bbc6 100644 --- a/Helpers/CureRegistrationHelpers.cs +++ b/Helpers/CureRegistrationHelpers.cs @@ -93,6 +93,7 @@ public static void WriteNonPaymentTickets(KiCdbContext ctx, List - +