Пример #1
0
        public OrganizationModule(ICommandDispatcher commandDispatcher,
                                  IOrganizationStorage organizationStorage,
                                  IValidatorResolver validatorResolver)
            : base(commandDispatcher, validatorResolver, modulePath: "organizations")
        {
            Get("{id}", async args => await Fetch <GetOrganization, Organization>
                    (async x => await organizationStorage.GetAsync(x.Id)).HandleAsync());

            Get("", async args => await FetchCollection <BrowseOrganizations, Organization>
                    (async x => await organizationStorage.BrowseAsync(x))
                .MapTo(x => new BasicOrganization
            {
                Id           = x.Id,
                Name         = x.Name,
                Codename     = x.Codename,
                IsPublic     = x.IsPublic,
                State        = x.State,
                CreatedAt    = x.CreatedAt,
                MembersCount = x.Members?.Count ?? 0,
                GroupsCount  = x.Groups?.Count ?? 0
            }).HandleAsync());

            Post("", async args => await For <CreateOrganization>()
                 .SetResourceId(x => x.OrganizationId)
                 .OnSuccessAccepted("organizations/{0}")
                 .DispatchAsync());

            Post("{organizationId}/members", async args => await ForModerator <AddMemberToOrganization>()
                 .OnSuccessAccepted("organizations/{0}")
                 .DispatchAsync());
        }
Пример #2
0
        public WardensModule(ICommandDispatcher commandDispatcher,
                             IValidatorResolver validatorResolver,
                             IIdentityProvider identityProvider,
                             IOrganizationStorage organizationStorage)
            : base(commandDispatcher, validatorResolver, identityProvider,
                   modulePath: "organizations/{organizationId}/wardens")
        {
            Get("{wardenId}", async args => await Fetch <GetWarden, Warden.Services.Storage.Models.Organizations.Warden>
                    (async x => await organizationStorage.GetWardenAsync(x.UserId, x.OrganizationId, x.WardenId))
                .HandleAsync());

            Post("", async args => await For <RequestNewWarden>()
                 .SetResourceId(x => x.WardenId)
                 .OnSuccessAccepted($"organizations/{args.organizationId}/wardens/" + "{0}")
                 .DispatchAsync());

            Post("external", async args => await For <CreateExternalWarden>()
                 .SetResourceId(x => x.WardenId)
                 .OnSuccessAccepted($"organizations/{args.organizationId}/wardens/" + "{0}")
                 .DispatchAsync());

            Delete("{wardenId}", async args => await For <DeleteWarden>()
                   .OnSuccessAccepted()
                   .DispatchAsync());
        }
Пример #3
0
        public OrganizationsModule(ICommandDispatcher commandDispatcher,
                                   IValidatorResolver validatorResolver,
                                   IIdentityProvider identityProvider,
                                   IOrganizationStorage organizationStorage)
            : base(commandDispatcher, validatorResolver, identityProvider, modulePath: "organizations")
        {
            Get("", async args => await FetchCollection <BrowseOrganizations, Organization>
                    (async x => await organizationStorage.BrowseAsync(x))
                .HandleAsync());

            Get("{id}", async args => await Fetch <GetOrganization, Organization>
                    (async x => await organizationStorage.GetAsync(x.UserId, x.Id))
                .HandleAsync());

            Post("", async args => await For <RequestNewOrganization>()
                 .SetResourceId(x => x.OrganizationId)
                 .OnSuccessAccepted("organizations/{0}")
                 .DispatchAsync());

            Put("{id}", async args => await For <UpdateOrganization>()
                .OnSuccess(HttpStatusCode.NoContent)
                .DispatchAsync());

            Delete("{id}", async args => await For <DeleteOrganization>()
                   .OnSuccess(HttpStatusCode.NoContent)
                   .DispatchAsync());
        }
Пример #4
0
        public void Init()
        {
            string[]        strArray    = Utility.GetConfig().AppSettings.Settings["OrganizationStorageImpl"].Value.Split(new char[] { ' ' });
            ConstructorInfo constructor = Assembly.Load(strArray[0]).GetType(strArray[1]).GetConstructor(new Type[0]);

            this.m_IOrganizationStorage = constructor.Invoke(new object[0]) as IOrganizationStorage;
        }
Пример #5
0
 public OrganizationManager(IOrganizationStorage <TOrganization> organizationStorage, IOrganizationProcessor <TOrganization, TOrganizationCreateForm, TOrganizationUpdateForm> organizationProcessor, IOrganizationUserStorage <TOrganizationUser, TUser> organizationUserStorage)
 {
     this.organizationStorage     = organizationStorage;
     this.organizationProcessor   = organizationProcessor;
     this.organizationUserStorage = organizationUserStorage;
 }