public EventRegistrationBusinessLogic(IWaRepository waRepo, IEventsRepository eventsRepo, IAuditRepository registrationRepo, IConfiguration config, IMailOps mailOps) { _waRepo = waRepo; _eventsRepository = eventsRepo; _registrationRepo = registrationRepo; _mailOps = mailOps; _name = config.GetSection("Secrets:Name").Value; _transactionKey = config.GetSection("Secrets:TransactionKey").Value; }
//Method for getting Wild Apricot event and associated types public WildApricotBusinessLogic(IWaRepository waRepo) { _waRepo = waRepo; }
public MITSMutation(IEventsRepository eventsRepo, IDaysRepository daysRepo, ITagsRepository tagRepo, ISectionsRepository sectionsRepo, ISpeakersRepository speakersRepo, IUserRepository userRepo, IWaRepository waRepo, IEventRegistrationBusinessLogic eventRegistrationBusinessLogic) { Name = "Mutation"; #region PrintBadge Field <PrintBadgeType, int>() .Name("printAttendeesBadge") //.AuthorizeWith("AdminPolicy") .Argument <NonNullGraphType <ListGraphType <PrintBadgeInputType> > >("printBadge", "Print Attendees Badge") .ResolveAsync(async context => { var registrationIds = context.GetArgument <PrintBadge>("printBadge"); return(12); //return await eventRegistrationBusinessLogic.CheckInAttendee(newCheckIn); }); #endregion #region Checkin Field <CheckInAttendeeType, CheckInAttendee>() .Name("checkInAttendee") .AuthorizeWith("CheckinPolicy") .Argument <NonNullGraphType <CheckInAttendeeInputType> >("checkInAttendee", "Check in event attendee") .ResolveAsync(async context => { var newCheckIn = context.GetArgument <CheckInAttendee>("checkInAttendee"); return(await eventRegistrationBusinessLogic.CheckInAttendee(newCheckIn)); }); #endregion #region Registration //mutation ProcessRegistration($registration: RegistrationInput!) { // processRegistration(registration: $registration) { // eventRegistrationId, // qrCode // } //} //{ // "registration" :{ // "dataDescriptor" : "COMMON.ACCEPT.INAPP.PAYMENT", // "dataValue" : "4354f34f34gfdhsfhfrhdfshs", // "firstName" : "Bob", // "lastName" :"Anderson", // "title" : "CEO, Boeing", // "email" : "*****@*****.**", // "memberId" :"121232", // "memberExpirationDate" : "0118", // "isLifeMember" : false, // "isLocal" : true, // "registrationTypeId" : 4574357, // "eventId" : 3176755 // } //} //Input, output Field <RegistrationType, Registration>() .Name("processRegistration") .Argument <NonNullGraphType <RegistrationInputType> >("registration", "Details to process a new registration") .ResolveAsync(async context => { var newRegistration = context.GetArgument <Registration>("registration"); return(await eventRegistrationBusinessLogic.RegisterAttendee(newRegistration)); //return new Registration() //{ // EventRegistrationId = 324234, // QrCode = "324j2o3kj423ijd23n23ij923jd923jd2938jd2398du2398du2398dj2398" //}; }); Field <SponsorType, Sponsor>() .Name("processSponsorRegistration") .Argument <NonNullGraphType <SponsorInputType> >("sponsor", "Details to process a new registration") .ResolveAsync(async context => { var newSponsorRegistration = context.GetArgument <Sponsor>("sponsor"); return(await eventRegistrationBusinessLogic.RegisterSponsor(newSponsorRegistration)); //return new Sponsor() //{ // EventRegistrationId = 324234, //}; }); #endregion #region Speaker Field <SpeakerType>( "createSpeaker", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <SpeakerInputType> > { Name = "speaker" } ), resolve: context => { try { var newSpeaker = context.GetArgument <Speaker>("speaker"); return(speakersRepo.CreateSpeakerAsync(newSpeaker)); } catch (Exception e) { Console.WriteLine(e); throw; } }).AuthorizeWith("AdminPolicy"); Field <SpeakerType>( "updateSpeaker", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <SpeakerInputType> > { Name = "speaker" } ), resolve: context => { try { var newSpeakerValues = context.GetArgument <Speaker>("speaker"); return(speakersRepo.UpdateSpeakerAsync(newSpeakerValues)); } catch (Exception e) { Console.WriteLine(e); throw; } }).AuthorizeWith("AdminPolicy");; Field <IntGraphType, int>() .Name("deleteSpeaker") .AuthorizeWith("AdminPolicy") .Argument <NonNullGraphType <IntGraphType> >("speakerId", "Id of Speaker to delete") .ResolveAsync(context => { try { return(speakersRepo.DeleteSpeakerAsync(context.GetArgument <int>("speakerId"))); } catch (Exception e) { Console.WriteLine(e); context.Errors.Add(new ExecutionError(e.Message)); return(null); } }); #endregion #region Event /* * mutation ($event: EventInput!) { * createEvent(event:$event){ * id * mainEventId * eventType * } * } * { * "event": { * "mainEventId" :"4334", * "eventRegistrationType" : "Main" * } * } */ Field <EventType, Event>() .Name("createEvent") .AuthorizeWith("AdminPolicy") .Argument <NonNullGraphType <EventInputType> >("event", "event input") .ResolveAsync(async context => { try { var newEvent = context.GetArgument <Event>("event"); //Is this the best place to put logic for other things..... what other choice do I have.... var eventAddedToDb = await eventsRepo.CreateEvent(newEvent); return(await waRepo.AddWildApricotEvent(eventAddedToDb)); ; } catch (Exception e) { Console.WriteLine(e); throw; } }); //Field<EventType>( // "createEvent", // arguments: new QueryArguments( // new QueryArgument<NonNullGraphType<EventInputType>> {Name = "event" } // ), // resolve: context => // { // try // { // var newEvent = context.GetArgument<Event>("event"); // //Is this the best place to put logic for other things..... what other choice do I have.... // await waRepo.AddWildApricotEvent(newEvent); // return eventsRepo.CreateEvent(newEvent); // } // catch (Exception e) // { // Console.WriteLine(e); // throw; // } // }); #endregion #region Day /* * Create Day * mutation ($day: DayInput!) { * createEvent(day:$day){ * id * agendaDay * } * } * * { * "day": { * "agendaDay" : "2018-10-09" * } * } */ Field <DayType, Day>() .Name("createDay") .AuthorizeWith("AdminPolicy") .Argument <NonNullGraphType <DayInputType> >("day", "day input") .ResolveAsync(context => { try { var newDay = context.GetArgument <Day>("day"); return(daysRepo.CreateDayAsync(newDay)); } catch (Exception e) { Console.WriteLine(e); throw; } }); /*deleteDay * mutation ($dayId: Int!) { * deleteDay(dayId:$dayId){ * id * agendaDay * } *} * * { * "dayId" : "3" * } */ Field <IntGraphType, List <Day> >() .Name("deleteDay") .AuthorizeWith("AdminPolicy") .Argument <NonNullGraphType <IntGraphType> >("dayId", "Id of Day to delete") .ResolveAsync(context => { try { return(daysRepo.DeleteDayAsync(context.GetArgument <int>("dayId"))); } catch (Exception e) { Console.WriteLine(e); context.Errors.Add(new ExecutionError(e.Message)); return(null); } }); #endregion }