public HelferType(IHelferStore store) { Name = "Helfer"; Field(x => x.Id) .Description("Id"); Field <KontaktType>("kontakt", resolve: context => context.Source.Kontakt); Field(x => x.Anmerkung); FieldAsync <ListGraphType <TaetigkeitEnumType> >("taetigkeiten", resolve: async context => { return(await store.GetTaetigkeiten(context.Source.Id)); }); Field <ListGraphType <EinsatzType> >("einsaetze", resolve: context => { return(context.Source.Einsaetze); } ); Field <IntGraphType>("totalEinsaetze", resolve: context => { return(context.Source.Einsaetze.Count()); } ); Field(x => x.hatAuto); Field(x => x.istRisikogruppe); Field(x => x.istFreiwilliger); Field(x => x.istZivildiener); Field(x => x.istAusgelastet); Field(x => x.istDSGVOKonform); }
public EinsatzType(IHelferStore store) { Name = "Einsatz"; Field <HelferType>("helfer", resolve: x => store.GetHelfer(x.Source.Helfer.Id)); Field(p => p.Hilfesuchender); Field <TaetigkeitEnumType>("taetigkeit", resolve: p => p.Source.Taetigkeit); Field(p => p.VermitteltDurch); Field(p => p.VermitteltAm); Field(p => p.Anmerkungen); Field(p => p.Id); Field(p => p.Dauer, nullable: true); }
public HilfswerkMutation(IHelferStore store) { Name = "Mutation"; this.AuthorizeWith("DefaultPolicy"); FieldAsync <HelferType>("createHelfer", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <CreateHelferInputType> > { Name = "helfer" }), resolve: async context => { var helfer = context.GetArgument <HelferCreateModel>("helfer"); return(await store.AddHelfer(helfer)); }); FieldAsync <EinsatzType>("createEinsatz", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <StringGraphType> > { Name = "helferId" }, new QueryArgument <NonNullGraphType <EinsatzInputType> > { Name = "einsatz" } ), resolve: async context => { var helferId = context.GetArgument <string>("helferId"); var einsatz = context.GetArgument <EinsatzCreateModel>("einsatz"); return(await store.AddEinsatz(helferId, einsatz)); }); FieldAsync <EinsatzType>("editEinsatz", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > { Name = "helferId" }, new QueryArgument <NonNullGraphType <IdGraphType> > { Name = "einsatzId" }, new QueryArgument <NonNullGraphType <EinsatzEditInputType> > { Name = "einsatz" }), resolve: async context => { var helferId = context.GetArgument <string>("helferId"); var einsatzId = context.GetArgument <string>("einsatzId"); var einsatz = context.GetArgument <EinsatzEditModel>("einsatz"); return(await store.EditEinsatz(helferId, einsatzId, einsatz)); }); FieldAsync <BooleanGraphType>("editHelfer", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <EditHelferInputType> > { Name = "helfer" }, new QueryArgument <IdGraphType> { Name = "id" }), resolve: async context => { var helfer = context.GetArgument <HelferEditModel>("helfer"); var id = context.GetArgument <string>("id"); try { await store.EditHelfer(id, helfer); return(true); } catch (InvalidOperationException ex) { return(false); } }); FieldAsync <BooleanGraphType>("removeEinsatz", arguments: new QueryArguments(new QueryArgument <IdGraphType> { Name = "helferId" }, new QueryArgument <IdGraphType> { Name = "einsatzId" }), resolve: async context => { var helferId = context.GetArgument <string>("helferId"); var einsatzId = context.GetArgument <string>("einsatzId"); await store.RemoveEinsatz(helferId, einsatzId); return(true); }); FieldAsync <BooleanGraphType>("setAusgelastet", arguments: new QueryArguments( new QueryArgument <BooleanGraphType> { Name = "istAusgelastet" }, new QueryArgument <IdGraphType> { Name = "id" }), resolve: async context => { var istAusgelastet = context.GetArgument <bool>("istAusgelastet"); var id = context.GetArgument <string>("id"); try { await store.SetAusgelastet(id, istAusgelastet); return(true); } catch (InvalidOperationException) { return(false); } }); }
public HilfswerkQuery(IHelferStore store, IReportGenerator reportGenerator, IOptionsSnapshot <GraphQLAuthorizationOptions> options) { if (!string.IsNullOrWhiteSpace(options.Value.AuthorizationPolicy)) { this.AuthorizeWith(options.Value.AuthorizationPolicy); } Name = "Query"; FieldAsync <ListGraphType <HelferType> >( name: "helferByName", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <StringGraphType> > { Name = "nameSearchTerms" }), resolve: async context => { return(await store.FindByName(context.GetArgument <string>("nameSearchTerms"))); } ); FieldAsync <HelferType>( name: "helferById", arguments: new QueryArguments(new QueryArgument <IdGraphType> { Name = "helferId" }), resolve: async context => { return(await store.GetHelfer(context.GetArgument <string>("helferId"))); } ); FieldAsync <EinsatzType>( name: "einsatzById", arguments: new QueryArguments(new QueryArgument <IdGraphType> { Name = "helferId" }, new QueryArgument <IdGraphType> { Name = "einsatzId" }), resolve: async context => { return(await store.GetEinsatz(context.GetArgument <string>("helferId"), context.GetArgument <string>("einsatzId"))); } ); FieldAsync <ListGraphType <HelferType> >( name: "helfer", arguments: new QueryArguments(new QueryArgument <ListGraphType <IntGraphType> > { Name = "inPlz" }, new QueryArgument <ListGraphType <TaetigkeitEnumType> > { Name = "taetigkeitIn" }, new QueryArgument <BooleanGraphType> { Name = "istRisikoGruppe" }, new QueryArgument <BooleanGraphType> { Name = "hatAuto" }, new QueryArgument <BooleanGraphType> { Name = "istZivildiener" }, new QueryArgument <BooleanGraphType> { Name = "istFreiwilliger" }, new QueryArgument <BooleanGraphType> { Name = "istAusgelastet" }, new QueryArgument <BooleanGraphType> { Name = "istDSGVOKonform" } ), resolve: async context => { var filter = new HelferFilter { PlzFilter = context.GetArgument <int[]>("inPlz") ?? Array.Empty <int>(), TaetigkeitFilter = context.GetArgument <Models.Taetigkeit[]>("taetigkeitIn") ?? Array.Empty <Models.Taetigkeit>(), HatAutoFilter = context.GetArgument <bool?>("hatAuto"), IstRisikoGruppeFilter = context.GetArgument <bool?>("istRisikoGruppe"), IstZivildienerFilter = context.GetArgument <bool?>("istZivildiener"), IstFreiwilligerFilter = context.GetArgument <bool?>("istFreiwilliger"), IstAusgelastetFilter = context.GetArgument <bool?>("istAusgelastet"), IstDSGVOKonform = context.GetArgument <bool?>("istDSGVOKonform") }; return(await store.FindHelfer(filter)); } ); FieldAsync <ReportByMonthType>( name: "reportByMonth", resolve: async context => { return(await reportGenerator.GenerateReport()); } ); }