Ejemplo n.º 1
0
        public async void Start()
        {
            if (mServer != null)
            {
                throw new InvalidOperationException();
            }
            lock (knownHosts) knownHosts.Clear();
            mServer = new HttpSelfHostServer(Configure());
            var             serverTask = mServer.OpenAsync();
            RegisterService rs         = new RegisterService();

            rs.RegType     = "_tincer._tcp";
            rs.ReplyDomain = "local.";
            rs.Name        = Environment.MachineName;
            rs.Port        = (short)(ushort)Arguments.Global.ListenPort;
            rs.TxtRecord   = new TxtRecord();
            rs.TxtRecord.Add("NODEID", ApiHost.Id.ToByteArray());
            rs.Register();
            rs.Response       += rs_Response;
            serviceRegister    = rs;
            sb.ServiceAdded   += sb_ServiceAdded;
            sb.ServiceRemoved += sb_ServiceRemoved;
            sb.Browse("_tincer._tcp", "local.");
            await serverTask;

            timer.Change(30000, 30000);
        }
Ejemplo n.º 2
0
        private void RegisterService()
        {
            lock (eglock) {
                if (zc_service != null)
                {
                    UnregisterService();
                }

                string auth = serverInfo.AuthenticationMethod == AuthenticationMethod.None ? "false" : "true";

                zc_service           = new RegisterService();
                zc_service.Name      = serverInfo.Name;
                zc_service.RegType   = "_daap._tcp";
                zc_service.Port      = (short)ws.BoundPort;
                zc_service.TxtRecord = new TxtRecord();
                zc_service.TxtRecord.Add("Password", auth);
                zc_service.TxtRecord.Add("Machine Name", serverInfo.Name);

                if (machineId != null)
                {
                    zc_service.TxtRecord.Add("Machine ID", machineId);
                }

                zc_service.TxtRecord.Add("txtvers", "1");
                zc_service.Response += OnRegisterServiceResponse;
                zc_service.Register();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 运行默认注册流程
        /// </summary>
        protected void RegisterStart()
        {
            //注册开始
            RegisterService register;

            //注册 CON2ET 全局
            var senparcSetting = new SenparcSetting()
            {
                IsDebug = true
            };

#if NETCOREAPP2_0 || NETCOREAPP2_1
            var mockEnv = new Mock <IHostingEnvironment>();
            mockEnv.Setup(z => z.ContentRootPath).Returns(() => UnitTestHelper.RootPath);
            register = RegisterService.Start(mockEnv.Object, senparcSetting);

            RegisterServiceCollection();
#else
            register = RegisterService.Start(senparcSetting);
#endif

            Func <IList <IDomainExtensionCacheStrategy> > func = () =>
            {
                var list = new List <IDomainExtensionCacheStrategy>();
                list.Add(LocalContainerCacheStrategy.Instance);
                list.Add(RedisContainerCacheStrategy.Instance);
                //list.Add(MemcachedContainerCacheStrategy.Instance);
                return(list);
            };
            register.UseSenparcGlobal(false, func);

            //注册微信
            var senparcWeixinSetting = new SenparcWeixinSetting(true);
            register.UseSenparcWeixin(senparcWeixinSetting);
        }
Ejemplo n.º 4
0
        public async void Stop()
        {
            if (mServer == null)
            {
                throw new InvalidOperationException();
            }
            timer.Change(Timeout.Infinite, Timeout.Infinite);
            var closeTask = mServer.CloseAsync();

            mServer = null;
            mConfig = null;
            try
            {
                serviceRegister.Dispose();
            }
            catch { }
            serviceRegister = null;
            try
            {
                sb.Dispose();
            }
            catch { }
            sb = null;
            await closeTask;

            lock (knownHosts) knownHosts.Clear();
        }
Ejemplo n.º 5
0
        public async Task PartyLookup_ResponseIsNotSuccessful_PlatformExceptionThrown()
        {
            // Arrange
            HttpResponseMessage httpResponseMessage = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.NotFound,
                Content    = new StringContent(string.Empty)
            };

            HttpRequestMessage actualRequest = null;

            void SetRequest(HttpRequestMessage request) => actualRequest = request;

            InitializeMocks(httpResponseMessage, SetRequest);

            HttpClient httpClient = new HttpClient(_handlerMock.Object);

            RegisterService target = new RegisterService(
                httpClient,
                _contextAccessor.Object,
                _accessTokenGenerator.Object,
                _generalSettings.Object,
                _platformSettings.Object,
                new Mock <ILogger <RegisterService> >().Object);

            // Act & Assert
            await Assert.ThrowsAsync <PlatformHttpException>(async() => { await target.PartyLookup("16069412345", null); });
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Register(RegisterUsuarioCommand cmd)
        {
            if (ModelState.IsValid)
            {
                var _registerService = new RegisterService(_context, _signInManager, _userManager);
                var user             = cmd.ToUsuario();
                var result           = await _registerService.RegisterUsuarioAsync(user, cmd.Password);

                if (result.Succeeded)
                {
                    var claim = new Claim("Permission", "Normal");
                    await _userManager.AddClaimAsync(user, claim);

                    await _userManager.AddClaimAsync(user, new Claim("Pending", "true"));

                    await _signInManager.SignInAsync(user, false);

                    if (Request.Query.Keys.Contains("ReturnUrl"))
                    {
                        return(Redirect(Request.Query["ReturnUrl"].First()));
                    }
                    else
                    {
                        return(RedirectToAction("Pending", "Home"));
                    }
                }
                AddErrors(result);
            }

            ModelState.AddModelError(string.Empty, "An error occured trying to register the user");

            //If we got to here, something went wrong
            return(View(cmd));
        }
Ejemplo n.º 7
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterWebSocket();//微信注册WebSocket模块(按需,必须执行在RouteConfig.RegisterRoutes()之前)

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);


            /* CO2NET 全局注册开始
             * 建议按照以下顺序进行注册
             */

            //注册需要使用的领域缓存策略
            RegisterService.Start() //这里没有 ; 下面接着写

            #region 注册分自定义(分布式)缓存策略(按需,如果需要,必须放在第一个)

            // 当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须)
            .ChangeDefaultCacheNamespace("DefaultWeixinCache")

            //配置Redis缓存
            .RegisterCacheRedis(
                ConfigurationManager.AppSettings["Cache_Redis_Configuration"],
                redisConfiguration => (!string.IsNullOrEmpty(redisConfiguration) && redisConfiguration != "Redis配置")
                                         ? RedisObjectCacheStrategy.Instance
                                         : null)

            //配置Memcached缓存
            .RegisterCacheMemcached(
                new Dictionary <string, int>() /* { "localhost", 9101 }*/ }
        //====================================
        // ChannelReaderConsumer
        //====================================

        public void Consume(RawMessage message)
        {
            var incoming = message.AsTextMessage();

            var registerService = RegisterService.From(incoming);

            if (registerService.IsValid)
            {
                var attributeSetName = _serviceNamePrefix + registerService.Name.Value;
                foreach (var address in registerService.Addresses)
                {
                    var fullAddress = address.Full;
                    _attributesClient.Add(attributeSetName, fullAddress, fullAddress);
                }
            }
            else
            {
                var unregisterService = UnregisterService.From(incoming);
                if (unregisterService.IsValid)
                {
                    var attributeSetName = _serviceNamePrefix + unregisterService.Name.Value;
                    _attributesClient.RemoveAll(attributeSetName);
                    _attributesClient.Add(_unregisteredServiceNamePrefix + unregisterService.Name.Value, _unregisteredCount, _unpublishedNotifications);
                }
                else
                {
                    Logger.Warn($"DIRECTORY: RECEIVED UNKNOWN: {incoming}");
                }
            }
        }
Ejemplo n.º 9
0
        public void RegisterTraceLogTest()
        {
            var registerService = new RegisterService();

            Register.RegisterTraceLog(registerService, RegisterTraceLogAction);
            Assert.IsTrue(registerTraceLogActionRun);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Publish the service via Bonjour protocol to the network
        /// </summary>
        internal void PublishBonjourService()
        {
            if (_servicePublishing)
            {
                Logger.Debug("WifiRemote: Already in the process of publishing the Bonjour service. Aborting publish ...");
                return;
            }

            _servicePublishing = true;

            try
            {
                _publishService             = new RegisterService();
                _publishService.Name        = _serviceName;
                _publishService.RegType     = serviceType;
                _publishService.ReplyDomain = _domain;
                _publishService.Port        = Convert.ToInt16(_port);

                // Get the MAC addresses and set it as bonjour txt record
                // Needed by the clients to implement wake on lan
                TxtRecord txt_record = new TxtRecord();
                txt_record.Add("hwAddr", GetHardwareAddresses());
                _publishService.TxtRecord = txt_record;

                _publishService.Response += PublishService_Response;
                _publishService.Register();
            }
            catch (Exception ex)
            {
                Logger.Debug("WifiRemote: Bonjour enabled but failed to publish!", ex);
                Logger.Info("WifiRemote: Disabling Bonjour for this session. If not installed get it at http://support.apple.com/downloads/Bonjour_for_Windows");
                _disableBonjour = true;
                return;
            }
        }
Ejemplo n.º 11
0
        async partial void RegisterTapped(NSObject sender)
        {
            try
            {
                SetButtonEnabled(false);
                RegisterService service = new RegisterService();
                bool            result  = await service.Register(_username.Text, _password.Text, _confirmPassword.Text);

                if (!result)
                {
                    throw new InvalidOperationException("Something went wrong");
                }
                UIAlertView alert = new UIAlertView("Success", "Register complete", null, "OK", null);
                alert.Show();
            }
            catch
            {
                UIAlertView alert = new UIAlertView("Error", "Register failed", null, "OK", null);
                alert.Show();
            }
            finally
            {
                SetButtonEnabled(true);
            }
        }
Ejemplo n.º 12
0
        public async Task RegisterUser(UserRegisterModel userRegisterModel)
        {
            try
            {
                RegisterService registerService = new RegisterService();

                var response = await registerService.RegisterUser(userRegisterModel);

                if (!response.IsSuccessStatusCode)
                {
                    var json = await response.Content.ReadAsStringAsync();

                    if (!json.Equals(""))
                    {
                        throw new Exception(json);
                    }
                    else
                    {
                        throw new Exception(response.StatusCode.ToString() + " - " + response.ReasonPhrase);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Ejemplo n.º 13
0
        public void RegisterTraceLogTest()
        {
            var registerService = RegisterService.Start(null, new SenparcSetting(true));

            Register.RegisterTraceLog(registerService, RegisterTraceLogAction);
            Assert.IsTrue(registerTraceLogActionRun);
        }
Ejemplo n.º 14
0
        static Register()
        {
            var userRepository = new InMemoryUserRepository();

            _registerService = new RegisterService();
            _userService     = new UserService(userRepository);
        }
Ejemplo n.º 15
0
        private static void RegisterConfiguration()
        {
            String user      = ConfigurationManager.AppSettings["user"];
            String appId     = "";
            String appSecret = "";
            String name      = "";

            switch (user)
            {
            case "用户1":
                appId     = "";
                appSecret = "";
                name      = "公众号1";
                break;

            case "用户2":
                appId     = "";
                appSecret = "";
                name      = "公众号2";
                break;
            }

            RegisterService.Start()
            .RegisterTraceLog(ConfigWeixinTraceLog)     //配置TraceLog
            .RegisterMpAccount(appId, appSecret, name); //注册公众号

            new WeChatJob.lib.Config();                 //初始化配置
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Add all the services needed by commands
        /// </summary>
        private void AddServices(DataTarget target)
        {
            _serviceProvider.AddService(target);
            _serviceProvider.AddService <IConsoleService>(_consoleProvider);
            _serviceProvider.AddService(_commandProcessor);
            _serviceProvider.AddServiceFactory(typeof(IHelpBuilder), _commandProcessor.CreateHelpBuilder);

            // Create common analyze context for commands
            var analyzeContext = new AnalyzeContext()
            {
                CurrentThreadId = unchecked ((int)target.DataReader.EnumerateAllThreads().FirstOrDefault())
            };

            _serviceProvider.AddService(analyzeContext);

            // Add the register, memory, SOSHost and ClrRuntime services
            var registerService = new RegisterService(target);

            _serviceProvider.AddService(registerService);

            var memoryService = new MemoryService(target.DataReader);

            _serviceProvider.AddService(memoryService);

            _serviceProvider.AddServiceFactory(typeof(ClrRuntime), () => CreateRuntime(target));

            _serviceProvider.AddServiceFactory(typeof(SOSHost), () => {
                var sosHost = new SOSHost(_serviceProvider);
                sosHost.InitializeSOSHost(SymbolReader.TempDirectory, _isDesktop, _dacFilePath, dbiFilePath: null);
                return(sosHost);
            });
        }
Ejemplo n.º 17
0
        public virtual TSenparcEntities CreateDbContext(string[] args)
        {
            //修复 https://github.com/SenparcCoreFramework/SCF/issues/13 发现的问题(在非Web环境下无法得到网站根目录路径)

            IRegisterService co2netRegister = RegisterService.Start(SenparcSetting);

            CO2NET.Config.RootDictionaryPath = RootDictionaryPath;

            var register = System.Activator.CreateInstance <TXscfDatabaseRegister>() as TXscfDatabaseRegister;

            //配置数据库
            var builder = new DbContextOptionsBuilder <TSenparcEntities>();

            builder.UseSqlServer(SqlConnectionStr, b =>
            {
                register.DbContextOptionsAction(b, null);
                b.EnableRetryOnFailure(
                    maxRetryCount: 5,
                    maxRetryDelay: TimeSpan.FromSeconds(5),
                    errorNumbersToAdd: new int[] { 2 });
            });

            //还可以补充更多的数据库类型

            return(GetInstance(builder.Options));
        }
Ejemplo n.º 18
0
        protected void Application_Start()
        {
            //初始化信息
            MPBasicSetting.GetBasicSetting();
            //MCComm.DBHelper.GetWebSqlConnection();
            Sunnysoft.DAL.ActiveRecordDBHelper.InitSessionFactory();
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var isGLobalDebug  = true;                                                     //设置全局 Debug 状态
            var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug);
            var register       = RegisterService.Start(senparcSetting).UseSenparcGlobal(); //CO2NET全局注册,必须!

            var isWeixinDebug        = true;                                               //设置微信 Debug 状态
            var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug);

            register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);////微信全局注册,必须!

            ThreadUtility.Register();
            Senparc.Weixin.MP.Containers.AccessTokenContainer.RegisterAsync(MPBasicSetting.AppID, MPBasicSetting.AppSecret, "公众号注册");
            Senparc.Weixin.MP.Containers.JsApiTicketContainer.RegisterAsync(MPBasicSetting.AppID, MPBasicSetting.AppSecret, "公众号JSSDK注册");
        }
        public void Fd()
        {
            /* CO2NET 全局注册开始
             * 建议按照以下顺序进行注册
             */

            //设置全局 Debug 状态
            var isGLobalDebug  = true;
            var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug);

            //CO2NET 全局注册,必须!!
            IRegisterService register = RegisterService.Start(senparcSetting)
                                        .UseSenparcGlobal(false, null);

            /* 微信配置开始
             * 建议按照以下顺序进行注册
             */

            //设置微信 Debug 状态
            var isWeixinDebug        = true;
            var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug);

            //微信全局注册,必须!!
            register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 注册 RegisterService.Start()
        /// </summary>
        public static void RegisterServiceStart(bool autoScanExtensionCacheStrategies = false)
        {
            //注册
            var mockEnv = new Mock <IHostingEnvironment>();

            mockEnv.Setup(z => z.ContentRootPath).Returns(() => UnitTestHelper.RootPath);

            registerService = RegisterService.Start(mockEnv.Object, _senparcSetting)
                              .UseSenparcGlobal(autoScanExtensionCacheStrategies);

            //配置全局使用Redis缓存(按需,独立)
            var redisConfigurationStr = _senparcSetting.Cache_Redis_Configuration;
            var useRedis = !string.IsNullOrEmpty(redisConfigurationStr) && redisConfigurationStr != "#{Cache_Redis_Configuration}#" /*默认值,不启用*/;

            if (useRedis)//这里为了方便不同环境的开发者进行配置,做成了判断的方式,实际开发环境一般是确定的,这里的if条件可以忽略
            {
                /* 说明:
                 * 1、Redis 的连接字符串信息会从 Config.SenparcSetting.Cache_Redis_Configuration 自动获取并注册,如不需要修改,下方方法可以忽略
                 * /* 2、如需手动修改,可以通过下方 SetConfigurationOption 方法手动设置 Redis 链接信息(仅修改配置,不立即启用)
                 */
                Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(redisConfigurationStr);
                Console.WriteLine("完成 Redis 设置");


                //以下会立即将全局缓存设置为 Redis
                Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow();//键值对缓存策略(推荐)
                Console.WriteLine("启用 Redis UseKeyValue 策略");

                //Senparc.CO2NET.Cache.Redis.Register.UseHashRedisNow();//HashSet储存格式的缓存策略

                //也可以通过以下方式自定义当前需要启用的缓存策略
                //CacheStrategyFactory.RegisterObjectCacheStrategy(() => RedisObjectCacheStrategy.Instance);//键值对
                //CacheStrategyFactory.RegisterObjectCacheStrategy(() => RedisHashSetObjectCacheStrategy.Instance);//HashSet
            }
        }
Ejemplo n.º 21
0
        public void IsRegister_True()
        {
            RegisterService registerService = new RegisterService();
            var             result          = registerService.CheckName("Alex");

            Assert.IsTrue(result, "Correct name");
        }
Ejemplo n.º 22
0
        public static RegisterService GetRegistrationService(
            AbstractValidator <Register> validator = null,
            IUserAuthRepository authRepo           = null,
            string contentType = null)
        {
            var requestContext = new BasicRequest();

            if (contentType != null)
            {
                requestContext.ResponseContentType = contentType;
            }
            var userAuthRepository = authRepo ?? GetStubRepo();

            HostContext.Container.Register <IAuthRepository>(userAuthRepository);

            var service = new RegisterService
            {
                RegistrationValidator = validator ?? new RegistrationValidator(),
                Request = requestContext,
            };

            HostContext.Container.Register(userAuthRepository);

            (HostContext.TryResolve <IAuthRepository>() as InMemoryAuthRepository)?.Clear();

            return(service);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Create an instance of the hosting class
        /// </summary>
        /// <param name="serviceProvider">Service provider</param>
        public SOSHost(IServiceProvider serviceProvider)
        {
            DataTarget dataTarget = serviceProvider.GetService <DataTarget>();

            DataReader       = dataTarget.DataReader;
            _console         = serviceProvider.GetService <IConsoleService>();
            AnalyzeContext   = serviceProvider.GetService <AnalyzeContext>();
            _memoryService   = serviceProvider.GetService <MemoryService>();
            _registerService = serviceProvider.GetService <RegisterService>();
            _versionCache    = new ReadVirtualCache(_memoryService);

            string rid = InstallHelper.GetRid();

            SOSPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), rid);
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                var debugClient = new DebugClient(this);
                _ccw       = debugClient;
                _interface = debugClient.IDebugClient;
            }
            else
            {
                var lldbServices = new LLDBServices(this);
                _ccw       = lldbServices;
                _interface = lldbServices.ILLDBServices;
            }
        }
Ejemplo n.º 24
0
        private static object InstanceRegisterService()
        {
            IRepository      repository = RepositoryFactory.GetRepositoryInstance <RegisterRepository>();
            IRegisterService service    = new RegisterService(repository);

            return(service);
        }
Ejemplo n.º 25
0
        private static HttpError PostRegistrationError(RegisterService service, Register register)
        {
#pragma warning disable CS0618
            var response = (HttpError)service.RunAction(register, (svc, req) => svc.Post(req));
#pragma warning restore CS0618
            return(response);
        }
Ejemplo n.º 26
0
        private void PluginForm_Load(object sender, EventArgs e)
        {
            Console.WriteLine("PluginForm_Load");

            CheckForIllegalCrossThreadCalls = false;

            //Pluginmain.loopstop = false;

            Console.WriteLine("CLR version from PluginForm_Load: {0}", Environment.Version);


            //-------------------------------------------------
            //begin setup zeroconf


            bonjourBrowserService = new RegisterService(); // <-- this line is where we get the problem


            bonjourBrowserService.Name        = "CNCTouch Wi-fi Server";
            bonjourBrowserService.RegType     = "_cnctouch._tcp";
            bonjourBrowserService.ReplyDomain = "local.";
            bonjourBrowserService.Port        = 2030;

            // TxtRecords are optional
            TxtRecord txt_record = new TxtRecord();

            txt_record.Add("Password", "false");
            bonjourBrowserService.TxtRecord = txt_record;

            bonjourBrowserService.Register();

            // End setup zeroconf
            //---------------------------------------------------
        }
Ejemplo n.º 27
0
        private static async Task <bool> AskUserToRegister()
        {
            Write("Would you like to register? - yes / no");
            var result = Read();

            if (result.Equals("yes"))
            {
                Clear();
                GetUserDetails();

                var newUser = new GameUser
                {
                    Name     = _username,
                    Password = _password
                };

                Program.CurrentUser = await RegisterService.Register(newUser);

                Clear();
                WelcomeUser();

                return(true);
            }

            return(false);
        }
Ejemplo n.º 28
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            /* CO2NET 全局注册开始
             * 建议按照以下顺序进行注册
             */

            //设置全局 Debug 状态
            var isGLobalDebug  = true;
            var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug);

            //CO2NET 全局注册,必须!!
            IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(false, null);

            /* 微信配置开始
             * 建议按照以下顺序进行注册
             */

            //设置微信 Debug 状态
            var isWeixinDebug        = true;
            var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug);

            //微信全局注册,必须!!
            register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);
        }
Ejemplo n.º 29
0
        public SenparcEntities CreateDbContext(string[] args)
        {
            //修复 https://github.com/NeuCharFramework/NCF/issues/13 发现的问题(在非Web环境下无法得到网站根目录路径)
            IRegisterService register = RegisterService.Start(new SenparcSetting());

            SiteConfig.SenparcCoreSetting.DatabaseName = "Local";                                      //指定数据库配置,对应 Appp_Data/Database/SenparcConfig.config 下的配置

            CO2NET.Config.RootDictionaryPath = Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\"); //


            //如果运行 Add-Migration 命令,并且获取不到正确的网站根目录,此处可能无法自动获取到连接字符串(上述#13问题),
            //也可通过下面已经注释的的提供默认值方式解决(不推荐)
            var sqlConnection = SenparcDatabaseConfigs.ClientConnectionString; //?? "Server=.\\;Database=NCF;Trusted_Connection=True;integrated security=True;";

            Console.WriteLine("============= 连接字符串 ===============");
            Console.WriteLine(SenparcDatabaseConfigs.ClientConnectionString);
            Console.WriteLine("========================================");

            Service.Register systemServiceRegister = new Service.Register();

            XncfRegisterManager.XncfDatabaseList.Add(systemServiceRegister);//添加注册

            var builder = new DbContextOptionsBuilder <SenparcEntities>();

            builder.UseSqlServer(sqlConnection, b => systemServiceRegister.DbContextOptionsAction(b, "Senparc.Web"));//beta5
            return(new SenparcEntities(builder.Options));
        }
Ejemplo n.º 30
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IOptions <SenparcSetting> senparcSetting, IOptions <SenparcWeixinSetting> senparcWeixinSetting)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
            IRegisterService register = RegisterService.Start(env, senparcSetting.Value)
                                        .UseSenparcGlobal(false, null);

            //开始注册微信信息,必须!
            register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value);
        }
        public static RegisterService GetRegistrationService(
            AbstractValidator<Register> validator = null,
            IUserAuthRepository authRepo = null,
            string contentType = null)
        {
            var requestContext = new MockRequestContext();
            if (contentType != null)
            {
                requestContext.ResponseContentType = contentType;
            }
            var userAuthRepository = authRepo ?? GetStubRepo();
            var service = new RegisterService
            {
                RegistrationValidator = validator ?? new RegistrationValidator { UserAuthRepo = userAuthRepository },
                AuthRepo = userAuthRepository,
                RequestContext = requestContext,
            };

            HostContext.Container.Register(userAuthRepository);

            return service;
        }
		public static RegisterService GetRegistrationService(
			IUserAuthRepository userAuthRepository,
			AuthUserSession oAuthUserSession = null,
			MockRequestContext requestContext = null)
		{
			if (requestContext == null)
				requestContext = new MockRequestContext();
			if (oAuthUserSession == null)
				oAuthUserSession = requestContext.ReloadSession();

			var httpReq = requestContext.Get<IHttpRequest>();
			var httpRes = requestContext.Get<IHttpResponse>();
			oAuthUserSession.Id = httpRes.CreateSessionId(httpReq);
			httpReq.Items[ServiceExtensions.RequestItemsSessionKey] = oAuthUserSession;

			var mockAppHost = new BasicAppHost {
				Container = requestContext.Container
			};

			requestContext.Container.Register(userAuthRepository);

		    var authService = new AuthenticateService {
                RequestContext = requestContext,
            };
            authService.SetResolver(mockAppHost);
            mockAppHost.Register(authService);

			var registrationService = new RegisterService {
				UserAuthRepo = userAuthRepository,
				RequestContext = requestContext,
				RegistrationValidator =
					new RegistrationValidator { UserAuthRepo = RegistrationServiceTests.GetStubRepo() },
			};
			registrationService.SetResolver(mockAppHost);

			return registrationService;
		}
Ejemplo n.º 33
0
 private static HttpError PostRegistrationError(RegisterService service, Register register)
 {
     var response = (HttpError)service.RunAction(register, (svc, req) => svc.Post(req));
     return response;
 }
Ejemplo n.º 34
0
        public void Requires_unique_UserName_and_Email()
        {
            var mockExistingUser = new UserAuth();

            var mock = new Mock<IUserAuthRepository>();
            mock.Expect(x => x.GetUserAuthByUserName(It.IsAny<string>()))
                .Returns(() => mockExistingUser);
            var mockUserAuth = mock.Object;
            appHost.Register<IAuthRepository>(mockUserAuth);

            var service = new RegisterService
            {
                RegistrationValidator = new RegistrationValidator(),
            };

            var request = new Register
            {
                DisplayName = "DisplayName",
                Email = "*****@*****.**",
                FirstName = "FirstName",
                LastName = "LastName",
                Password = "******",
                UserName = "******",
            };

            var response = PostRegistrationError(service, request);
            var errors = response.GetFieldErrors();

            Assert.That(errors.Count, Is.EqualTo(2));
            Assert.That(errors[0].ErrorCode, Is.EqualTo("AlreadyExists"));
            Assert.That(errors[0].FieldName, Is.EqualTo("UserName"));
            Assert.That(errors[1].ErrorCode, Is.EqualTo("AlreadyExists"));
            Assert.That(errors[1].FieldName, Is.EqualTo("Email"));
        }
		public static RegisterService GetRegistrationService(
            IUserAuthRepository userAuthRepository,
			AuthUserSession oAuthUserSession = null,
            BasicRequest request = null)
		{
			if (request == null)
                request = new BasicRequest();
			if (oAuthUserSession == null)
				oAuthUserSession = request.ReloadSession();

            oAuthUserSession.Id = request.Response.CreateSessionId(request);
            request.Items[ServiceExtensions.RequestItemsSessionKey] = oAuthUserSession;

			var mockAppHost = new BasicAppHost();

            mockAppHost.Container.Register<IAuthRepository>(userAuthRepository);

		    var authService = new AuthenticateService {
                Request = request,
            };
            authService.SetResolver(mockAppHost);
            mockAppHost.Register(authService);

			var registrationService = new RegisterService {
				AuthRepo = userAuthRepository,
				Request = request,
				RegistrationValidator =
					new RegistrationValidator { UserAuthRepo = RegistrationServiceTests.GetStubRepo() },
			};
			registrationService.SetResolver(mockAppHost);

			return registrationService;
		}