예제 #1
0
        public DistributedEventBusService(IRedisFactory redisFactory, IMemoryEventBusService memoryEventBusService)
        {
            _connectionMultiplexer = redisFactory.CreateConnection();
            _subscriber            = _connectionMultiplexer.GetSubscriber();

            _subscriber.Subscribe(GetChannel(), (channel, json) =>
            {
                var jObj       = JObject.Parse(json);
                var eventName  = jObj.Value <string>("EventName");
                var parameters = (JArray)jObj["Parameters"];

                var invokeParameters = new List <object>(parameters.Count);
                foreach (var parameter in parameters)
                {
                    var typeName = parameter.Value <string>("TypeName");
                    var content  = parameter.Value <string>("Content");

                    var type = Type.GetType(typeName, false);
                    if (type == null)
                    {
                        continue;
                    }

                    invokeParameters.Add(JsonConvert.DeserializeObject(content, type));
                }
                try
                {
                    memoryEventBusService.PublishRequest(eventName, invokeParameters.ToArray());
                }
                catch (Exception ex)
                {
                    _Logger.Error("DistributedEventBusService_Exception:", ex);
                }
            });
        }
예제 #2
0
 public MutualClassRewardQueueService(IRepositoryContext repositoryContext,
                                      IMemoryEventBusService memoryEventBusService)
 {
     _repositoryContext     = repositoryContext;
     _memoryEventBusService = memoryEventBusService;
 }
예제 #3
0
        /// <summary>
        /// 登入信息
        /// </summary>
        /// <param name="memoryEventBusService"></param>
        /// <param name="accountId"></param>
        public static void PublishUserSignIn(this IMemoryEventBusService memoryEventBusService, UserInfo user, string sessionID)
        {
            var parameters = new[] { JsonConvert.SerializeObject(user), sessionID };

            memoryEventBusService.PublishRequest(SampleUserSignIn, parameters);
        }
예제 #4
0
 public UserService(IMemoryEventBusService memoryEventBusService, IRedisFactory redisFactory)
 {
     _memoryEventBusService = memoryEventBusService;
     _connectionMultiplexer = redisFactory.CreateConnection();
     _cookieAccountId       = CookieHelper.GetCookieValue(SystemConfig.CookiesKey);
 }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="memoryEventBusService"></param>
        /// <param name="accountId"></param>
        public static void PublishAgentProfitsAssign(this IMemoryEventBusService memoryEventBusService, string accountId, int agentPrice)
        {
            var parameters = new[] { accountId, agentPrice.ToString() };

            memoryEventBusService.PublishRequest(AgentProfitsAssign, parameters);
        }
예제 #6
0
 public SignInEventBusProviders(IMemoryEventBusService memoryEventBusService, IRedisFactory redisFactory)
 {
     _memoryEventBusService = memoryEventBusService;
     _connectionMultiplexer = redisFactory.CreateConnection();
 }