public PublicCalendarQuery(
     CalendarRequestDecorator requestDecorator,
     IUserOwnedGenericRepository <Tab> tabRepository,
     IUserOwnedGenericRepository <Event> eventRepository,
     IUserOwnedGenericRepository <UserPreference> userPreferenceRepository,
     IGenericRepository <User> userRepository) : base(requestDecorator)
 {
     AddFieldAsync <Tab, GraphQLTab>("tab", "tabs", tabRepository);
     AddFieldAsync <Event, GraphQLEvent>("event", "events", eventRepository);
     AddFieldAsync <User, GraphQLUser>("user", "users", userRepository);
     AddSingleFieldAsync <UserPreference, GraphQLUserPreference>("userPreference", userPreferenceRepository);
 }
 /// <summary>
 /// Add single user owned field like UserPrefeneces
 /// </summary>
 protected void AddSingleFieldAsync <TDomain, TGraphQL>(string singleName, IUserOwnedGenericRepository <TDomain> repository)
     where TDomain : class, IUserOwnedElement
     where TGraphQL : ObjectGraphType <TDomain>
 {
     FieldAsync <NonNullGraphType <TGraphQL> >(
         singleName,
         resolve: async resolveContext =>
     {
         return(await _requestDecorator.Run(resolveContext, async context =>
         {
             return await repository.GetSingleUserOwnedAsync();
         }));
     });
 }
Exemple #3
0
        public PublicCalendarMutation(
            CalendarDbFactory dbFactory,
            CalendarRequestDecorator requestDecorator,
            IUserOwnedGenericRepository <Tab> tabRepository,
            IUserOwnedGenericRepository <Event> eventRepository,
            IUserOwnedGenericRepository <UserPreference> userPreferenceRepository,
            IUserRepository userRepository,
            CognitoService cognitoService) : base(requestDecorator)
        {
            AddFieldAsync <Tab, GraphQLTab, GraphQLTabInput>("Tab", tabRepository);
            AddFieldAsync <Event, GraphQLEvent, GraphQLEventInput>("Event", eventRepository);
            AddSingleFieldAsync <UserPreference, GraphQLUserPreference, GraphQLUserPreferenceInput>("UserPreference", userPreferenceRepository);

            AddUserAsync(userRepository, cognitoService, dbFactory);
        }
Exemple #4
0
 /// <summary>
 /// Add single user owned field like UserPrefeneces
 /// </summary>
 protected void AddSingleFieldAsync <TDomain, TGraphQL, TInputType>(string singleName, IUserOwnedGenericRepository <TDomain> repository)
     where TDomain : class, IUserOwnedElement
     where TGraphQL : ObjectGraphType <TDomain>
     where TInputType : InputObjectGraphType
 {
     FieldAsync <NonNullGraphType <BooleanGraphType> >(
         $"addOrUpdate{singleName}",
         arguments: new QueryArguments(
             new QueryArgument <NonNullGraphType <TInputType> > {
         Name = "updateData"
     }
             ),
         resolve: async resolveContext => {
         return(await _requestDecorator.Run(resolveContext, async context => {
             var updateData = context.GetArgument <TDomain>("updateData");
             await repository.AddOrUpdateSingleUserOwnedAsync(updateData);
             return true;
         }));
     });
 }