private static void RegisterAuthenticatedUserClient(ContainerBuilder builder)
        {
            builder.Register(context =>
            {
                var configuration = context.Resolve <IStackItConfiguration>();
                AuthenticationProvider provider = configuration.AuthenticationProvider;

                IAuthenticatedUserClient client = null;
                switch (provider)
                {
                case AuthenticationProvider.Development:
                    client = new DevelopmentAuthenticatedUserClient();
                    break;

                case AuthenticationProvider.Crowd:
                    ICrowdConfiguration crowdConfiguration = configuration.CrowdConfiguration;
                    var securityServer = context.Resolve <ISecurityServer>();
                    if (crowdConfiguration.Url != null)
                    {
                        securityServer.Url = crowdConfiguration.Url;
                    }
                    client = new CrowdAuthenticatedUserClient(
                        securityServer,
                        crowdConfiguration.ApplicationName,
                        crowdConfiguration.ApiPassword);
                    break;
                }

                return(client);
            });
        }
        private static void RegisterAuthenticatedUserClient(ContainerBuilder builder)
        {
            builder.Register(context =>
            {
                var configuration = context.Resolve<IStackItConfiguration>();
                AuthenticationProvider provider = configuration.AuthenticationProvider;

                IAuthenticatedUserClient client = null;
                switch (provider)
                {
                    case AuthenticationProvider.Development:
                        client = new DevelopmentAuthenticatedUserClient();
                        break;
                    case AuthenticationProvider.Crowd:
                        ICrowdConfiguration crowdConfiguration = configuration.CrowdConfiguration;
                        var securityServer = context.Resolve<ISecurityServer>();
                        if (crowdConfiguration.Url != null)
                        {
                            securityServer.Url = crowdConfiguration.Url;
                        }
                        client = new CrowdAuthenticatedUserClient(
                            securityServer,
                            crowdConfiguration.ApplicationName,
                            crowdConfiguration.ApiPassword);
                        break;
                }

                return client;
            });
        }